在Hadoop中检索输入拆分的起始位置

时间:2015-02-09 19:42:42

标签: java hadoop

我有一个项目,在Hadoop中使用MapReduce开发一个简单的文档索引。我需要检索FileSplit函数当前正在处理的map()的起始位置(如文件开头的字节偏移量)。据我了解,Mapper给出的输入拆分在逻辑上被RecordReader拆分为多个部分,每个部分都在map()之后编辑。

我阅读了FileSplit文档,我尝试过:

((FileSplit) context.getInputSplit()).getStart()

,但这总是返回0.此外,我确信文件在多个部分中分割,因为我进行了一些打印,所以我期待这里和那里的非零值。

有其他人遇到同样的问题吗?我还应该提一下,我对Hadoop的经验不多。

修改

有6个输入文件,每个大约16KB(压缩8KB)。所有文件似乎分为两个(Map input records=12)。每个Mapper都会调用map()两次,但getStart()次都会返回0。

0 个答案:

没有答案