【问题标题】:number of vcore in yarn纱线中的 vcore 数量
【发布时间】:2016-10-27 22:12:38
【问题描述】:

我是 Yarn 的新手。我在我的电脑上安装了 Single Node Hadoop Yarn,一切都是默认的。 我打开 ResourceManager 的网页,上面说我的集群是 8GB RAM 和 8 个 vcore。 但实际上,我的计算机有 3GB 的内存和 2 个内核(我在 /proc/meminfo 和 /proc/cpuinfo 中看到了信息)。 我想知道为什么 Yarn 显示太多 ram 和 vcore? 大家可以给我解释一下吗? 提前致谢!

【问题讨论】:

    标签: hadoop hadoop-yarn


    【解决方案1】:

    Yarn 通过以下两个参数从 yarn-site.xml conf 文件中获取可用的内存和内核信息:

    <!-- Default 8GB -->
    <property>
      <description>Max available memory on each data node.</description>
      <name>yarn.nodemanager.resource.memory-mb</name>
      <value>8192</value>
    </property>
    
    <!-- Default 8. -->
    <property>
      <description>Max available cores data node.</description>
      <name>yarn.nodemanager.resource.cpu-vcores</name>
      <value>8</value>
    </property>
    

    所以它选择 8GB 和 8 个核心的原因是因为如果您不指定其他任何内容,这些都是默认值。对于像您这样的小型机器,这些设置可能太高了。在小型机器上运行时,您可能需要调整其他一些与内存相关的设置。

    在yarn-site.xml中:

    <!-- Default 1024 -->
    <property>
      <description>Minimum allocation unit.</description>
      <name>yarn.scheduler.minimum-allocation-mb</name>
      <value>256</value>
    </property>
    
    <!-- Biggest memory allocation a container can request. Set to available memory -->
    <property>
      <description>Max allocation unit.</description>
      <name>yarn.scheduler.maximum-allocation-mb</name>
      <value>yarnavailablememory</value>
    </property>
    
    <property>
      <description>Minimum increment setting - set to same as min-allocation</description>
      <name>yarn.scheduler.increment-allocation-mb</name>
      <value>256</value>
    </property>
    

    在mapred-site.xml中:

    <!-- small cluster memory settings -->
    <!-- Default 1024. Recommend setting to 4096. Should not be higher than YARN max allocation -->
    <property>
      <name>mapreduce.map.memory.mb</name>
      <value>256</value>
    </property>
    
    <!-- Default 1024. Recommend setting to 4096. Should not be higher than YARN max allocation -->
    <property>
      <name>mapreduce.reduce.memory.mb</name>
      <value>256</value>
    </property>
    
    <!-- Default 1536. Recommend 1024 -->
    <property>
      <description>Application master allocation</description>
      <name>yarn.app.mapreduce.am.resource.mb</name>
      <value>256</value>
    </property>
    
    <!-- Recommend heapsizes to be 75% of mapreduce.map/reduce.memory.mb -->
    <property>
      <name>mapreduce.map.java.opts</name>
      <value>-Xmx204m</value>
    </property>
    
    <property>
      <name>mapreduce.reduce.java.opts</name>
      <value>-Xmx204m</value>
    </property> 
    
    <property>
      <description>Application Master JVM opts</description>
      <name>yarn.app.mapreduce.am.command-opts</name>
      <value>-Xmx204m</value>
    </property>
    

    【讨论】:

    • 非常感谢。我对此非常感激。但是,我想知道我可以同时运行 8 个作业(每个是 )。
    • 在小型本地机器上运行时,您可能应该将设置调低一点,否则它会使您的机器不堪重负。我将编辑我的评论以添加更多信息。
    • 谢谢。我非常感谢这一点。
    • 太棒了。我明白这个问题
    • 非常感谢您的回答。但我仍然想知道 vcore 的数量。例如,如果您有一台具有 1 个 CPU 的计算机,并且 CPU 有 2 个内核,这意味着您最多只能使用 2 个内核,不能再使用更多了。实际上,我的计算机有 2 个物理内核,显然,当我运行任何作业、应用程序时,我可以看到这两个内核中的一个/两个都可以工作。但是为什么 hadoop/yarn 告诉我它的节点有 8 个 vcore,然后当我们在 hadoop 中运行作业时,它说使用了一些 vcore。不精确,因为物理内核是 2。与内存相同的理论。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-18
    • 2021-10-31
    • 2023-02-09
    • 1970-01-01
    • 2020-04-03
    • 2019-03-28
    • 2021-11-09
    相关资源
    最近更新 更多