zoukankan      html  css  js  c++  java
  • HDP 中 yarn 和 MR2 的配置

           以下说明均以集群中 slave 结点的配置为 48G内存,12块硬盘,12核(core) CPU 为例。

           在 Yarn 中,一个 Container 是一个基础的包含内存和CPU 的单元。为了较好的平衡利用集群的资源,通常建议每块磁盘和每个core 分配1~2 个 container。所以在上面的配置下,每个结点允许最大配置 20 个 container。

           我们给 yarn 分配 40G内存,另外 8G留给操作系统。40G分配给 20 个 container,所以每个 container 分配到 2个G的内存。在 yarn-site.xml 中配置如下:

    <property>
        <!-- 总共有多少资源可以被分配 --> <name>yarn.nodemanager.resource.memory-mb</name> <value>40960</value> </property> <property>
        <!-- 分配给AM单个容器可申请的最小内存 --> <name>yarn.scheduler.minimum-allocation-mb</name> <value>2048</value> </property>

          MapReduce2 运行在 Yarn 之上,利用 container 去安排 Map 和 Reduce 任务, 配置 MR2 的资源,需要考虑以下三个方面:

        (1)每个 map 和 reduce 任务的物理内存限制

        (2)每个任务的 JVM 堆大小

        (3)每个任务获得的虚拟内存的总量

        每个 map 和 reduce 任务运行在不同的 container 中,因此 Map 和 reduce 最大的内存配置应该等于或大于 yarn.scheduler.minimum-allocation-mb 的值。

    在 mapred-site.xml 里配置:

    <property>
    <!-- AM 中分配给map Container的内存大小 --> <name>mapreduce.map.memory.mb</name> <value>4096</value> </property> <property>
    <!-- AM 中分配给 reduce container 的内存大小,一般为 map 的两倍 --> <name>mapreduce.reduce.memory.mb</name> <value>8192</value> </property>

        每个 container 均会开启 JVM , JVM 的堆大小必须小于上面 Map 和 Reduce 的 memory 的配置。因此在 mapred-site.xml 中加入下面的配置:

    <property>
        <name>mapreduce.map.java.opts</name>
        <value>-Xmx3072m</value>
    </property>
    
    <property>
        <name>mapreduce.reduce.java.opts</name>
        <value>-Xmx6144m</value>
    </property>

       上面配置了 Map 和 Reduce 使用的物理内存的上限。map 和 reduce 任务使用的虚拟内存(physical + paged memory)由 yarn container 允许的 ratio 决定。这个ratio 可以在 yarn-site.xml 中进行配置(2.1 是默认值):

    <property>
        <name>yarn.nodemanager.vmem-pmem-ratio</name>
        <value>2.1</value>
    </property>

       综上所述,每个 map 任务可获得如下的内存分配:

    (1) 物理 RAM = 4G

    (2)map 任务的 container 的 JVM 的堆大小上限 = 3G

    (3)虚拟内存上限 = 4*2.1 = 8.4G

    总的来说,以 yarn.nodemanager. 开头的配置,配置的是硬件资源相关的东西, yarn.scheduler. 开头的配置,配置的是资源调度相关的,其值不能大于 yarn.nodemanager 中相关的资源限制。

  • 相关阅读:
    The Quad
    将OrCAD Capture CIS的设计文件(.dsn)导入到PADS Logic VX.2.3
    OrCAD Capture CIS 16.6 将版本16.6的设计文件另存为版本16.2的设计文件
    Eclipse IDE 添加jar包到Java工程中
    PADS Logic VX.2.3 修改软件界面语言
    切换Allegro PCB Editor
    Allegro PCB Design GXL (legacy) 将brd文件另存为低版本文件
    Allegro PCB Design GXL (legacy) 设置自动保存brd文件
    Could not create an acl object: Role '16'
    windows 下apache开启FastCGI
  • 原文地址:https://www.cnblogs.com/langfanyun/p/10560767.html
Copyright © 2011-2022 走看看