Mesos shuffle service unusable in Spark1.6

报错提示:

WARN TaskSetManager: Lost task 132.0 in stage 2.0 (TID 5951, spark047207): java.io.FileNotFoundException: /data1/spark/tmp/blockmgr-5363024d-29a4-4f6f-bf87-127b95669c7c/1c/temp_shuffle_7dad1a33-286f-47d2-8506-da0a02e22c10

spark1.6之中,mesos粗粒度模式下为了使用动态 executor 机制,开启了MesosExternalShuffleService。结果发现只要过去2分钟,就会报找不到 shuffle 文件错误 (java.io.FileNotFoundException)。

spark driver通过 MesosExternalShuffleClient 连接到 MesosExternalShuffleService,当它断开的时候,会将所有和该driver有关系的数据清除。

在该版本中,不管driver是否存活,MesosExternalShuffleClient都会在spark.shuffle.io.connectionTimeout(或是spark.network.timeout) 设定的时间之后断开连接(因为其处于空闲状态)。shuffle文件也随之删除。

在当前版本中 MesosExternalShuffleService 是不可用的,所以也无法使用executor动态释放的特性。

这个问题将在spark2.0中进行修复
https://issues.apache.org/jira/browse/SPARK-12583

spark1.6还有一个bug,内存使用过多会直接kill掉executor,因此会直接报lost executor而不是提示OOM的错误。

你可能感兴趣的:(spark,spark排错)