You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在创建Dataproc集群时修改容器日志存储路径?

解决Dataproc集群Yarn容器日志路径修改问题

你遇到的问题确实是因为本地SSD在集群初始化后期才完成挂载,直接通过--properties参数指定路径时,目标目录还不存在,导致Yarn服务启动失败。下面是可行的解决方法:

方法:使用Dataproc初始化动作修改日志路径

初始化动作会在集群节点的磁盘挂载完成后执行,能确保目标路径存在后再修改Yarn配置。

1. 编写初始化动作脚本

创建一个名为set-yarn-log-dir.sh的脚本,内容如下:

#!/bin/bash
# 创建目标日志目录并设置正确的权限
mkdir -p /mnt/1/hadoop/yarn/userlogs
chown yarn:yarn /mnt/1/hadoop/yarn/userlogs
chmod 755 /mnt/1/hadoop/yarn/userlogs

# 修改Yarn配置文件中的日志目录参数
sed -i 's|yarn.nodemanager.log-dirs=.*|yarn.nodemanager.log-dirs=/mnt/1/hadoop/yarn/userlogs|g' /etc/hadoop/conf/yarn-site.xml

# 重启YARN NodeManager服务使配置生效
systemctl restart hadoop-yarn-nodemanager

2. 上传脚本到Google Cloud Storage (GCS)

将脚本上传到你的GCS存储桶,比如:

gsutil cp set-yarn-log-dir.sh gs://your-bucket-name/init-actions/

替换your-bucket-name为你实际的GCS桶名称。

3. 创建集群时指定初始化动作

使用以下命令创建集群,确保指定本地SSD挂载和初始化动作:

gcloud dataproc clusters create your-cluster-name \
  --region us-central1 \
  --zone us-central1-a \
  --num-workers 3 \
  --worker-local-ssd-count 1 \
  --initialization-actions gs://your-bucket-name/init-actions/set-yarn-log-dir.sh
  • --worker-local-ssd-count 1:指定每个Worker节点挂载1块本地SSD;如果Master节点也需要修改日志路径,添加--master-local-ssd-count 1参数。
  • 替换your-cluster-name、region、zone为你的集群信息。

4. 验证配置是否生效

集群创建完成后,登录任意节点执行以下命令检查配置:

grep yarn.nodemanager.log-dirs /etc/hadoop/conf/yarn-site.xml

输出应该显示为/mnt/1/hadoop/yarn/userlogs,同时可以查看Yarn NodeManager日志确认是否正常写入新路径。

内容的提问来源于stack exchange,提问作者Jerry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 19:27:33