谁能解释 RecordReader 的实际工作原理?程序开始执行后方法nextkeyvalue()
和getCurrentkey()
工作如何?getprogress()
问问题
5816 次
2 回答
14
(新 API):默认 Mapper 类有一个 run 方法,如下所示:
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
所以这个循环执行并调用你的 Mapper 实现的map(K, V, Context)
方法。
具体来说,您还想知道什么?
于 2012-06-08T10:53:48.383 回答
0
org.apache.hadoop.mapred.MapTask - runNewMapper()
实施步骤:
创建新的映射器
获取映射器的输入拆分
获取拆分的记录仪
初始化记录阅读器
使用记录阅读器遍历 getNextKeyVal() 并将 key,val 传递给映射器映射方法
清理
于 2016-01-15T16:18:52.943 回答