如何组合和测试谷歌dataproc - 初始化 - 动作

时间:2018-02-21 23:07:17

标签: google-cloud-dataproc

调试很慢。不清楚是否接受多个args。 Docstring是错误的/非标准的。

例如我们可以这样做:

- 初始化 - 动作a b c

当它失败时,如何在几秒钟内调试而不是几分钟...即脚本未完全创建步骤?

2 个答案:

答案 0 :(得分:5)

您可以使用Initialization actions指定多个comma-separated list

gcloud dataproc clusters create ...\
    --initialization-actions=<init_action_1>,<init_action_2>,...,<init_action_n>

如果任何初始化操作失败,那么Dataproc将返回错误,其中包含初始化操作日志的路径,您可以使用它来调试失败。

如果您正在编写自己的初始化操作,可以按照best practices并在初始化操作的the beginning添加set -euxo pipefail语句,以使其快速失败并在执行期间打印更多信息在发生故障时简化调试。

答案 1 :(得分:2)

为了将调试时间缩短到几秒钟,我建议创建一个vanilla集群,并在sudo下通过SSH在主节点上将初始化操作作为常规脚本运行。

例如:

gcloud compute ssh my-cluster-m
gsutil cp gs://bucket/path-to-init-action.sh .
sudo init-action.sh

在进行迭代时,您可能必须为已安装的组件添加标记以使其失败。