【问题标题】:How to increase the number of containers in nodemanager in YARN如何在YARN中增加nodemanager中的容器数量
【发布时间】:2013-11-16 17:39:11
【问题描述】:

我的 YARN 集群中的一个节点有 64GB 内存和 24 个内核。我在 yarn-site.xml 中设置了以下属性:

<property>
  <name>yarn.nodemanager.resource.memory-mb</name>
  <value>32768</value>
</property>
<property>
  <name>yarn.nodemanager.resource.cpu-vcores</name>
  <value>16</value>
</property>

但我发现节点中的nodemanager仍然只有7个容器。我需要设置哪些其他属性?

【问题讨论】:

    标签: hadoop hadoop-yarn


    【解决方案1】:

    您需要告诉 YARN 如何将内存分解为容器,例如,如果您将每个容器的内存设置为 2GB,那么您将获得 16 个容器

    <name>yarn.scheduler.minimum-allocation-mb</name>
    <value>2048</value>
    

    【讨论】:

    • 谢谢。您的回答让我意识到我的 memory-mb 参数中有错字(我在 memory 和 mb 之间使用了下划线而不是破折号)。
    • 我的集群中有 7 个节点 [每个节点有 8GB RAM 和 4VCPU]。我的应用程序有 mapreduce.jobsubmitter: number of input splits: 34。我的应用程序在 Exception from container-launch: ExitCodeException exitCode=134: /bin/bash: line 1: 3876 Aborted (core dumped) 处崩溃。如何避免这种情况?我在 ampred-site.xml 中的配置应该是什么?
    • @Arnon Rotem-Gal-Oz:这里是 Hadoop/YARN 新手。 OP 有 64GB 的内存。如果我们为每个容器分配 2048mb(即 2GB),他应该得到 64/2 = 32 个容器。你能解释为什么是16吗?谢谢。
    • 你在使用 map/reduce -if 所以你还应该设置 map/reduce 分配的属性(正如@avner 在下面写的)
    • @ArnonRotem-Gal-Oz - 因此,提供 2GB 作为容器大小意味着我的 Java Xmx 不能超过 2GB,因为如果我这样做了,那么当 Java 尝试在运行时将其堆大小增加到 2GB 以上时, YARN 会杀死它吗?
    【解决方案2】:

    尝试类似:

      <property>
        <name>mapreduce.map.memory.mb</name>
        <value>1024</value>      
      </property>
    
      <property>
        <name>mapreduce.reduce.memory.mb</name>
        <value>2048</value>      
      </property>
    

    【讨论】:

      猜你喜欢
      • 2013-04-19
      • 2020-02-19
      • 2018-07-24
      • 1970-01-01
      • 2013-07-27
      • 2021-11-11
      • 1970-01-01
      • 2017-03-28
      • 2017-03-27
      相关资源
      最近更新 更多