我正在为Dataproc指定NodeInitializationAction,如下所示:
ClusterConfig clusterConfig = new ClusterConfig();
clusterConfig.setGceClusterConfig(...);
clusterConfig.setMasterConfig(...);
clusterConfig.setWorkerConfig(...);
List<NodeInitializationAction> initActions = new ArrayList<>();
NodeInitializationAction action = new NodeInitializationAction();
action.setExecutableFile("gs://mybucket/myExecutableFile");
initActions.add(action);
clusterConfig.setInitializationActions(initActions);
然后:
Cluster cluster = new Cluster();
cluster.setProjectId("wide-isotope-147019");
cluster.setConfig(clusterConfig);
cluster.setClusterName("cat");
最后,我使用集群调用dataproc.create操作。我可以看到正在创建集群,但是当我进入主机(&#34; cat-m&#34;在us-central1-f中)时,我看不到我指定的脚本被复制或运行的证据
所以这引出了我的问题:
提前致谢。
答案 0 :(得分:4)
Dataproc对init操作提出了许多保证:
应下载每个脚本并将其存储在本地:
/etc/google-dataproc/startup-scripts/dataproc-initialization-script-0
脚本的输出将在&#34; staging bucket&#34;中捕获。 (通过--bucket
选项指定的存储桶,或Dataproc自动生成的存储桶)。假设您的群集名为my-cluster
,如果您通过gcloud compute instances describe my-cluster-m
描述主实例,则确切位置位于dataproc-agent-output-directory
元数据键
在所有节点上执行所有init操作之前,群集可能无法进入RUNNING状态(并且操作可能无法完成)。如果init操作以非零代码退出,或者init操作超过指定的超时,则会报告为
同样,如果您调整群集大小,我们保证新工作人员不会加入群集,直到每个工作人员完全单独配置为止
如果您仍然不相信我:)检查Dataproc代理登录/var/log/google-dataproc-agent-0.log
并查找BootstrapActionRunner中的条目