MapReduce编程Demo-wordcount优化,天气分析(weather code)

本文介绍了如何使用MapReduce对天气数据进行编程,通过Map、Shuffle、Reduce处理,统计出每年每月的最高温度前三天。文章详细讲解了Combiner的作用,自定义分区策略以及如何优化Reduce方法,展示了如何在大数据场景下对温度数据进行高效分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

延续上一篇博文MapReduce学习笔记-模型介绍,工作机制,单词计数(wordCount),我简要叙述了mapreduce的一些基本理论知识和一个单词计数的入门小样例。在mapreduce编程中,基本的编程思路是继承Hadoop Jar包中的类重写map方法和reduce方法,对代码进行优化,我们在此基础上加入自行定义的combiner方法 partition方法等。

上一篇博文中的单词计数demo我们只写了map方法和reduce方法,这里考虑在代码中添加Combiner功能(Combiner放在Map和Reducer中间,可用于减少数据传输量)。

public static void main(String[] args) throws Exception {
		//main()函数首先进行Hadoop的相关配置类
		Configuration conf = new Configuration();	//创建COnfiguration
		
		//因为HDFS默认情况下是输出文件路径事先不存在 所以 我们在这里新增一个对 已存在输出文件清理的功能
		//除了在代码中实现,我们还可以在hdfs 命令行手动删除(比较low的方法)
		Path outputPath=new Path(args[1]);
		FileSystem file = FileSystem.get(new URI(HDFS_PATH),conf);		//这里需要加上hdfs的URI地址
		if(file.exists(outputPath)){
			//如果存在,则删除
			file.delete(outputPath,true);
			System.out.println("output path exists,but it's deleted...");
		}
		
		Job job = new Job(conf);					//创建job
		job.setJarByClass(WordCountConbiner.class);			//设置job的处理类
		job.setJobName("wordcount");				//job名称
		job.setOutputKeyClass(Text.class);
		job.setOutputValueClass(IntWritable.class);
		job.setMapperClass(WordCountMap.class);		//配置Map方法的类
		job.setReducerClass(WordCountReduce.class);	//配置Reduce方法的类
		job.setInputFormatClass(TextInputFormat.class);
		job.setOutputFormatClass(TextOutputFormat.class);
		
		//通过job设置Combiner处理类,内在逻辑和reduc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值