RecordReader 在 Hadoop 中的工作



谁能解释一下RecordReader的实际工作原理?程序开始执行后,nextkeyvalue()getCurrentkey()getprogress()的方法如何工作?

(新API):默认的Mapper类有一个运行方法,如下所示:

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

Context.nextKeyValue()Context.getCurrentKey()Context.getCurrentValue() 方法是RecordReader方法的包装器。请参阅源文件src/mapred/org/apache/hadoop/mapreduce/MapContext.java

因此,此循环执行并调用映射器实现的map(K, V, Context)方法。

具体来说,你还想知道什么?

org.apache.hadoop.mapred.MapTask- 运行新映射器()

操作步骤:

  1. 创建新的映射器

  2. 获取映射器的输入拆分

  3. 获取拆分的记录读取器

  4. 初始化记录读取器

  5. 使用记录读取器遍历getNextKeyVal()并将Key,Val传递给映射器映射方法

  6. 收拾

相关内容

  • 没有找到相关文章

最新更新