Dataproc 初始化脚本不在主节点上 运行

Dataproc Initialization Script not running on master node

我正在设置一个新的 dataproc 服务器并使用 initilization-action 运行 自定义脚本。脚本 运行 在 2 个数据节点上运行正常,但在主节点上不执行。

尝试在 /var/log/dataprog-initilization-*.log 下查找日志,但无法在主节点中找到该文件。

其他人以前遇到过这个问题吗? 提前致谢!!

gcloud 命令:

gcloud dataproc clusters create test-cluster \
--region=us-central1 --zone=us-central1-a \
--master-machine-type=n1-standard-4 --master-boot-disk-size=200 \
--initialization-actions=gs://dp_init_data/init2.sh --initialization-action-timeout="2m" \
--num-workers=2 --worker-machine-type=n1-standard-8 --worker-boot-disk-size=200

DataNode错误日志:

2019-07-11 03:29:22,123 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool BP-268987178-10.32.1.248-1562675355441 (Datanode Uuid 71664f82-1d23-4184-b19b-28f86b01a251) service to exp-gcp-kerberos-m.c.exp-cdh-prod.internal/10.32.1.248:8051 Datanode denied communication with namenode because the host is not in the include-list: DatanodeRegistration(10.32.1.60:9866, datanodeUuid=71664f82-1d23-4184-b19b-28f86b01a251, infoPort=0, infoSecurePort=9865, ipcPort=9867, storageInfo=lv=-57;cid=CID-aee57974-1706-4b8c-9654-97da47ad0464;nsid=128710770;c=1562675355441)

根据您的 DataNode 错误日志,您似乎希望 init 操作 运行 首先在 master 上进行,然后在 worker 上进行。但是 init 动作是 运行 并行的,你必须添加逻辑来在 master 和 workers 之间同步。我认为你可以简单地在 workers 中添加一些等待,或者如果你想要更可靠的东西,当 master init 完成时在 GCS 中写一个标志文件,在 workers 中检查该文件。