MapReduce 切片源码中SPLIT_SLOP等于1.1的原因分析(TextInputFormat)

之所以是1.1倍的splitSize,原因应该是考虑到文件大小为32.1M这种情况,由于切片大小默认等于块大小,所以此时数据的块存储跟切片存储大小一致,都被分为32M和0.1M。而此时由于有两个切片则不得不开启两个MapTask。而MR不擅长处理小文件的运算也是因为此时启动MapTask的时间耗费比计算时间还长(此时不如用python处理)。而如果将32.1M只当成一个切片来处理的话,虽然数据块是位于两个节点服务器中,而MapTask只在其中一个服务器中,但只在两个服务器中传递这0.1M的时间成本相比于另外启动一个MapTask的时间而言应该会更加短。这些都是出于时间成本的考虑。

还有另一种35.3M32M * 1.1 = 35.2M的情况,此时由于大于1.1倍的splitSize,则需要切片,但需要注意每一切片的大小依然是块大小32M,所以此时会被切割成32M和3.3M。
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值