MapReduce一些优化配置(尝试)

最近在阅读hadoop MapReduce的一些配置,以后工作中可以逐步尝试下。

  1. 整个MapReduce的核心部分就是在shuffle部分,根据输入文件确定好map后,每一个map都会有一个buffer(in memory),这样以流的方式读取文件,当buffer达到一个阈值时,输入到文件,这样map阶段先回产生一堆spill文件,并且后台进程保证他们按照key有序,最后将它们合并成一个有序(这点有点疑惑,这个文件分区内key是有序的吗?那么这里排序了两次?)的分区的文件。mapreduce.task.io.sort.mb控制buffer的容量,mapreduce.map.sort.spill.percent控制阈值。
  2. 当map task结束时,会有多个分割的文件,在task结束前,会将这些spill文件合并到一起,有序,分区的。参数mapreduce.task.io.sort.factor不仅控制了merge的最大流的数量,同时也控制了随后各个map的文件合并的情况,例如途中每2个merger文件合并一个文件。如果有50个map,factor为10。那么最后会产生5个文件给reduce。
  3. mapreduce.map.output.compress=true,mapreduce.map.output.compress.codec配置压缩编码。
  4. mapreduce.reduce.shuffle.input.buffer.percent:Map的输出会被复制到,reduce task的JVM的内存中,如果它们足够小的话。这个参数控制了jvm中的head的多少比例可以被用来作为buffer的容量。同时,mapreduce.reduce.shuffle.merge.percent控制这个阈值
  5. mapreduce.job.reduce.slowstart.completedmaps多少比例的map任务完成后,开始reduce。

 

转载于:https://www.cnblogs.com/dalu610/p/5754210.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值