MapReduce参数调优

来源:互联网 发布:华为云计算认证培训 编辑:程序博客网 时间:2024/06/13 11:20
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

本文转载自推酷文章:MapReduce参数调优

1 0
原创粉丝点击