
导读:在进行Spark任务提交的时候,我们知道Spark提供了诸如num-executor、executor-memory等参数用来控制资源的申请和使用。但是你是否遇到过提交了任务后,当资源队列资源充足的时候,spark任务一直在吃内存的情况,貌似有点失控,这其实是“动态资源分配”在作怪。
导读:在进行Spark任务提交的时候,我们知道Spark提供了诸如num-executor、executor-memory等参数用来控制资源的申请和使用。但是你是否遇到过提交了任务后,当资源队列资源充足的时候,spark任务一直在吃内存的情况,貌似有点失控,这其实是“动态资源分配”在作怪。
作者:小舰 中国人民大学计算机硕士
来源:DLab数据实验室(ID:rucdlab)


spark.dynamicAllocation.maxExecutors来限制Spark任务无上限的使用队列资源,这个参数相当于给Spark任务设置了一个资源利用上限,如果申请的总资源达到了这个标准就不再继续申请,哪怕队列还有资源剩余,这也大大减少了队列任务因为资源不够而积压的问题。


我们可以看到,设置了资源使用上限之后,Spark任务并没有无休止的抢占资源,这对于整个资源队列安全稳定运行还是很重要的。
文章转载自DLab数据实验室,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




