Mesos shuffle service unusable in Spark1.6

本文详细探讨了在使用Apache Spark 1.6版本和Mesos集群时遇到的shuffle文件在短时间内丢失的问题,以及内存使用不当导致executor直接被kill的情况。解释了此问题的根本原因在于Spark driver在连接超时后会清除与之相关的数据,并在特定版本中进行了修复。同时,文章还指出了内存管理不当可能导致的executor意外终止,而非传统的Out Of Memory (OOM)错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

报错提示:

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的错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值