INFO-yarn 队列am 计算方式

适用模块
yarn
具体说明
AM cores使用与资源剩余对任务提交的影响
使用示例
举例说明 : 集群300 c ,队列AM限制 1 ,
1、运行任务,AM使用 :50 c ,计算使用 100c ,剩余 150 ,50 < (300-50-100) 1 , 可以继续分配AM资源,新提交任务可以获取资源
2、运行任务,AM使用 :50 c ,计算使用 200c ,剩余 50 ,50 => (300-50-200)
1 , 不能继续分配AM资源,新提交任务无法获取资源 ,此时剩余得50不能分配给新任务
3、运行任务,AM使用 :100 c ,计算使用 100c ,剩余 100 ,100 => (300-100-100)* 1 , 不能继续分配AM资源,新提交任务无法获取资源,此时剩余的100不能分配给新任务
如果不限制AM的使用,同一时间提交300 个任务 ,AM分配了300 ,就会导致没有计算的资源 ,所有的任务无法运行,
现在是实时场景,任务在运行过程时,资源基本时固定的,不会再重新申请资源,根据上图计算方式,就会导致资源浪费,
实时场景不会突然提交大量任务,任务也不会经常全部停止,再重新提交,触发所有资源分配给AM的异常场景 。
如果有这个重新提交需求,只需要注意一次提交任务数在50 以内,就可以避免任务无计算资源的问题。 对于实时场景,取消AM的资源限制,设置 maxAMShare = -1,就可以最大化使用集群资源。

作者:xxx