说明:这是hadoop2.x版本的参数。下面的value都是参数默认值。
常用配置:
♥♥♥
1.mapreduce.job.hdfs-servers
value:${fs.defaultFS}
说明:job客户端参数。
2.mapreduce.task.io.sort.factor
value:10
说明:在Reduce Task阶段,排序文件时一次合并的流的数量。 这决定了打开文件句柄的数量。也即是一次合并的文件数据,每次合并的时候选择最小的前10进行合并。
3.mapreduce.task.io.sort.mb
value:100
说明:排序文件时使用的缓冲区内存总量,以兆字节为单位。 默认情况下,为每个合并流提供1MB,这应该最小化搜索。
4.mapreduce.map.sort.spill.percent
value:0.8
说明:Map阶段溢写文件的阈值(排序缓冲区大小的百分比)。
5.mapreduce.jobtracker.address
value:local
说明:MapReduce作业跟踪器运行的主机和端口。 如果是“本地”,则作业将作为单个映射在进程中运行并减少任务。
6.mapreduce.job.maps
value:2
说明:单个任务的map数量。
7.mapreduce.job.reduces
value:1
说明:单个任务的reduce数量。
8.mapreduce.job.running.map.limit
value:0
说明:单个任务并发的最大map数,0或负数没有限制
9.mapreduce.job.running.reduce.limit
value:0
单个任务并发的最大reduce数,0或负数没有限制
10.mapreduce.job.max.map
value:-1
说明:单个任务允许的最大map数,-1表示没有限制。
11.mapreduce.job.max.split.locations
value:10
说明:分片数量
12.mapreduce.job.split.metainfo.maxsize
value:10000000
说明:split的元数据信息数量,如果value为-1,则没有限制
13.mapreduce.map.maxattempts
value:4
说明:每个 Map Task 最大重试次数,一旦重试参数超过该值,则认为 Map Task 运行失败。
14.mapreduce.reduce.maxattempts
value:4
说明:每个 reduce Task 最大重试次数,一旦重试参数超过该值,则认为 reduce Task 运行失败。
15.mapreduce.reduce.shuffle.parallelcopies
value:5
说明:Reduce Task启动的并发拷贝数据的线程数目
16.mapreduce.task.timeout
value:600000
说明:如果任务既不读取输入,也不写入输出,也不更新其状态字符串,则任务终止之前的毫秒数。0表示禁用超时。
17.mapreduce.map.memory.mb
value:1024
说明:每个Map Task需要的内存量
18.mapreduce.map.cpu.vcores
value:1
说明:每个Map Task需要的虚拟CPU个数
19.mapreduce.reduce.memory.mb
value:1024
说明:每个Reduce Task需要的内存量
20.mapreduce.reduce.cpu.vcores
value:1
说明:每个Reduce Task需要的虚拟CPU个数
21.mapred.child.java.opts
value:-Xmx200m
说明:jvm启动的子线程可以使用的最大内存。建议值-XX:-UseGCOverheadLimit -Xms512m -Xmx2048m -verbose:gc -Xloggc:/tmp/@taskid@.gc
22.yarn.app.mapreduce.am.resource.mb
value:1536
说明:MR ApplicationMaster占用的内存量。
23.yarn.app.mapreduce.am.resource.cpu-vcores
value:1
说明:MR ApplicationMaster占用的虚拟CPU个数。
24.mapreduce.jobhistory.address
value:0.0.0.0:10020
说明:指定历史服务器的地址和端口
25.mapreduce.jobhistory.webapp.address
value:0.0.0.0:19888
说明:历史服务器的web地址
26.mapreduce.map.java.opts
value:-Xmx1024m
说明:每个map任务的jvm需要的内存量,一般为map内存的0.8
27.mapreduce.reduce.java.opts
value:
说明:每个reduce任务jvm需要的内存量。为reduce内存量的0.8
28.mapreduce.map.output.compress
value:false
说明: map输出是否进行压缩,如果压缩就会多耗cpu,但是减少传输时间,如果不压缩,就需要较多的传输带宽,默认是false。配合 mapreduce.map.output.compress.codec使用
29.mapreduce.map.output.compress.codec
value:org.apache.hadoop.io.compress.DefaultCodec
不常用配置:
1.mapreduce.local.clientfactory.class.name
value:org.apache.hadoop.mapred.LocalClientFactory
说明:这是负责创建本地作业运行客户端的客户端工厂。
2.mapreduce.jobtracker.system.dir
value:${hadoop.tmp.dir}/mapred/system
说明:MapReduce存储控制文件的目录,可配置多块硬盘,逗号分隔。
3.mapreduce.jobtracker.staging.root.dir
value:${hadoop.tmp.dir}/mapred/staging
说明:用来存放与每个job相关的数据
4.mapreduce.cluster.temp.dir
value:${hadoop.tmp.dir}/mapred/temp
说明:用来存放临时文件共享的目录。
5.mapreduce.job.reducer.preempt.delay.sec
value:0
说明:
6.mapreduce.reduce.shuffle.fetch.retry.enabled
value:${yarn.nodemanager.recovery.enabled}
说明:设置主机重新启动期间启用提取重试。
7.mapreduce.reduce.shuffle.fetch.retry.interval-ms
value:1000
说明:提取器重试再次获取的时间间隔。
8.mapreduce.reduce.shuffle.fetch.retry.timeout-ms
value:30000
说明:取回超时时间
9.mapreduce.reduce.shuffle.retry-delay.max.ms
value:60000
说明:在重试下载map数据之前,reducer将延迟的最大ms数。
10.mapreduce.reduce.shuffle.connect.timeout
value:180000
说明:reduce task 连接map的超时时间,以毫秒为单位。
11.mapreduce.reduce.shuffle.read.timeout
value:180000
说明:map 输出数据,reduce连接以后可用于读取的最长时间,以毫秒为单位。
12.mapreduce.shuffle.listen.queue.size
value:128
说明:shuffle侦听队列的长度
13.mapreduce.shuffle.connection-keep-alive.enable
value:false
说明:是否保持活跃连接,默认为false。
14.mapreduce.shuffle.connection-keep-alive.timeout
value:5
说明:保持活跃连接的秒数。
15.yarn.app.mapreduce.am.log.level
value:info
说明:MR ApplicationMaster的日志记录级别。 允许的级别为:OFF,FATAL,ERROR,WARN,INFO,DEBUG,TRACE和ALL。 如果设置了“mapreduce.job.log4j-properties-file”,则可以覆盖此处的设置。
16.mapreduce.map.log.level
value:info
说明:map任务的日志记录级别。 允许的级别为:OFF,FATAL,ERROR,WARN,INFO,DEBUG,TRACE和ALL。 如果设置了“mapreduce.job.log4j-properties-file”,则可以覆盖此处的设置。
17.mapreduce.reduce.log.level
value:info
说明:reduce任务的日志记录级别。 允许的级别为:OFF,FATAL,ERROR,WARN,INFO,DEBUG,TRACE和ALL。 如果设置了“mapreduce.job.log4j-properties-file”,则可以覆盖此处的设置。
18.mapreduce.reduce.merge.inmem.threshold
value:1000
说明:设置了Map任务在缓存溢出前能够保留在内存中的输出个数的阈值(默认1000),只要一个满足,输出数据都将会写到磁盘。
19.mapreduce.reduce.shuffle.merge.percent
value:0.66
说明:决定缓存溢出到磁盘的阈值(默认0.66),即占用分配给map输出总内存的百分比。
20.mapreduce.reduce.shuffle.input.buffer.percent
value:0.70
说明:Reduce任务对多个Map任务的输出结果进行合并时,占用的缓存空间在堆栈空间中的占用比例(默认0.70)。
21.mapreduce.reduce.input.buffer.percent
value:0
说明:reduce函数开始运行时,内存中的map输出所占的堆内存比例不得高于这个值,默认情况内存都用于reduce函数,也就是map输出都写入到磁盘
22.mapreduce.reduce.shuffle.memory.limit.percent
value:0.25
说明:一个单一的shuffle的最大内存使用限制
23.mapreduce.shuffle.ssl.enabled
value:false
说明:是否将SSL用于Shuffle HTTP端点。
24.mapreduce.shuffle.ssl.file.buffer.size
value:65536
说明:使用SSL时从文件读取溢出的缓冲区大小。
配置文件常用配置:
<property>
<name>mapreduce.map.memory.mb</name>
<value>1024</value>
</property>
<property>
<name>mapreduce.map.java.opts</name>
<value>-Xmx819M</value>
</property>
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>2048</value>
</property>
<property>
<name>mapreduce.reduce.java.opts</name>
<value>-Xmx1638M</value>
</property>
<property>
<name>mapreduce.task.io.sort.mb</name>
<value>512</value>
</property>
<property>
<name>mapreduce.task.io.sort.factor</name>
<value>100</value>
</property>
<property>
<name>mapreduce.tasktracker.http.threads</name>
<value>100</value>
</property>
<property>
<name>mapreduce.reduce.shuffle.parallelcopies</name>
<value>100</value>
</property>
<property>
<name>mapreduce.map.output.compress</name>
<value>true</value>
</property>
<property>
<name>mapreduce.map.output.compress.codec</name>
<value>org.apache.hadoop.io.compress.DefaultCodec</value>
</property>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobtracker.address</name>
<value>master:11211</value>
</property>
转自:https://www.cnblogs.com/yjt1993/p/9476573.html
