在只有2个不可抢占工作节点和其他100〜个可抢占节点的dataproc上运行spark集群时,有时我会得到一个集群,由于连接错误,datanode错误,执行程序丢失而仍然无法使用,但仍会对其进行跟踪心跳... 总是收到这样的错误:
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
从我看来,似乎对于这些集群而言,某些功能无法正常运行,但没有任何报道表明这一点。
加上在可抢占节点上也创建了应用程序主控,为什么?
答案 0 :(得分:1)
根据documentation,可抢占工作者的数量必须少于集群中节点总数的50%,才能获得最佳效果。关于可抢占节点中的应用程序主服务器,您可以通过填充report的问题跟踪器来Dataproc进行此行为。