MapReduce编程实例(三)
来源:互联网 发布:淘宝卖家开店流程2016 编辑:程序博客网 时间:2024/06/07 11:51
前提准备:
1.hadoop安装运行正常。Hadoop安装配置请参考:Ubuntu下 Hadoop 1.2.1 配置安装
2.集成开发环境正常。集成开发环境配置请参考 :Ubuntu 搭建Hadoop源码阅读环境
MapReduce编程实例:
MapReduce编程实例(一),详细介绍在集成环境中运行第一个MapReduce程序 WordCount及代码分析
MapReduce编程实例(二),计算学生平均成绩
MapReduce编程实例(三),数据去重
MapReduce编程实例(四),排序
MapReduce编程实例(五),MapReduce实现单表关联
MapReduce编程实例(六),MapReduce实现多表关联
输入:
2013-11-01 aa
2013-11-02 bb
2013-11-03 cc
2013-11-04 aa
2013-11-05 dd
2013-11-06 dd
2013-11-07 aa
2013-11-09 cc
2013-11-10 ee
2013-11-01 bb
2013-11-02 33
2013-11-03 cc
2013-11-04 bb
2013-11-05 23
2013-11-06 dd
2013-11-07 99
2013-11-09 99
2013-11-10 ee
.....
.....
.....
数据重复,map中每一行做为一个key,value值任意,经过shuffle之后输入到reduce中利用key的唯一性直接输出key
代码太简单,不解释,上代码:
package com.t.hadoop;import java.io.IOException;import java.util.HashSet;import java.util.StringTokenizer;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Job;import org.apache.hadoop.mapreduce.Mapper;import org.apache.hadoop.mapreduce.Reducer;import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;import org.apache.hadoop.util.GenericOptionsParser;/** * 数据去重 * @author daT dev.tao@gmail.com * */public class Dedup {public static class MyMapper extends Mapper<Object, Text, Text, Text>{@Overrideprotected void map(Object key, Text value, Context context)throws IOException, InterruptedException {context.write(value, new Text(""));}}public static class MyReducer extends Reducer<Text, Text, Text, Text>{@Overrideprotected void reduce(Text key, Iterable<Text> value,Context context)throws IOException, InterruptedException {context.write(key, new Text(""));}}public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException{Configuration conf = new Configuration();String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs();if(otherArgs.length<2){System.out.println("parameter errors!");System.exit(2);}Job job = new org.apache.hadoop.mapreduce.Job(conf, "Dedup");job.setJarByClass(Dedup.class);job.setMapperClass(MyMapper.class);job.setCombinerClass(MyReducer.class);job.setReducerClass(MyReducer.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(Text.class);FileInputFormat.addInputPath(job, new Path(otherArgs[0]));FileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));System.exit(job.waitForCompletion(true)?0:1);}}
2013-11-01 aa
2013-11-01 bb
2013-11-02 33
2013-11-02 bb
2013-11-03 cc
2013-11-03 cc
2013-11-04 98
2013-11-04 aa
2013-11-04 bb
2013-11-05 23
2013-11-05 93
2013-11-05 dd
2013-11-06 99
2013-11-06 dd
2013-11-07 92
2013-11-07 99
2013-11-07 aa
2013-11-09 99
2013-11-09 aa
2013-11-09 cc
2013-11-10 ee
- MapReduce编程实例(三)
- MapReduce编程实例(一)
- MapReduce编程实例(二)
- MapReduce编程实例(四)
- MapReduce编程实例(五)
- MapReduce编程实例(六)
- MapReduce编程实例(一)-求平均数
- MapReduce编程实例(一)-求平均数
- MapReduce编程实例:连接(Join)
- MapReduce编程实例
- mapreduce python编程实例
- MapReduce编程实例
- MapReduce WordCount编程实例
- MapReduce编程(三) 排序
- octopy的MapReduce编程实例
- MapReduce编程实例之WordCount
- MapReduce编程实例:二次排序
- Mapreduce编程三 自定义outputformat
- 直接拿来用!最火的Android开源项目(一)
- 分解大量switch-case分支的两种方法
- 测试机器大小端
- PB数据窗口大量数据更新速度慢的问题
- LINUX 环境变量
- MapReduce编程实例(三)
- Android开发之资源文件存储
- No Java compiler available异常
- table铺满全屏
- 正则表达式校验及实例
- Java程序基本优化
- C/C++通过WMI和系统API函数获取获取系统硬件配置信息 .
- 写给Java开发者的10分钟Perl指南
- APK反编译(备忘)