MapReduce编程实例:

MapReduce编程实例(一),详细介绍在集成环境中运行第一个MapReduce程序 WordCount及代码分析

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

代码太简单,不解释,上代码:

  1. package com.t.hadoop;
  2. import java.io.IOException;
  3. import java.util.HashSet;
  4. import java.util.StringTokenizer;
  5. import org.apache.hadoop.conf.Configuration;
  6. import org.apache.hadoop.fs.Path;
  7. import org.apache.hadoop.io.Text;
  8. import org.apache.hadoop.mapreduce.Job;
  9. import org.apache.hadoop.mapreduce.Mapper;
  10. import org.apache.hadoop.mapreduce.Reducer;
  11. import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
  12. import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
  13. import org.apache.hadoop.util.GenericOptionsParser;
  14. /**
  15. * 数据去重
  16. * @author daT dev.tao@gmail.com
  17. *
  18. */
  19. public class Dedup {
  20. public static class MyMapper extends Mapper<Object, Text, Text, Text>{
  21. @Override
  22. protected void map(Object key, Text value, Context context)
  23. throws IOException, InterruptedException {
  24. context.write(value, new Text(""));
  25. }
  26. }
  27. public static class MyReducer extends Reducer<Text, Text, Text, Text>{
  28. @Override
  29. protected void reduce(Text key, Iterable<Text> value,
  30. Context context)
  31. throws IOException, InterruptedException {
  32. context.write(key, new Text(""));
  33. }
  34. }
  35. public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException{
  36. Configuration conf = new Configuration();
  37. String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs();
  38. if(otherArgs.length<2){
  39. System.out.println("parameter errors!");
  40. System.exit(2);
  41. }
  42. Job job = new org.apache.hadoop.mapreduce.Job(conf, "Dedup");
  43. job.setJarByClass(Dedup.class);
  44. job.setMapperClass(MyMapper.class);
  45. job.setCombinerClass(MyReducer.class);
  46. job.setReducerClass(MyReducer.class);
  47. job.setOutputKeyClass(Text.class);
  48. job.setOutputValueClass(Text.class);
  49. FileInputFormat.addInputPath(job, new Path(otherArgs[0]));
  50. FileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));
  51. System.exit(job.waitForCompletion(true)?0:1);
  52. }
  53. }

输出结果
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编程实例3的更多相关文章

  1. MapReduce编程实例6

    前提准备: 1.hadoop安装运行正常.Hadoop安装配置请参考:Ubuntu下 Hadoop 1.2.1 配置安装 2.集成开发环境正常.集成开发环境配置请参考 :Ubuntu 搭建Hadoop ...

  2. MapReduce编程实例5

    前提准备: 1.hadoop安装运行正常.Hadoop安装配置请参考:Ubuntu下 Hadoop 1.2.1 配置安装 2.集成开发环境正常.集成开发环境配置请参考 :Ubuntu 搭建Hadoop ...

  3. MapReduce编程实例4

    MapReduce编程实例: MapReduce编程实例(一),详细介绍在集成环境中运行第一个MapReduce程序 WordCount及代码分析 MapReduce编程实例(二),计算学生平均成绩 ...

  4. MapReduce编程实例2

    MapReduce编程实例: MapReduce编程实例(一),详细介绍在集成环境中运行第一个MapReduce程序 WordCount及代码分析 MapReduce编程实例(二),计算学生平均成绩 ...

  5. 三、MapReduce编程实例

    前文 一.CentOS7 hadoop3.3.1安装(单机分布式.伪分布式.分布式 二.JAVA API实现HDFS MapReduce编程实例 @ 目录 前文 MapReduce编程实例 前言 注意 ...

  6. hadoop2.2编程:使用MapReduce编程实例(转)

    原文链接:http://www.cnblogs.com/xia520pi/archive/2012/06/04/2534533.html 从网上搜到的一篇hadoop的编程实例,对于初学者真是帮助太大 ...

  7. MapReduce编程实例

    MapReduce常见编程实例集锦. WordCount单词统计 数据去重 倒排索引 1. WordCount单词统计 (1) 输入输出 输入数据: file1.csv内容 hellod world ...

  8. hadoop之mapreduce编程实例(系统日志初步清洗过滤处理)

    刚刚开始接触hadoop的时候,总觉得必须要先安装hadoop集群才能开始学习MR编程,其实并不用这样,当然如果你有条件有机器那最好是自己安装配置一个hadoop集群,这样你会更容易理解其工作原理.我 ...

  9. Hadoop--mapreduce编程实例1

    前提准备: 1.hadoop安装运行正常.Hadoop安装配置请参考:Ubuntu下 Hadoop 1.2.1 配置安装 2.集成开发环境正常.集成开发环境配置请参考 :Ubuntu 搭建Hadoop ...

随机推荐

  1. ylbtech-LanguageSamples-Nullable(可以为 null 的类型)

    ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-Nullable(可以为 null 的类型) 1.A,示例(Sample) 返回顶部 “ ...

  2. [python爬虫] Selenium常见元素定位方法和操作的学习介绍(转载)

    转载地址:[python爬虫] Selenium常见元素定位方法和操作的学习介绍 一. 定位元素方法 官网地址:http://selenium-python.readthedocs.org/locat ...

  3. [Python爬虫] 之九:Selenium +phantomjs抓取活动行中会议活动(单线程抓取)

    思路是这样的,给一系列关键字:互联网电视:智能电视:数字:影音:家庭娱乐:节目:视听:版权:数据等.在活动行网站搜索页(http://www.huodongxing.com/search?city=% ...

  4. 关于windows下自带的forfile批量删除文件bat命令

    最近在开发的过程中,为了节省资源,需要用到windows下批量删除文件的批处理命令,也就是bat 主要内容: forfiles /p "E:\pictures" /m * /d - ...

  5. php输出语句echo、print、print_r、printf、sprintf、var_dump比较

    一.echo    echo() 实际上不是一个函数,是php语句,因此您无需对其使用括号.不过,如果您希望向 echo() 传递一个以上的参数,那么使用括号会发生解析错误.而且echo是返回void ...

  6. Autolayout约束动画化-Animating Autolayout Constraints

    原文:Animating Autolayout Constraints 作者:@kharrison 译者:CocoaChina--起个名字好难(CC论坛ID) 首发:CocoaChina 记于二零一五 ...

  7. 反射机制2,Class类的使用

    class是反射源头,不光可以取得对象所在类信息,也可直接通过class类的方法进行对象的实例化操作. 使用关键字new为对象实例化.如果已经实例化好了class对象,就可以通过class类中提供的n ...

  8. 服务器如何开启php的fsockopen函数? 使用发邮箱类

    参考:http://www.daixiaorui.com/read/16.html#viewpl 服务器如何开启php的fsockopen函数?如果你要使用一些邮件的类,那么很多要求支持php的fso ...

  9. java分页功能代码

    import java.util.ArrayList; import java.util.List; /** * * @author cheney * * @date Aug 31, 2012 */ ...

  10. Linux下Tomcat 8080 端口被占用的解决办法

    希望可以帮助你们 一,停止tomcat 并执行#netstat -an|grep 8080   查看发现有许多80端口进程在里面 二,执行# lsof -i :8080|grep -v "P ...