主要参照Hadoop官方给出的配置指南进行的java
hadoop.tmp.dir
默认值: /tmp
说明: 尽可能手动配置这个选项,不然的话都默认存在了里系统的默认临时文件/tmp里。而且手动配置的时候,若是服务器是多磁盘的,每一个磁盘都设置一个临时文件目录,这样便于mapreduce或者hdfs等使用的时候提升磁盘IO效率。node
fs.trash.interval
默认值: 0
说明: 这个是开启hdfs文件删除自动转移到垃圾箱的选项,值为垃圾箱文件清除时间。通常开启这个会比较好,以防错误删除重要文件。单位是分钟。linux
fs.inmemory.size.mb
默认值:
说明: reduce阶段用户合并map输出的内存限制。这里设置200,可根据自身硬件设备进行更改测试。apache
io.sort.factor
默认值:10
说明:排序文件的时候一次同时最多可并流的个数,这里设置100。新版本为mapreduce.task.io.sort.factor。缓存
io.sort.mb
默认值:100
说明: 排序内存使用限制,这里设置200m。新版本看说明貌似改为了这个mapreduce.task.io.sort.mb。服务器
io.file.buffer.size
默认值:4096
说明:SequenceFiles在读写中可使用的缓存大小,这里设置为131072。貌似这个参数在新版本里变为了:file.stream-buffer-size,单位bytes 。jvm
dfs.blocksize
默认值:67108864
说明: 这个就是hdfs里一个文件块的大小了,默认64M,这里设置134217728,即128M,太大的话会有较少map同时计算,过小的话也浪费可用map个数资源,并且文件过小namenode就浪费内存多。根据须要进行设置。oop
dfs.namenode.handler.count
默认值:10
说明:hadoop系统里启动的任务线程数,这里改成40,一样能够尝试该值大小对效率的影响变化进行最合适的值的设定。测试
mapred.child.java.opts
默认值:-Xmx200m
说明:jvms启动的子线程可使用的最大内存。改成-Xmx1024m,内存再大也能够继续增长。可是若是通常任务文件小,逻辑不复杂用不了那么多的话太大也浪费。spa
mapreduce.jobtracker.handler.count
默认值:10
说明:JobTracker能够启动的线程数,通常为tasktracker节点的4%。
mapreduce.reduce.shuffle.parallelcopies
默认值:5
说明:reuduce shuffle阶段并行传输数据的数量。这里改成10。集群大能够增大。
mapreduce.tasktracker.http.threads
默认值:40
说明:map和reduce是经过http进行数据传输的,这个是设置传输的并行线程数。
mapreduce.map.output.compress
默认值:false
说明: map输出是否进行压缩,若是压缩就会多耗cpu,可是减小传输时间,若是不压缩,就须要较多的传输带宽。配合mapreduce.map.output.compress.codec使用,默认是org.apache.hadoop.io.compress.DefaultCodec,能够根据须要设定数据压缩方式。
mapreduce.reduce.shuffle.merge.percent
默认值: 0.66
说明:reduce归并接收map的输出数据可占用的内存配置百分比。相似mapreduce.reduce.shuffle.input.buffer.percen属性。
mapreduce.reduce.shuffle.memory.limit.percent默认值: 0.25说明:一个单一的shuffle的最大内存使用限制。