Spark任务一直停在某个Stage不动问题

解决Spark莫名卡住问题

有时候Spark任务莫名会在某个Stage卡住,然后一直停在那里,如果任务重新跑的话又是没有问题的,在实际项目中如果这样的任务出现了,需要仔细分析Spark的log,这样的情况一般是数据不均衡导致的某个节点任务量偏大,而这个节点分配不到太多内存(其他还有很多任务都在这里运行)导致任务卡顿。有几个参数非常有效,主要是Spark的任务推测执行参数,任务推测执行默认是不开启的,因为开启了是会浪费资源的,如果经常有任务卡顿,需要添加这个参数

参数名默认值含义
spark.speculationFalse以下几个参数是关于Spark推测执行机制的相关参数。此参数设定是否使用推测执行机制,如果设置为true则spark使用推测执行机制,对于Stage中拖后腿的Task在其他节点中重新启动,并将最先完成的Task的计算结果最为最终结果
spark.speculation.interval100Spark多长时间进行检查task运行状态用以推测,以毫秒为单位
spark.speculation.quantile推测启动前,Stage必须要完成总Task的百分比
spark.speculation.multiplier1.5比已完成Task的运行速度中位数慢多少倍才启用推测

在实际应用在,可以根据实际情况设置参数值,例如可以设置500ms检查一下状态,Stage完成0.9我们才开启推测任务,比已完成Task的运行速度中位数慢1.2倍才开启。总之,这是个非常不错的参数。

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值