spark on yarn提交后vcore数不对

一、现象描述

比如提交命令:

./bin/spark-submit --class org.apache.spark.examples.SparkPi \
    --master yarn \
    --deploy-mode cluster \
    --driver-memory 4g \
    --executor-memory 2g \
--num-executors 6 --executor-cores 3 \ --queue thequeue \ lib/spark-examples*.jar \ 10

理论上:vcores使用数 = executor-cores * num-executors + 1 = 6 * 3 = 18 + 1 = 19,
但是实际中很可能你会在yarn监控界面上看到vcores数使用只是7,也就是executor-cores没起作用。
二、解决方法
这其实不是spark的问题,而是yarn调度器的一个特性,只需要修改“capacity-scheduler.xml”文件中的配置“yarn.scheduler.capacity.resource-calculator”即可,
value由原来的“org.apache.hadoop.yarn.util.resource.DefaultResourceCalculator”修改为“org.apache.hadoop.yarn.util.resource.DominantResourceCalculator”
可能需要重启hadoop
三、参考
出处:http://hadoop.apache.org/docs/r2.6.0/hadoop-yarn/hadoop-yarn-site/CapacityScheduler.html
配置“yarn.scheduler.capacity.resource-calculator”的解释为:
The ResourceCalculator implementation to be used to compare Resources in the scheduler. The default i.e. org.apache.hadoop.yarn.util.resource.DefaultResourseCalculator only uses Memory while DominantResourceCalculator uses Dominant-resource to compare multi-dimensional resources such as Memory, CPU etc. A Java ResourceCalculator class name is expected.
也没翻译很明白,大概意思就是:默认的那个配置,只对内存起作用,而后改的那个配对内存、CPU核数等等都起作用。

转载于:https://www.cnblogs.com/yesecangqiong/p/10125333.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值