【发布时间】:2018-05-03 08:27:16
【问题描述】:
调试很慢。不清楚是否接受多个参数。文档字符串错误/不标准。
例如我们可以这样做:
--initialization-actions a b c
当它失败时,如何在几秒钟而不是几分钟内调试......即作为脚本没有完整的创建步骤?
【问题讨论】:
调试很慢。不清楚是否接受多个参数。文档字符串错误/不标准。
例如我们可以这样做:
--initialization-actions a b c
当它失败时,如何在几秒钟而不是几分钟内调试......即作为脚本没有完整的创建步骤?
【问题讨论】:
您可以使用comma-separated list 指定多个Initialization actions:
gcloud dataproc clusters create ...\
--initialization-actions=<init_action_1>,<init_action_2>,...,<init_action_n>
如果任何初始化操作失败,则 Dataproc 将返回带有初始化操作日志路径的错误,您可以使用该日志来调试失败。
如果您正在编写自己的初始化操作,您可以按照best practices 并在初始化操作的the beginning 处添加set -euxo pipefail 语句,以使其快速失败并在执行期间打印更多信息,这将在失败时简化调试.
【讨论】:
为了将调试时间缩短到几秒钟,我建议创建一个 vanilla 集群,并通过sudo 下的 SSH 在主节点上将您的 init 操作作为常规脚本运行。
例如:
gcloud compute ssh my-cluster-m
gsutil cp gs://bucket/path-to-init-action.sh .
sudo init-action.sh
当您进行迭代时,您可能必须为已安装的组件添加标志以确保不会失败。
【讨论】: