Сценарий инициализации Dataproc не работает на главном узле - PullRequest
1 голос
/ 11 июля 2019

Я настраиваю новый сервер 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)

1 Ответ

1 голос
/ 16 июля 2019

Судя по вашему журналу ошибок DataNode, вы ожидаете, что действие init будет запущено сначала на главном сервере, а затем на рабочих.Но действия инициализации выполняются параллельно, вы должны добавить логику для синхронизации между мастером и работниками.Я думаю, что вы можете просто добавить некоторое ожидание в работники или, если вы хотите что-то более надежное, написать файл флага в GCS, когда мастер инициализации завершен, проверить этот файл в работниках.

...