name |
说明 |
mapred.task.profile |
是否对任务进行profiling,调用java内置的profile功能,打出相关性能信息 |
mapred.task.profile.{maps|reduces} |
对几个map或reduce进行profiling。非常影响速度,建议在小数据量上尝试 |
mapred.job.reuse.jvm.num.tasks |
1表示不reuse,-1表示无限reuse,其他数值表示每个jvm reuse次数。reuse的时候,map结束时不会释放内存! |
mapred.{map|reduce}.tasks.speculative.execution |
会对运行慢的任务起一个备份任务,看哪个先完成,kill掉后完成的备份 |
io.sort.spill.percent |
开始spill的内存比例阈值,对map和reduce都生效 |
mapred.job.shuffle.input.buffer.percent |
reduce在copy时使用的堆空间的比例 |
mapred.tasktracker.{map|reduce}.tasks.maximum |
一个Tasktracker上可同时运行的最大map、reduce任务数 |
mapred.reduce.copy.backoff |
reduce获取一份map输出数据的最大时间,单位秒。 |
io.compression.codecs |
压缩算法 |
dfs.block.size |
hdfs上的文件block大小 |
mapred.reduce.slowstart.completed.maps |
控制reduce的启动时机。表示全部map的百分之多少完成后,才启动reduce。如果机器内存紧张,可以适当设大改参数,等大部分map结束并释放内存后才启动reduce;如果希望尽快开始shuffle,则可配合大量map数,将该值设小,以尽早启动reduce,开始copy。 |
io.sort.mb |
map使用的缓存,影响spill的次数。 |
mapred.child.java.opts |
同时设置map和reduce的jvm参数 |
mapred.map.child.java.opts |
分开设置map的jvm参数,包括GC策略 |
mapred.reduce.child.java.opts |
分开设置reduce的jvm参数 |
map.sort.class |
对map的输出key的排序方法 |
mapred.output.compression.type |
压缩类型 |
mapred.min.split.size |
每个map的最小输入大小,该值越大,map数越少 |
mapred.max.split.size |
每个map的最大输入大小,该值约小,map数越多 |
mapred.reduce.parallel.copies |
reduce从map结果copy数据时,每个reduce起的并行copy线程数。该值越大,io压力越大,但可能引起网络堵塞,copy效率反而降低。 |
io.sort.factor |
merge时的并行merge数,同时影响map的spill文件merge和reduce中的merge |
mapred.compress.map.output |
指定map的输出是否压缩。有助于减小数据量,减小io压力,但压缩和解压有cpu成本,需要慎重选择压缩算法。 |
mapred.map.output.compression.codec |
map输出的压缩算法 |
mapred.output.compress |
reduce输出是否压缩 |
mapred.output.compression.codec |
控制mapred的输出的压缩的方式 |
io.sort.record.percent |
map中间数据的index和data在io.sort.mb中占内存的比例,默认0.05%,需要根据具体数据的特点调整:index的大小固定为16byte,需要根据data的大小调整这个比例,以使io.sort.mb的内存得到充分利用)。 |