最后一个拆分块

时间:2018-04-03 11:26:43

标签: hadoop machine-learning mapreduce

我正在使用MapReduce在映射器阶段训练一些模型。为此,我需要在mapper阶段找到最后一行输入。为此,我使用以下函数:Context.nextKeyValue()返回布尔值:True如果之后有值,则False

在我的示例中,我的数据被分成HDFS中的6个不同块。其中5个具有相同的大小,最后一个稍微小一些。我们知道每个映射器只能在一个块上工作。

当我尝试函数Context.nextKeyValue()时,它适用于5个第一个映射器(具有相同块大小的映射器),但不适用于函数始终返回True的最后一个映射器! / p>

我读到了机制:

public void run(Context context) throws IOException, InterruptedException{
    setup(context);
    while(context.nextKeyValue()){
        map(context.setCurrentKey(),context.getCurrentValue(),context)
    }
    cleanup(context);
}

我的问题是,我做错了什么吗?有人知道发生了什么事吗?

提前致谢!

0 个答案:

没有答案