《hadoop》权威指南 MapReduce

为什么最佳分片的大小与块大小相同?

        它是最大的可保证存储在单个节点上的数据量。如果分区跨越两个快,那么对于任何一个HDFS节点而言,基本不可能同时存储这两块数据,因此此分布的某部分必须通过网络传输到节点,这与使用本地数据运行map任务相比,显然效率更低。

 

map任务把输入写入本地磁盘,而不是HDFS。因为map的输出作为中间输出:而中间输出则被reduce任务处理后产生最终的输出,一旦作业完成,map的输出就可以删除了。如果该节点上运行的map任务在map输出给reduce任务处理之前崩溃,那么hadoop将在另一个节点上重新运行map任务以再次创建map的输出。

 

为增加其可靠性,reduce的输出通常存储在HDFS中。对于每个reduce输出的HDFS,第一个副本存储在本地节点上,其他副本存储在其他机架节点中。

 

reduce任务的数目并不是由输入的大小来决定的,而是单独具体指定的。

 

combiner并不能取代reduce函数。但它可以帮助减少map和reduce之间的数据传输量。而正因为此,是否在MapReduce作业中使用combiner是需要慎重考虑的。

 

通常将reduce函数设置为combiner

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值