Spark on yarn CapacityScheduler中的ResourceCalculator(资源计算器)

在Spark运行于YARN上时,可能出现资源分配不合理的问题,如在默认的DefaultResourceCalculator下,仅考虑内存资源可能导致CPU资源的浪费。当一个NodeManager有足够的内存但不足的CPU核心时,某些Container会等待CPU资源。为解决此问题,可以采用DominantResourceCalculator,它综合考虑CPU和内存,优化调度。通过修改capacity-scheduler.xml配置文件可切换资源计算器。
摘要由CSDN通过智能技术生成

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

在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 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值