Spark任务提交后,一直处于Accept状态,无法正常运行

问题背景与现象

Spark任务提交后,任务一直处于Accept状态,无法正常运行。Driver端提示executor memory超限。

原因分析

FusionInsight集群中,Spark任务运行在Yarn的资源管理框架下,由Yarn来负责资源的调度管理,Yarn在接收Spark任务后,任务会先处于Accept状态,待为该任务分配到资源之后,人后然后才会进入Running状态执行如果Yarn上没有足够资源,则任务将一直处于Accept状态。可通过如下方式查看Yarn上资源。

  1. 查看当前yarn是否有资源可供调度,如果资源不足,则无法正常运行任务。

    需要等其他任务运行完才能运行该任务或者考虑扩容,如果资源充足,参考2

  2. 确认任务提交的队列是否有足够资源,Spark任务默认提交到default队列,以下以default队列为例。如果队列资源不足,请考虑提交任务到其他队列。如果队列资源充足,参考3

  3. 确认当前队列的appmaster资源是否耗尽。

    Yarn的资源有参数专门控制有多少比例是给appmster使用,如果该值过小,则会导致,队列有资源的情况下,appmaster正常启动,任务依然无法正常运行。如下图所示,appmster一共有21个vcore已经用尽,此时任务会处于Accept状态。

解决办法

  1. 对于此种情况属于资源分配不合理,可通过调整参数来增加appmster的可用资源。
  2. 在C30版本中,可通过调整yarn.scheduler.capacity.maximum-am-resource-percent参数来提高am可用资源比例,修改之后要重启yarn服务。
  3. 在C50及以后的版本中,该参数废弃掉,需要修改多租户相关参数,在页面选择“Tenant > Dynamic Resource Plan”,修改相应队列的Max Am Resource Percent,修改后,无需重启Yarn。
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值