MapReduce的参数优化

目录

一、资源相关参数

二、容错相关参数

三、本地运⾏MapReduce作业

四、效率和稳定性相关参数


一、资源相关参数

以下参数是在⽤户⾃⼰的mr应⽤程序中配置在mapred-site.xml就可以⽣效
1. mapreduce.map.memory.mb: ⼀个 Map Task 可使⽤的资源上限(单位 :MB ), 默认为1024 。如果 Map Task 实际使⽤的资源量超过该值,则会被强制杀死。
2. mapreduce.reduce.memory.mb: ⼀个 Reduce Task 可使⽤的资源上限(单位:MB ),默认为 1024 。如果 Reduce Task 实际使⽤的资源量超过该值,则会被强制杀死。
3. mapreduce.map.cpu.vcores: 每个 Map task 可使⽤的最多 cpu core 数⽬ ,默认值: 1
4. mapreduce.reduce.cpu.vcores: 每个 Reduce task 可使⽤的最多 cpu core数⽬ , 默认值 : 1
5. mapreduce.map.java.opts: Map Task JVM 参数,你可以在此配置默认的java heap size等参数 .
⽐如:
        -Xmx1024m -verbose:gc -Xloggc:/tmp/@taskid@.gc” ( @taskid@ 会被 Hadoop框架⾃动换为相应的 taskid ,
        默认值: ""
6. mapreduce.reduce.java.opts: Reduce Task JVM 参数 , 可以在此配置默认的java heap size 等参数 .
        ⽐如:
        “-Xmx1024m -verbose:gc -Xloggc:/tmp/@taskid@.gc”, 默认值 : “”
下⾯的配置,应该在yarn启动之前就配置在服务器的yarn-site.xml配置⽂件中才能⽣效
7. yarn.scheduler.minimum-allocation-mb         1024         给应⽤程序container分配的最⼩内存
8. yarn.scheduler.maximum-allocation-mb         8192        给应⽤程序container分配的最⼤内存
9. yarn.scheduler.minimum-allocation-vcores 1
10. yarn.scheduler.maximum-allocation-vcores 32
11. yarn.nodemanager.resource.memory-mb         8192         每台NodeManager 最⼤可⽤内存
12. yarn.nodemanager.resource.cpu-vcores         8         每台NodeManager 最 ⼤可⽤cpu 核数
shuffle性能优化的关键参数,应在yarn启动之前就配置好
13. mapreduce.task.io.sort.mb         100         //shuffle的环形缓冲区⼤⼩,默认100m
14. mapreduce.map.sort.spill.percent         0.8         //环形缓冲区溢出的阈值,默认80%

二、容错相关参数

1. mapreduce.map.maxattempts:    每个 Map Task 最⼤重试次数,⼀旦重试参数超过该值,则认为Map Task 运⾏失败,默认值: 4
2. mapreduce.reduce.maxattempts:    每个 Reduce Task 最⼤重试次数,⼀旦重试参数超过该值,则认为Map Task 运⾏失败,默认值: 4
3. mapreduce.map.failures.maxpercent:    当失败的 Map Task 失败⽐例超过该值时,整个作业则失败,默认值为0. 如果你的应⽤程序允许丢弃部分输⼊数据,则该该值设为⼀个⼤于 0 的值,⽐如 5,表示如果有低于 5% Map Task失败(如果⼀个 MapTask 重试次数超过 mapreduce.map.maxattempts ,则认为这个Map Task 失败,其对应的输⼊数据将不会产⽣任何结果),整个作业仍认为成功。
4. mapreduce.reduce.failures.maxpercent:    当失败的 Reduce Task 失败⽐例超过该值时,整个作业则失败,默认值为0.
5. mapreduce.task.timeout:   Task 超时时间,经常需要设置的⼀个参数,该参数表达的意思为:如果⼀个task在⼀定时间内没有任何进⼊,即不会读取新的数据,也没有输出数据,则认为该task 处于block状态,可能是卡住 了,也许永远会卡主,为了防⽌因为⽤户程序永远 block 住不退出,则强制设置了⼀个 该超时时间(单位毫秒),默
认是 300000 。如果你的程序对每条输⼊数据的处理时间过⻓(⽐如会访问数据库,通过⽹络拉取数据等),建议将该 参数调⼤,该参数过⼩常出现的错误提示
“AttemptID:attempt_14267829456721_123456_m_000224_0 Timed out after 300 sec sContainer killed by the ApplicationMaster.”。

三、本地运⾏MapReduce作业

设置以下⼏个参数 :
MapReduce.framework.name=local
fs.defaultFS=local(file:///)

四、效率和稳定性相关参数

1) MapReduce.map.speculative: 是否为 Map Task 打开推测执⾏机制,默认为 false
2) MapReduce.reduce.speculative: 是否为 Reduce Task 打开推测执⾏机制,默认为false
3) MapReduce.job.user.classpath.first &  MapReduce.task.classpath.user.precedence:当同⼀个 class 同时出现在⽤户 jar包和 hadoop jar 中时,优先使⽤哪个 jar 包中的 class ,默认为 false ,表示优先使⽤hadoop jar 中的 class
4) MapReduce.input.fileinputformat.split.minsize: FileInputFormat 做切⽚时的最⼩切⽚⼤⼩
5) MapReduce.input.fileinputformat.split.maxsize:
                FileInputFormat做切⽚时的最⼤切⽚⼤⼩( 切⽚的默认⼤⼩就等于 blocksize ,即 134217728)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值