如何组合和测试 google dataproc --initialization-actions

How to combine and test google dataproc --initialization-actions

调试很慢。不清楚是否接受多个参数。文档字符串是 wrong/non-standard。

例如我们可以这样做:

--初始化动作 a b c

当它失败时,如何在几秒钟而不是几分钟内进行调试...即脚本没有完整的创建步骤?

您可以指定多个Initialization actions using comma-separated list:

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

如果任何初始化操作失败,Dataproc 将 return 初始化操作日志的路径出错,您可以使用它来调试失败。

如果您正在编写自己的初始化操作,您可以遵循 best practices and add set -euxo pipefail statement at the beginning 初始化操作以使其快速失败并在执行期间打印更多信息,这将在失败时简化调试。

为了将调试时间缩短到几秒钟,我建议创建一个 vanilla 集群和 运行 您的 init 操作作为主节点上的常规脚本通过 sudo.[=12= 下的 SSH ]

例如:

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

在进行迭代时,您可能必须添加标志以确保已安装的组件不会失败。