google-cloud-dataproc - Google Dataproc 抢占式工作线程的初始化操作

标签 google-cloud-dataproc

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

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

这是正常情况吗?如何确保我的抢占式工作线程已运行我的自定义初始化操作脚本?

最佳答案

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

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

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

关于google-cloud-dataproc - Google Dataproc 抢占式工作线程的初始化操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48210905/

相关文章:

apache-spark - 在 GCP Dataproc 中,我们可以在集群中使用的工作节点的最大数量是多少?

python - pyspark 每列上有不同的计数

hadoop - Dataproc 上的 "processing node"是什么?

python - ImportError:没有名为 numpy 的模块 - 使用 Jupyter Notebook 时的 Google Cloud Dataproc

apache-spark - 获取有关工作流程提交后创建的当前 dataproc 集群的信息

java.lang.ClassNotFoundException : com. google.cloud.sql.mysql.SocketFactory

apache-spark - GCP Dataproc 与 Elasticsearch

apache-spark - 间隔 30 天转换为间隔 4 周 2 天

python - 在 DataLab 笔记本中使用 Dataproc 和 Spark BigQuery 连接器时出错

apache-spark - dataproc 上客户端模式下的 Spark 驱动程序在哪里运行?