本文主要是介绍优化yarn在任务执行时核数把控不准确的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
核数不准这个事情是个概率问题,如果你碰见了,只能说你有点非欧,本质上是因为集群配置问题,默认时yarn不会去精准把控任务的核数,因为默认的资源计算方式是用实际内存去估算核数,这就导致如果大家配置任务时,如果实际内存占用比较多,yarn的资源计算可能结果就会和实际的产生误差,导致资源的使用出现各种问题
如果你想要让yarn准确的计算使用多少核,那么需要更改所有节点中的capacity-scheduler.xml配置文件
原配置文件中的
yarn.scheduler.capacity.resource-calculator
org.apache.hadoop.yarn.util.resource.DefaultResourceCalculator
要修改为
yarn.scheduler.capacity.resource-calculator
org.apache.hadoop.yarn.util.resource.DominantResourceCalculator
这样大家再去看的时候就会发现核数也是正确的了,其实yarn之所以这样,想想也好理解,核数是定死的,但是内存本质上受Hadoop最小申请资源数和规整化因子的原因,使得内存的使用其实是不饱满的,所有yarn时刻注意内存的理论使用情况,从而没有太多注意核数和continer,以此为程序员提供一个可参考的内存数字,不然内存不够会OOM的!!!
这篇关于优化yarn在任务执行时核数把控不准确的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!