• yarn & mapreduce 配置参数总结


    配置

    1. 设置nodemanager 总内存大小为32G,在yarn-site.xml 增加如下内容:

      <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>32768</value>
      </property>
    2. container内存按照默认大小配置,即为最小1G,最大8G

      <property>
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>1024</value>
      </property>
      
      <property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>8192</value>
      </property>
    3. 每个任务最大jvm heap 大小为1000M,在mapred-site.xml 增加如下内容:

      <property>
            <name>mapred.child.java.opts</name>
            <value>-Xmx1000M -Dfile.encoding=UTF8 -XX:-UseGCOverheadLimit</value>
          </property>
    4. FairScheduler调度器配置,在yarn-site.xml 增加如下内容:

      <property>
            <name>yarn.resourcemanager.scheduler.class</name>    <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
          </property>
      
          <property>
            <name>yarn.scheduler.fair.allocation.file</name>
            <value>/home/cluster/conf/hadoop/fair-scheduler.xml</value>
          </property>
    5. 日志聚合功能,在yarn-site.xml 增加如下内容:

      <property>    
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
      </property> 
      
      <property>
        <name>yarn.nodemanager.remote-app-log-dir</name>
        <value>/var/log/hadoop-yarn/apps</value>
        <description>Where to aggregate logs to.</description>
      </property> 
      
      <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>86400</value>
      </property>
    6. 开启jobhistory服务

      • 在yarn-site.xml 增加如下内容:
      <property>
        <name>yarn.log.server.url</name>
        <value>http://master:19888/jobhistory/logs/</value>
      </property>
      • 在mapred-site.xml 增加如下内容:
          <property>
             <name>mapreduce.jobhistory.address</name>
             <value>master:10020</value>
          </property>
      
          <property>
             <name>mapreduce.jobhistory.webapp.address</name>
             <value>master:19888</value>
          </property>
    7. 设置yarn heap 大小,在yarn-env.sh 增加如下内容:

      YARN_HEAPSIZE=6000
    8. 设置hadoop heap 大小,在hadoop-env.sh 增加如下内容:

      
      # The maximum amount of heap to use, in MB. Default is 1000.
      
      export HADOOP_HEAPSIZE=6000
    9. 设置namenode jvm heap 大小,在hadoop-env.sh 增加如下内容:

      export HADOOP_NAMENODE_OPTS="-Xmx60000m -Dcom.sun.management.jmxremote -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationStoppedTime -Xloggc:/home/stark_summer/logs/hadoop-hdfs/gc-$(hostname)-hdfs.log $HADOOP_NAMENODE_OPTS"
    10. 设置datanode jvm heap 大小(继承HADOOP_HEAPSIZE参数配置),在hadoop-env.sh 增加如下内容:

      export HADOOP_NAMENODE_OPTS="-Dhadoop.security.logger=${HADOOP_SECURITY_LOGGER:-INFO,RFAS} -Dhdfs.audit.logger=${HDFS_AUDIT_LOGGER:-INFO,NullAppender} $HADOOP_NAMENODE_OPTS"
      export HADOOP_DATANODE_OPTS="$JMX_BASE -Dcom.sun.management.jmxremote.port=26003 $HADOOP_DATANODE_OPTS"
      export HADOOP_DATANODE_OPTS="-Dhadoop.security.logger=ERROR,RFAS $HADOOP_DATANODE_OPTS"
      
    11. 设置secondarynamenode jvm heap 大小,在hadoop-env.sh 增加如下内容:

      export HADOOP_SECONDARYNAMENODE_OPTS="-Xms58320m -Xmx58320m -XX:-UseGCOverheadLimit -Dcom.sun.management.jmxremote $HADOOP_SECONDARYNAMENODE_OPTS"
      export HADOOP_SECONDARYNAMENODE_OPTS="-Dhadoop.security.logger=${HADOOP_SECURITY_LOGGER:-INFO,RFAS} -Dhdfs.audit.logger=${HDFS_AUDIT_LOGGER:-INFO,NullAppender} $HADOOP_SECONDARYNAMENODE_OPTS"

    参数调优

    1. 设置 map & reduce 的container分配内存大小

      -D mapreduce.map.memory.mb="1500" 
      -D mapreduce.reduce.memory.mb="1500" 
    2. 设置 map & reduce 的 jvm heap 大小

      -D mapreduce.map.java.opts="-Xms1600M -Xmx1600M -Dfile.encoding=UTF8 -XX:-UseGCOverheadLimit" 
      
      -D mapreduce.reduce.java.opts="-Xms2500M -Xmx2500M -Dfile.encoding=UTF8 -XX:-UseGCOverheadLimit" 
      
      等价于
      
      -D mapred.map.child.java.opts="-Xms1600M -Xmx1600M -Dfile.encoding=UTF8 -XX:-UseGCOverheadLimit" 
      
      -D mapred.reduce.child.java.opts="-Xms2500M -Xmx2500M -Dfile.encoding=UTF8 -XX:-UseGCOverheadLimit" 
      
    3. 设置shuffle比例,默认shuffle比例是0.70,可降低这个比例

      -D mapreduce.reduce.shuffle.input.buffer.percent=0.4 
    4. 设置队列名称

      -D mapreduce.job.queuename=root.routine 

      尊重原创,拒绝转载
      http://blog.csdn.net/stark_summer/article/details/48494391

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    [20181130]hash冲突导致查询缓慢.txt
    [20181130]control file sequential read.txt
    [20181124]关于降序索引问题3.txt
    [20181124]关于降序索引问题2.txt
    [20181122]模拟ORA-08103错误.txt
    [20181116]18c DML 日志优化.txt
    [20181109]12c sqlplus rowprefetch参数5
    [20181109]12cR2 的pre_page_sga参数
    [20181108]12c sqlplus rowfetch参数4.txt
    ubuntu15.10 给解压版的eclipse安装桌面快捷方式
  • 原文地址:https://www.cnblogs.com/stark-summer/p/4829737.html
Copyright © 2020-2023  润新知