前言
我们运行Hadoop MapReduce程序之前,都会配置job对象,通常的程序入口如下编写:
public static void main(String[] args) throws Exception {
Configuration conf = new Configuration();
String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs();
if (otherArgs.length < 2) {
System.err.println("Usage: wordcount <in> [<in>...] <out>");
System.exit(2);
}
Job job = new Job(conf, "word count");
job.setJarByClass(WordCount.class);
job.setMapperClass(TokenizerMapper.class);
这里主要涉及两个类,Configuration 类和Job 类,我们通过这两个类出发,来仔细研究一下Hadoop MapReduce 配置加载机制
继承关系
Job类,JobContextImpl 类,JobContext接口,MRJobConfig接口的继承关系如下
class Job extends JobContextImpl implements JobContext
class JobContextImpl implements JobContext
interface JobContext extends MRJobConfig
MRJobConfig接口中存放了MapReduce程序所有的可以配置的参数的Key值。
public interface MRJobConfig {
// P