MapReduce参数调优


1.设置合理solt数 mapred.tasktracker.map.tasks.maximum  每个tasktracker可同时运行的最大map task数,默认值2。
mapred.tasktracker.reduce.tasks.maximum 每个tasktracker可同时运行的最大reduce task数,默认值1。
2.配置磁盘块 mapred.local.dir map task中间结果写本地磁盘路径,默认值${hadoop.tmp.dir}/mapred/local。 可配置多块磁盘缓解写压力。当存在多个可以磁盘时,Hadoop将采用轮询方式将不同的map task中间结果写到磁盘上。
3.配置RPC Handler数 mapred.job.tracker.handler.count jobtracker可并发处理来自tasktracker的RPC请求数,默认值10。
4.配置HTTP线程数 tasktracker.http.threads HTTP服务器的工作线程数,用于获取map task的输出结果,默认值40。
5.启用批调度
6.选择合适的压缩算法 Job输出结果是否压缩 mapred.output.compress  是否压缩,默认值false。 mapred.output.compression.type 压缩类型,有NONE, RECORD和BLOCK,默认值RECORD。 mapred.output.compression.codec 压缩算法,默认值org.apache.hadoop.io.compress.DefaultCodec。
map task输出是否压缩 mapred.compress.map.output 是否压缩,默认值false mapred.map.output.compression.codec 压缩算法,默认值org.apache.hadoop.io.compress.DefaultCodec。
7.设置失败容忍度 mapred.max.map.failures.percent 作业最多允许失败的map task比例,默认值0。 mapred.max.reduce.failures.percent 作业最多允许失败的reduce task比例,默认值0。 mapred.map.max.attempts 一个map task的最多重试次数,默认值4。 mapred.reduce.max.attempts 一个reduce task的最多重试次数,默认值4。
8.设置跳过坏记录 mapred.skip.attempts.to.start.skipping 当任务失败次数达到该值时,启用跳过坏记录功能,默认值2。 mapred.skip.out.dir 检测出的坏记录存放目录,默认值为输出目录的_logs/skip,设置为none表示不输出。 mapred.skip.map.max.skip.records map task最多允许的跳过记录数,默认值0。 mapred.skip.reduce.max.skip.groups reduce task最多允许的跳过记录数,默认值0。
9.配置jvm重用 mapred.job.reuse.jvm.num.tasks  一个jvm可连续启动多个同类型任务,默认值1,若为-1表示不受限制。
10.配置jvm参数 mapred.child.java.opts 任务启动的jvm参数,默认值-Xmx200m,建议值-XX:-UseGCOverheadLimit -Xms512m -Xmx2048m -verbose:gc -Xloggc:/tmp/@taskid@.gc
11. map task调优 io.sort.mb 默认值100M io.sort.record.percent 默认值0.05 io.sort.spill.percent 默认值0.80
12.reduce task调优 io.sort.factor 默认值10 mapred.reduce.parallel.copies 默认值5

相关内容