Hadoop中的mapper数量和reducer数量的设定

Hadoop本身提供了map-reduce分布式计算框架,将大文件切块存储、计算,分而治之。在map-reduce框架中,输入数据被划分成等长的小数据块,称为输入分片(input split)。 每个输入分片均会构建一个map任务以处理分片中的每条记录,排过序的处理结果通过网络传输发送到运行reduce任务的节点。 reduce任务节点在复制完所有map输出后,将其按照排序顺序合并。 最后,reduce任务通过运行用户自定义的reduce函数以完成MapReduce作业。

mapper的数量

Hadoop采用“数据本地化优化”的策略,使得map端任务到达最佳性能。 在application master为每个分片创建map作业的过程中,MapReduce框架优先选择存储有输入数据的节点来执行map任务。
  如果所有存储该分片数据的节点都在执行map任务时,作业调度会尝试从数据块所在机架上的其他节点寻找空闲的map槽, 只有当无法在当前机架运行map任务时才在其他机架创建map作业。 因为同一个机架上的两个数据节点之间的数据传输,比跨机架的数据传输有着更高的带宽和更低的延迟响应。
  此外,因为对任务的分配,初始化数据和数据输出,这个过程比较耗费时间。会出现启动任务花费的时间在整个任务作业的执行中占的时间比较大的情况,这会影响任务的执行效率,因此建议map任务的运行时间最好能在一分钟以上。 但是,和reducer不一样,不能调节mapper的运行时间,只能通过设定分片的大小间接调整mapper的个数。
MapReduce框架的输入数据分片是由InputFormat接口来完成的。FileInputFormat提供了三个属性参数来控制实际的分片大小:

  • mapreduce.input.fileinputf
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值