说明:这是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>