MapReduce案例-wordcount-JobMain代码

public class JobMain extends Configured implements Tool {

	@Override
	public int run(String[] args) throws Exception {
	
		Job job = Job.getInstance(super.getConf(),
		JobMain.class.getSimpleName());
		//打包到集群上面运行时候,必须要添加以下配置,指定程序的main函数
		job.setJarByClass(JobMain.class);
		
		//第一步:读取输入文件解析成key,value对
		job.setInputFormatClass(TextInputFormat.class);
		TextInputFormat.addInputPath(job,new
		Path("hdfs://192.168.52.250:8020/wordcount"));
		
		//第二步:设置我们的mapper类
		job.setMapperClass(WordCountMapper.class);
		//设置我们map阶段完成之后的输出类型
		job.setMapOutputKeyClass(Text.class);
		job.setMapOutputValueClass(LongWritable.class);
		
		//第三步,第四步,第五步,第六步,省略
		
		//第七步:设置我们的reduce类
		job.setReducerClass(WordCountReducer.class);		
		//设置我们reduce阶段完成之后的输出类型
		job.setOutputKeyClass(Text.class);
		job.setOutputValueClass(LongWritable.class);
		
		//第八步:设置输出类以及输出路径
		job.setOutputFormatClass(TextOutputFormat.class);
		TextOutputFormat.setOutputPath(job,new
		Path("hdfs://192.168.52.250:8020/wordcount_out"));
		boolean b = job.waitForCompletion(true);
		return b?0:1;
		
	}
	
	/**
	* 程序main函数的入口类
	* @param args
	* @throws Exception
	*/
	public static void main(String[] args) throws Exception {
		Configuration configuration = new Configuration();
		Tool tool = new JobMain();
		int run = ToolRunner.run(configuration, tool, args);
		System.exit(run);
	}
}
发布了2209 篇原创文章 · 获赞 50 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/Leon_Jinhai_Sun/article/details/104486931