我正在设置一个新的dataproc服务器,并使用初始化动作来运行自定义脚本。该脚本可以在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)
答案 0 :(得分:1)
根据您的DataNode错误日志,似乎您希望init操作首先在master上运行,然后在worker上运行。但是初始化操作是并行运行的,因此您必须添加逻辑以在主服务器和工作服务器之间进行同步。我认为您可以简单地在worker中添加一些等待,或者,如果您想要更可靠的东西,请在完成主初始化后在GCS中写入一个标志文件,然后在worker中检查该文件。