Hadoop FileInputFormat isSplitable false

时间:2013-01-13 02:47:15

标签: hadoop hadoop-partitioning

我有一个简单的问题,我想我知道关于FileInputFormat isSplitable方法的答案。如果我重写此方法以返回false,我自然会有一个映射器处理文件(我只有1个文件)。如果此文件分布在HDFS上,则所有文件都将被提取到我的单个映射器。当我使用mapper处理它并创建要发送给reducers的键/值对时,如果我创建了大量的它们,它们是否会在我的集群中分布以利用数据局部性或是否存在某种隐式结果是,如果我使它成为可分解的假,那不会再发生了吗?

1 个答案:

答案 0 :(得分:4)

isSplitable返回false时,只有一个映射器处理整个文件。映射器可以发出任意数量的KV对。

来到reducer,没有数据局部性的概念,下一个可用的免费Reduce插槽被使用.FYI,在传统MR架构的情况下,每个节点上都有用于Map和Reduce的插槽,但是如果是YARN没有插槽的概念。

可以根据插槽的可用性或基于在YARN情况下ResourceManager返回的内容,在多个节点上分布缩减器。