apache-spark - 具有太多可抢占节点的 Google dataproc spark 集群有时会挂起

标签 apache-spark hadoop hadoop-yarn google-cloud-dataproc

当在只有 2 个不可抢占的工作节点和其他 100~ 个可抢占节点的 dataproc 上运行 spark 集群时,我有时会得到一个完全不可用的集群,原因是太多的连接错误、数据节点错误、丢失的执行程序,但仍在跟踪心跳... 总是出现这样的错误:

18/08/08 15:40:11 WARN org.apache.hadoop.hdfs.DataStreamer: Error Recovery for BP-877400388-10.128.0.31-1533740979408:blk_1073742308_1487 in pipeline [DatanodeInfoWithStorage[10.128.0.35:9866,DS-60d8a566-a1b3-4fce-b9e2-1eeeb4ac840b,DISK], DatanodeInfoWithStorage[10.128.0.7:9866,DS-9f1d8b17-0fee-41c7-9d31-8ad89f0df69f,DISK]]: datanode 0(DatanodeInfoWithStorage[10.128.0.35:9866,DS-60d8a566-a1b3-4fce-b9e2-1eeeb4ac840b,DISK]) is bad.

错误报告 Slow ReadProcessor read fields for block BP-877400388-10.128.0.31-1533740979408:blk_1073742314_1494

据我所见,这些集群似乎无法正常运行,但没有任何报告表明这一点。

另外,application master 也是在可抢占节点上创建的,这是为什么?

最佳答案

根据documentation ,可抢占的工作人员数量需要少于集群中节点总数的 50% 才能获得最佳结果。关于抢占节点内的application master,可以report通过为 Dataproc 填写问题跟踪器来实现此行为.

关于apache-spark - 具有太多可抢占节点的 Google dataproc spark 集群有时会挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51750785/

相关文章:

java - 在 Java Spark 中使用 Jackson 2.9.9

apache-spark - 用户定义的函数要应用于 PySpark 中的 Window?

java - 我如何以编程方式获取 Hadoop 在 Web 界面中显示的所有作业跟踪器和任务跟踪器信息?

hadoop - Spark 提交 :ERROR SparkContext: Error initializing SparkContext

java - hadoop中的 block 池

apache-spark - Apache Spark 警告 "Calling spill() on RowBasedKeyValueBatch"的含义

scala - Spark Scala 从 rdd.foreachPartition 获取数据

java - Hadoop聚合两个功能

hadoop - Oozie 不关心 acl

hadoop - 无法在 oozie 中运行 shell(错误=2,没有那个文件或目录)