运行

Kubernetes

师成师成· 更新于 2026-09-28· 阅读 5 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

本项目中的 Kubernetes 示例与脚本已在 Kubernetes 1.34.2(k3s v1.34.2+k3s1)上完成测试。

将 IDE 连接到 Kubernetes 上的 Ozone

设置 Ozone 和 Kubernetes

要在 Kubernetes 中启动 Ozone,你需要先安装 Kubernetes 和 kubectl。此外,还需要将 flekszible 二进制文件加入到你的 PATH 中。

  1. 构建项目:mvn clean install -DskipShade -DskipTests
  2. cd <ozone-root>/hadoop-ozone/dist/target/ozone-X.X../kubernetes/examples/ozone
  3. source ../testlib.sh
  4. regenerate_resources

配置 IntelliJ

选择一些你喜欢的端口用于附加调试器。下面是一个示例配置,将 OM 连接到 5005 端口、SCM 连接到 6006 端口、S3G 连接到 7007 端口。

  1. Run -> Edit Configurations... -> Add New Configuration -> Remote JVM Debug
  2. Name:om-0,Debugger mode:Attach to remote JVM,Host:localhost,Port:5005
  3. Name:scm-0,Debugger mode:Attach to remote JVM,Host:localhost,Port:6006
  4. Name:s3g-0,Debugger mode:Attach to remote JVM,Host:localhost,Port:7007

按照如下方式修改 Ozone 的启动配置,以使用你喜欢的端口:

在文件 <ozone-root>/hadoop-ozone/dist/target/ozone-X.X../bin/ozone 中:

  1. 将 OZONE_OM_OPTS="${RATIS_OPTS} ${OZONE_OM_OPTS}" 替换为 OZONE_OM_OPTS="${RATIS_OPTS} ${OZONE_OM_OPTS} -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005"
  2. 将 OZONE_SCM_OPTS="${RATIS_OPTS} ${OZONE_SCM_OPTS}" 替换为 OZONE_SCM_OPTS="${RATIS_OPTS} ${OZONE_SCM_OPTS} -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:6006"
  3. 在 ozone-s3gateway 中添加 OZONE_S3G_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:7007"

在 Kubernetes 中启动 Ozone

  1. 启动 Kubernetes 服务器。例如,如果使用 k3s,则执行 sudo k3s server

  2. 在一个新的终端中 cd <ozone-root>/hadoop-ozone/dist/target/ozone-X.X../kubernetes/examples/ozone

  3. kubectl apply -f .

  4. 检查 Pod 是否正在运行:kubectl get pods

  5. 在后台启动端口转发

    kubectl port-forward om-0 5005:5005 &
    kubectl port-forward scm-0 6006:6006 &
    kubectl port-forward s3g-0 7007:7007 &

将 IntelliJ 连接到 Kubernetes 集群

  1. 查看代码,并为你想要调试的部分设置断点

  2. 在 IntelliJ 中以 Debug 模式启动我们之前创建的 Remote JVM Debug 配置

  3. 一个使用示例是:在 bash 中读写对象,然后在 IntelliJ 的调试器中查看输出。例如,在 OMVolumeCreateRequest 中设置一个断点,然后按如下方式创建卷以触发该断点:

    kubectl exec -it scm-0 bash
    ozone sh volume create testVolume

评论

登录后参与评论

正在加载评论…