Hadoop InputSplit用于大型基于文本的文件

时间:2014-05-10 21:54:17

标签: java hadoop

在hadoop中,我想将文件(几乎)平均分配给每个映射器。文件很大,我想使用在作业开始时定义的特定数量的映射器。现在我已经定制了输入分割,但我想确保如果我将文件分成两个(或更多分割),我不会将一行切成两半,因为我希望每个映射器都有完整的行而不是破坏的行。

所以问题是这样,我怎样才能在每次创建过程中获得filesplit的大致大小,或者如果不可能的话我怎么能估计大文件的(几乎)相等的文件片段的数量,因为我不喜欢我想在任何映射器实例中都有任何断行。

1 个答案:

答案 0 :(得分:1)

您要求的所有内容都是Map Reduce中的默认行为。像地图选手一样处理完整的线条。默认情况下,Map Reduce努力均匀地在st映射器之间分配负载。

您可以获取有关它的更多详细信息here,您可以查看InputSplits段。

这个由@Shaw链接的答案here,讨论了如何处理遍布块分割的行的情况。

通过阅读hadoop bible来思考,应该清除你对这方面的大部分疑虑