我编写了一些例程Hadoop MapReduce作业,因此仅基于给定Apache Hadoop源代码中的一些示例调用context.write()
方法。但是这样的复制并不能帮助我更深入地理解Hadoop API。
因此,最近我开始更仔细地阅读Hadoop API文档(https://hadoop.apache.org/docs/r2.7.0/api/),并试图找出上下文中除了context.write()
之外还有其他方法。例如,在teragen
示例中,使用context.getCounter()
。
但令我惊讶的是,我无法从上面的链接中找到Context
类文档。
我在哪里可以找到文档的Context
类在hadoop?
如果您深入研究标准的Mapper类源代码(第106行左右),您就可以开始弄清楚发生了什么。
public abstract class Context
implements MapContext<KEYIN,VALUEIN,KEYOUT,VALUEOUT> {
}
所以这只是一个abstract class
,它实现了这里的MapContext
接口(Javadoc链接)。
具体实现见MapContextImpl
。
看起来ContextFactory
(源代码)负责创建上下文的不同实现。