首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我没有找到NodeInitializationAction的证据,因为Dataproc已经运行。

我没有找到NodeInitializationAction的证据,因为Dataproc已经运行。
EN

Stack Overflow用户
提问于 2016-12-22 19:49:14
回答 1查看 114关注 0票数 4

我为Dataproc指定了一个NodeInitializationAction,如下所示:

代码语言:javascript
复制
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);

然后稍后:

代码语言:javascript
复制
Cluster cluster = new Cluster();
cluster.setProjectId("wide-isotope-147019");
cluster.setConfig(clusterConfig);
cluster.setClusterName("cat");

最后,我使用集群调用dataproc.create操作。我可以看到正在创建集群,但是当我将ssh放入主计算机(在us-central1 1-f中的“cat-m”)时,我没有看到我指定的脚本被复制或运行的任何证据。

这就引出了我的问题:

  1. 就证据而言,我应该期待什么?(编辑:我在/etc/google-dataproc/startup-scripts/dataproc-initialization-script-0).中找到了脚本本身
  2. 从哪里调用脚本?我知道它作为用户根运行,但除此之外,我不知道在哪里可以找到它。我没有在根目录中找到它。
  3. 操作在什么时候从创建调用返回,从“创建”更改为“运行”?这是在调用脚本之前还是之后发生的,脚本的退出代码是否为非零?

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-22 21:24:37

Dataproc为init操作提供了许多保证:

  • 每个脚本都应该在本地下载并存储在:/etc/google-dataproc/startup-scripts/dataproc-initialization-script-0
  • 脚本的输出将在“暂存桶”(通过--bucket选项指定的桶,或由Dataproc自动生成的桶)中捕获。假设您的集群名为my-cluster,如果您通过gcloud compute instances describe my-cluster-m描述主实例,准确的位置是dataproc-agent-output-directory元数据键。
  • 在所有节点上执行所有init操作之前,群集可能不会进入运行状态(并且操作可能不会完成)。如果init操作使用非零代码退出,或者init操作超过指定的超时,则报告为
  • 类似地,如果您调整了群集的大小,则在每个工作人员完全独立配置之前,我们保证新工作人员不会加入群集。
  • 如果您仍然不相信我:)检查/var/log/google-dataproc-agent-0.log中的Dataproc代理日志并查找来自BootstrapActionRunner的条目
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41290662

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档