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参数。 ...
  • rongyongfeikai2
  • rongyongfeikai2
  • 2016年11月16日 15:55
  • 2180

Spark On YARN内存分配

本文主要了解Spark On YARN部署模式下的内存分配情况,因为没有深入研究Spark的源代码,所以只能根据日志去看相关的源代码,从而了解“为什么会这样,为什么会那样”。 说明 按照S...
  • wisgood
  • wisgood
  • 2016年05月17日 15:36
  • 2529

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

spark on yarn后一个spark application资源使用情况如何? 在不考虑动态分配spark资源的情况下: 一个spark application程序资源主要分为两部分:...
  • u010657789
  • u010657789
  • 2016年09月22日 15:03
  • 985

spark性能调优

spark性能调优有很多措施,下面说说我用到的一些调优手段。 1.RDD分片数和executor个数的协调 要想充分的使数据并行执行,并且能充分的利用每一个executor,则在rdd的个数与exec...
  • lihaitao000
  • lihaitao000
  • 2016年06月21日 18:33
  • 2933

Spark On YARN内存和CPU分配

本篇博客参考:http://blog.cloudera.com/blog/2015/03/how-to-tune-your-apache-spark-jobs-part-2/ 软件版本:CDH:5.7...
  • fansy1990
  • fansy1990
  • 2017年01月10日 17:17
  • 6062

Spark On YARN内存和CPU分配

在Yarn框架中,调度器是一块很重要的内容。有了合适的调度规则,就可以保证多个应用可以在同一时间有条不紊的工作。最原始的调度规则就是FIFO,即按照用户提交任务的时间来决定哪个任务先执行,但是这样很可...
  • ZYC88888
  • ZYC88888
  • 2017年05月13日 11:14
  • 418

YARN 早就支持CPU资源的调度了

首先,yarn刚出世的时候,对于CPU的调度只是在
  • wujun8
  • wujun8
  • 2014年07月04日 11:11
  • 1375

spark充分利用所有CPU核Utilizing all CPU cores

Using the parameters to spark-shell or spark-submit, we can ensure that memory and CPUs are availab...
  • Dillon2015
  • Dillon2015
  • 2016年12月05日 17:42
  • 237

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

关于所在节点核数怎么看? ====================================================================== # 总核数 = 物理CPU个数 ...
  • zrc199021
  • zrc199021
  • 2017年01月04日 16:23
  • 2720

Spark 性能相关参数配置详解-任务调度篇

随着Spark的逐渐成熟完善, 越来越多的可配置参数被添加到Spark中来, 本文试图通过阐述这其中部分参数的工作原理和配置思路, 和大家一起探讨一下如何根据实际场合对Spark进行配置优化。- 任务...
  • colorant
  • colorant
  • 2014年08月19日 14:47
  • 28400
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:spark on yarn的cpu使用
举报原因:
原因补充:

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