云计算分布式框架 Hadoop

107课时
3K学过
8分

课程评价 (0)

请对课程作出评价:
0/300

学员评价

暂无精选评价
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;
}