5分钟
运行job
在Hadoop中,一次运算任务就称为一个job,通过JobConf对象来设置如何运行一个job。此代码中,定义了输出的key为Text类型、value的类型为IntWritable,在实现Map类中MapClass作为Mapper类,在实现Reduce类中Reduce作为Reducer类和Combiner类,任务的输入路径和输出路径由命令行的参数指定,这样job运行时会处理输入路径下的所有文件,并将计算结果写到输出路径下。将JobConf对象作为参数,调用JobClient中的runJob,就可以执行这个计算任务。
//定义一个run函数
public int run(String[] args) throws Exception {
//一次计算任务称为一个job, 可以通过一个 JobConf 对象设置如何运行这个job
//可以通过一个JobConf对象设置如何运行这个job
JobConf conf = new JobConf(getConf(), WordCount.class);
conf.setJobName("wordcount");
conf.setOutputKeyClass(Text.class);
conf.setOutputValueClass(IntWritable.class);
conf.setMapperClass(MapClass.class);
conf.setCombinerClass(Reduce.class);
conf.setReducerClass(Reduce.class);
//设置输入路径
conf.setInputPath(new Path(args[0]));
//设置输出路径
conf.setOutputPath(new Path(args[1]));
//调用 JobClient 的 runJob
JobClient.runJob(conf);
return 0;
}
学员评价