spark on yarn的cpu使用

原创 2015年07月08日 10:31:00

    在yarn-site.xml中,可以配置virutal core的个数,请注意不是physical core的个数,相关配置如下:

<property>
  <name>yarn.nodemanager.resource.cpu-vcores</name>
  <value>30</value>
  <description>NodeManager总的可用虚拟CPU个数</description>

</property>

virutal core的概念是将所有physical cpu组成8个可调度的队列,linux使得有任务的时候每个physical cpu都能够调度,达到负载均衡。假设一台pc有16个physical cpu,当只有一个container的时候,这个container会使用这16个cpu,如果有2个container则每个container各占用8个physical cpu

spark运行的时候,通过--executor-cores指定的cpu个数都是vcore的个数,所以spark on yarn运行程序的时候,虽然通过--executor-cores指定vcore个数为1,但是所有的cpu都是很忙被占用。

    yarn默认情况下,只根据内存调度资源,所以spark on yarn运行的时候,即使通过--executor-cores指定vcore个数为N,但是在yarn的资源管理页面上看到使用的vcore个数还是1. 相关配置在capacity-scheduler.xml 文件:

<property>
    <name>yarn.scheduler.capacity.resource-calculator</name>
    <value>org.apache.hadoop.yarn.util.resource.DefaultResourceCalculator</value>
    <description>
      The ResourceCalculator implementation to be used to compare
      Resources in the scheduler.
      The default i.e. DefaultResourceCalculator only uses Memory while
      DominantResourceCalculator uses dominant-resource to compare
      multi-dimensional resources such as Memory, CPU etc.
    </description>
  </property>
要想--executor-cores的是指起效,得修改这项配置为:

<property>
  <name>yarn.scheduler.capacity.resource-calculator</name>
  <!-- <value>org.apache.hadoop.yarn.util.resource.DefaultResourceCalculator</value> -->
  <value>org.apache.hadoop.yarn.util.resource.DominantResourceCalculator</value>
</property>

 这样就可以起效果了

cpu调度的时候,需要启动CGroups机制来达到cpu进程隔离的效果,但是windows不支持CGroups机制
















相关文章推荐

executor-cores参数并未对vcores生效的原因分析

虽然目前大多数平台内置Application在提交时,只配置了–num-executors和–executor-memory参数,但是其他APP的开发者可能会配置–executor-cores参数。 ...

CDH集群调优:内存、Vcores和DRF

原文地址:http://blog.selfup.cn/1631.html?utm_source=tuicool&utm_medium=referral 吐槽 最近“闲”来无事,通过...

Spark性能优化总结

近期优化了一个spark流量统计的程序,此程序跑5分钟小数据量日志不到5分钟,但相同的程序跑一天大数据量日志各种失败。经优化,使用160 vcores + 480G memory,一天的日志可在2...

Spark性能优化:数据倾斜调优

Spark性能优化:数据倾斜调优前言 继《Spark性能优化:开发调优篇》和《Spark性能优化:资源调优篇》讲解了每个Spark开发人员都必须熟知的开发调优与资源调优之后,本文作为《Spark性...

Spark On YARN内存和CPU分配

本篇博客参考:http://blog.cloudera.com/blog/2015/03/how-to-tune-your-apache-spark-jobs-part-2/ 软件版本:CDH:5.7...

yarn 关于资源参数设置

yarn-site.xml   yarn.scheduler.minimum-allocation-mb  yarn.scheduler.maximum-allocation-mb 说明:单个容器可申...

Spark Job调优(Part 2)

原文链接:https://wongxingjun.github.io/2016/05/11/Spark-Job%E8%B0%83%E4%BC%98-Part-2/ 这篇文章将会完成Part ...

spark on yarn的那些事 ---第一篇

spark on yarn后一个spark application资源使用情况如何? 在不考虑动态分配spark资源的情况下: 一个spark application程序资源主要分为两部分:...

Spark资源配置(核数与内存)

关于所在节点核数怎么看? ====================================================================== # 总核数 = 物理CPU个数 ...

Hadoop Yarn内存使用优化配置

第一部分Hadoop Yarn内存使用优化配置     在Hadoop2.0中, YARN负责管理MapReduce中的资源(内存, CPU等)并且将其打包成Container. 这样可...
  • senvil
  • senvil
  • 2015年10月05日 17:56
  • 3874
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:spark on yarn的cpu使用
举报原因:
原因补充:

(最多只允许输入30个字)