Google 个 Dataproc 抢占式工作器的初始化操作

Initialization actions for Google Dataproc preemptible workers

我目前正在使用具有固定数量工作器的 Dataproc 集群。每个工作人员都有一个重要的初始化操作,需要在工作人员上安装一些特定的库。

最近,我们决定尝试使用一些可抢占的 worker,但是我们的 Spark 作业失败了,因为缺少一些库。原因似乎是没有对可抢占工人进行初始化操作。事实上,我已经使用 ssh 连接到这些工作人员,我完全确定初始化脚本没有在这些可抢占的工作人员上执行,因为预期的库不存在,我们的初始化脚本留下了它的执行日志,但丢失了。

这是正常情况吗?我如何确保我的可抢占工作人员拥有 运行 我的自定义初始化操作脚本?

这绝对不正常。 Dataproc 应确保节点在完全初始化 () 之前不会加入集群。

我最好的猜测是存储库可能不稳定或过载,安装库的实际步骤失败但整个脚本没有。您可以尝试在初始化操作的顶部添加 set -e 吗?

您还可以通过 SSH 进入节点并检查 /var/log/dataproc-startup-script* 中的 init 操作日志。