Hadoop MapReduce中map任务数量设定详解

首先注意的是在Hadoop Streaming 中可以通过-D mapred.map.tasks=(你想要设定的map数量) 来确定map任务的个数,

goal_num = mapred.map.tasks

但是这里需要注意的是,只有在这个值大于hadoop中计算的默认个数default_num的时候才会有效,默认个数的计算方式如下:

default_num = total_size / block_size;

 此外,可以通过改变mapred.min.split.size设置每个task处理文件的大小,但是只有在这个值大于block_size时才会生效

split_size= max (mapred.min.split.size,block_size)

split_num = total_size /split_size

在计算map的个数时:

compute_map_num = min(split_num ,max (default_num,goal_num))//

这个是参考的https://blog.csdn.net/dr_guo/article/details/51150278      感觉应该用错误,因为当goal_num设置为一个较大的数时,计算的compute_map_num为goal_num

这里可以看出split_num <= default_num,所以上述值其实就为split_num,

整理一下 : 

split_num 肯定会小于或等于默认的分块大小,即:split_num <=default_num

而当期望的map个数goa

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值