<configuration>
<property>
<name>mapreduce.job.split.metainfo.maxsize</name>
<value>10000000</value>
<description>分隔元信息文件的最大值是10M以下</description>
</property>
<property>
<name>mapreduce.job.counters.max</name>
<value>120</value>
<description></description>
</property>
<property>
<name>mapreduce.output.fileoutputformat.compress</name>
<value>false</value>
<description>job输出结果是否压缩</description>
</property>
<property>
<name>mapreduce.output.fileoutputformat.compress.type</name>
<value>BLOCK</value>
<description>默认值:false 这些参数控制是否对输出进行压缩,磁盘 I/O 相关的参数说明:mapreduce.output.fileoutputformat.compress.type 用于 map 输出压缩</description>
</property>
<property>
<name>mapreduce.output.fileoutputformat.compress.codec</name>
<value>org.apache.hadoop.io.compress.DefaultCodec</value>
<description>启用输出压缩可以加快磁盘(本地/Hadoop Distributed File System (HDFS))写操作,减少数据传输的总时间(在 shuffle 和 HDFS 写阶段),但是在另一方面压缩/解压过程会增加开销。</description>
</property>
<property>
<name>mapreduce.map.output.compress.codec</name>
<value>org.apache.hadoop.io.compress.SnappyCodec</value>
<description>默认是org.apache.hadoop.io.compress.DefaultCodec,可以根据需要设定数据压缩方式</description>
</property>
<property>
<name>mapreduce.map.output.compress</name>
<value>true</value>
<description>map输出是否进行压缩,如果压缩就会多耗cpu,但是减少传输时间,如果不压缩,就需要较多的传输带宽。配合mapreduce.map.output.compress.codec使</description>
</property>
<property>
<name>zlib.compress.level</name>
<value>DEFAULT_COMPRESSION</value>
<description></description>
</property>
<property>
<name>mapreduce.task.io.sort.factor</name>
<value>64</value>
<description>排序文件的时候一次同时最多可并流的个数,这里设置100</description>
</property>
<property>
<name>mapreduce.map.sort.spill.percent</name>
<value>0.8</value>
<description>Map阶段溢写文件的阈值(排序缓冲区大小的百分比</description>
</property>
<property>
<name>mapreduce.reduce.shuffle.parallelcopies</name>
<value>10</value>
<description>reuduce shuffle阶段并行传输数据的数量。这里改为10。集群大可以增大。</description>
</property>
<property>
<name>mapreduce.task.timeout</name>
<value>600000</value>
<description>前一个任务的毫秒数终止如果它没有读取一个输入,输出写道,也没有更新其状态的字符串。值0表示禁止超时</description>
</property>
<property>
<name>mapreduce.client.submit.file.replication</name>
<value>2</value>
<description>mapreduce.client.submit.file.replication参数指定,默认是10,比普通HDFS文件的默认幅本数大很多,可能也是考虑到把输入数据放到更多的DT上,尽>可能实现本地数据计算</description>
</property>
<property>
<name>mapreduce.job.reduces</name>
<value>5</value>
<description>每个job默认reduce的个数在yarn框架下,可能无效。</description>
</property>
<property>
<name>mapreduce.task.io.sort.mb</name>
<value>256</value>
<description>越大排序效率越高,建议256,默认为100,单位:mb</description>
</property>
<property>
<name>mapreduce.map.speculative</name>
<value>false</value>
<description>是否对Map Task启用推测执行机制</description>
</property>
<property>
<name>mapreduce.reduce.speculative</name>
<value>false</value>
<description>是否对Reduce Task启用推测执行机制</description>
</property>
<property>
<name>mapreduce.job.reduce.slowstart.completedmaps</name>
<value>0.8</value>
<description>当map task完成的比例达到改制后才会为reduce task申请资源,默认是0.05</description>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>m001:10020</value>
<description>MapReduce JobHistory Server地址</description>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>m001:19888</value>
<description>MapReduce JobHistory Server Web UI地址。</description>
</property>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<description>mapreduce使用的框架名称,可选“yarn”或者“local” 对于hadoop 2.2+,必须使用yarn。</description>
</property>
<property>
<name>yarn.app.mapreduce.am.staging-dir</name>
<value>/user</value>
<description>的默认值是/tmp/hadoop-yarn/staging,该目录下将存在3个文件,分别是以“.jhist”、“.summary”和“.xml”结尾的文件,分别表示作业运行日志、作业概要信息和作业配置属性</description>
</property>
<property>
<name>yarn.app.mapreduce.am.resource.mb</name>
<value>1024</value>
<description>MR ApplicationMaster占用的内存量</description>
</property>
<property>
<name>yarn.app.mapreduce.am.resource.cpu-vcores</name>
<value>1</value>
<description>MR ApplicationMaster占用的虚拟CPU个数</description>
</property>
<property>
<name>mapreduce.job.ubertask.enabled</name>
<value>false</value>
<description>是否启用user功能。如果启用了该功能,则会将一个“小的application”的所有子task在同一个JVM里面执行,达到JVM重用的目的。这个JVM便是负责该application的ApplicationMaster所用的JVM(运行在其container里)</description>
</property>
<property>
<name>yarn.app.mapreduce.am.command-opts</name>
<value>-Djava.net.preferIPv4Stack=true -Xmx838860800</value>
<description>解决加载ipv6模块的问题???-待定不确认。</description>
</property>
<property>
<name>mapreduce.map.java.opts</name>
<value>-Djava.net.preferIPv4Stack=true -Xmx825955249</value>
<description>JVM进程参数</description>
</property>
<property>
<name>mapreduce.reduce.java.opts</name>
<value>-Djava.net.preferIPv4Stack=true -Xmx825955249</value>
<description>JVM进程参数</description>
</property>
<property>
<name>mapreduce.map.memory.mb</name>
<value>1024</value>
<description>map任务所能使用的最大内存量</description>
</property>
<property>
<name>mapreduce.map.cpu.vcores</name>
<value>1</value>
<description>CPU数目,默认是1</description>
</property>
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>2048</value>
<description>每个Reduce Task需要的内存量</description>
</property>
<property>
<name>mapreduce.reduce.cpu.vcores</name>
<value>1</value>
<description>每个Reduce Task需要的虚拟CPU个数</description>
</property>
<property>
<name>mapreduce.application.classpath</name>
<value>$HADOOP_MAPRED_HOME/*,$HADOOP_MAPRED_HOME/lib/*,$MR2_CLASSPATH,/opt/cloudera/parcels/HADOOP_LZO/lib/hadoop/lib/*</value>
<description></description>
</property>
<property>
<name>mapreduce.admin.user.env</name>
<value>LD_LIBRARY_PATH=$HADOOP_COMMON_HOME/lib/native:/opt/cloudera/parcels/HADOOP_LZO/lib/hadoop/lib/native:$JAVA_LIBRARY_PATH</value>
<description></description>
</property>
<property>
<name>mapreduce.shuffle.max.connections</name>
<value>80</value>
<description>最大连接数</description>
</property>
<property>
<name>mapreduce.reduce.shuffle.memory.limit.percent</name>
<value>0.1</value>
<description>每个fetch取到的输出的大小能够占的内存比的大小。默认是0.25。因此实际每个fetcher的输出能放在内存的大小是reducer的java heap size*0.9*0.25。 所以,如果我们想fetch不进磁盘的话,可以适当调大这个值。</description>
</property>
</configuration>