2014-05-10 39 views
0

在hadoop中,我想将文件(几乎)平分到每个映射器。该文件很大,我想使用在作业启动时定义的特定数量的映射器。现在我已经定制了输入拆分,但我想确保如果我将文件拆分为两个(或更多拆分),我不会将线条剪成一半,因为我希望每个映射器都有完整的线条而不是破损的线条。Hadoop InputSplit适用于大型基于文本的文件

所以问题是这样的,我怎么能在每次创建过程中得到filesplit的近似大小,或者如果这是不可能的我怎么能估计一个大文件的(几乎)不想在任何映射器实例中出现任何虚线。

+1

看看这个答案大部分的疑虑,我认为这将帮助你。 http://stackoverflow.com/a/14540272/2436237 – gasparms

回答

1

您要求的所有内容都是Map Reduce中的默认行为。像映射器一样处理完整的行。默认情况下,Map Reduce努力平均分配st mappers中的负载。

你可以得到更多的细节here你可以看看InputSplits段落。

也可以通过@Shaw链接回答here,讨论如何处理跨越块分割的线的情况。

一个想通过hadoop bible的读数应清除出thsi方面