admin管理员组

文章数量:1611927

首先,是一个实际的问题(为了方便描述考虑一个简单的情况):

在spark on yarn上面进行资源申请,我们申请了10个container(每个container都是1G内存,1个core),这是集群中有一个nodemanager,有10G内存,5个core。

在默认配置情况下,yarn就有可能将这10个container都发送到这个nodemanager上(即使集群上还有其他nodemanager有资源空闲),这就会导致,有5个container需要等到另外5个container用完core之后才能执行其自己的任务。

上述问题,出现的原因就是CapacityScheduler在计算集群可用资源的时候,默认使用的是DefaultResourceCalculator这个资源计算器,而该资源计算器,存在一个很大的问题,就是在计算可用资源量的时候只考虑到了内存这一单个维度的资源情况。

public 

本文标签: 计算器资源yarnSparkResourceCalculator