Mesos shuffle service unusable i
2016-04-25 本文已影响103人
breeze_lsw
报错提示:
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的错误。