hadoop配置优化

yarn-site.xml

  <property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>22528</value>
    <discription>每个节点可用内存,单位MB,默认8182MB</discription>
  </property>

  <property>
    <name>yarn.scheduler.minimum-allocation-mb</name>
    <value>1500</value>
    <discription>每个容器可申请最少内存,默认1024MB</discription>
  </property>

  <property>
    <name>yarn.scheduler.maximum-allocation-mb</name>
    <value>16384</value>
    <discription>每个容器可申请最大内存,默认8192MB</discription>
  </property>


  mapred-site.xml
  <property>
    <name>mapreduce.map.memory.mb</name>
    <value>1500</value>
    <description>每个Map任务的物理内存限制</description>
  </property>

  <property>
    <name>mapreduce.reduce.memory.mb</name>
    <value>3000</value>
    <description>每个Reduce任务的物理内存限制</description>
  </property>

  <property>
    <name>mapreduce.map.java.opts</name>
    <value>-Xmx1200m</value>
  </property>

  <property>
    <name>mapreduce.reduce.java.opts</name>
    <value>-Xmx2600m</value>
  </property>

mapreduce.map.memory.mb:每个map任务的内存,应该是大于或者等于Container的最小内存。

22528在yarn-site.xml配置的所有可用内存

按照上面的配置:每个slave可以运行map的数据<= 22528/1500,reduce任务的数量<=22528/3000

mapreduce.map.java.opts和mapreduce.reduce.java.opts的配置项在2.6.2中没有找到,找到这个

    <property>
        <name>mapred.child.java.opts</name>
        <value>-Xmx1800m</value>
    </property>

在sqoop导出mysql数据到hbase时,出现错误
gc overhead limit exceeded

通过调高:
mapred.child.java.opts
mapreduce.map.memory.mb
mapreduce.reduce.java.opts
解决此错误

HDP解释:How to Plan and Configure YARN and MapReduce 2 in HDP 2.0
http://zh.hortonworks.com/blog/how-to-plan-and-configure-yarn-in-hdp-2-0/

原文地址:https://www.cnblogs.com/ggzone/p/10121195.html