MapReduce示例——WordCount(统计单词)

过程分析

统计单词,把数据中的单词分别统计出出现的次数

过程图(图片源自网络):

实现Mapper、Reducer、Driver

WordCountMapper :

public class WordCountMapper extends Mapper<LongWritable,Text,Text,IntWritable> {private Text k = new Text();private IntWritable v = new IntWritable(1);/***  重写map方法* @param key 行号* @param value 行数据* @param context* @throws IOException* @throws InterruptedException*/@Overrideprotected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {// 获取一行的数据String valueString = value.toString();// 分割一行的数据String[] strings = valueString.split(" ");// 输出K-V对for (String string : strings) {k.set(string);context.write(k,v);}}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

WordCountReduce :

public class WordCountReduce extends Reducer<Text,IntWritable,Text,IntWritable> {private IntWritable v = new IntWritable(0);/***  reduce合并过程* @param key key值* @param values 同一个key的value值得列表* @param context* @throws IOException* @throws InterruptedException*/@Overrideprotected void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {// 统计数字int count = 0;// 汇总数字for (IntWritable value : values) {count += value.get();}// 赋值v.set(count);// 输出context.write(key,v);}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

WordCountDriver

public class WordCountDriver {public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {// 获取job对象System.setProperty("hadoop.home.dir", "E:\\hadoop-2.7.1");Configuration configuration = new Configuration();FileSystem fs = FileSystem.get(configuration);//configuration.set("mapreduce.framework.name","local");//configuration.set("fs.defaultFS","file:///");Job job = Job.getInstance(configuration);// 设置加载类job.setJarByClass(WordCountDriver.class);// 设置map和reduce类job.setMapperClass(WordCountMapper.class);job.setReducerClass(WordCountReduce.class);// 设置mapper输出类型job.setMapOutputKeyClass(Text.class);job.setMapOutputValueClass(IntWritable.class);// 设置最终输出类型job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);// 设置输入文件和输出文件FileInputFormat.setInputPaths(job,new Path("E:\\hdfs\\input\\word.txt"));Path outPath = new Path("E:\\hdfs\\output");if (fs.exists(outPath)) {fs.delete(outPath, true);}FileOutputFormat.setOutputPath(job, new Path("E:\\hdfs\\output"));boolean waitForCompletion = job.waitForCompletion(true);System.out.println(waitForCompletion);System.exit(waitForCompletion?0:1);}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.xing</groupId><artifactId>MapReduce</artifactId><version>1.0-SNAPSHOT</version><dependencies><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>2.7.1</version></dependency></dependencies></project>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

我用的本地windows开发环境,如果不知道怎么搭建本地开发环境可以看我这篇
【Spark】Windows运行本地spark程序——JAVA版本
搭建过程都是一样的。

结果:

MapReduce示例——WordCount(统计单词)相关推荐

  1. Hadoop入门实例——WordCount统计单词

    首先要说明的是运行Hadoop需要jdk1.6或以上版本,如果你还没有搭建好Hadoop集群,请参考我的另一篇文章: Linux环境搭建Hadoop伪分布模式 马上进入正题. 1.启动Hadoop集群 ...

  2. Hadoop系列二:Hadoop单节点伪分布部署并执行mapreduce示例wordcount

    HDFS在集群上实现分布式文件系统,MapReduce在集群上实现了分布式计算和任务处理.HDFS在MapReduce任务处理过程中提供了文件操作和存储等支持,MapReduce在HDFS的基础上实现 ...

  3. Hadoop之图解MapReduce与WordCount示例分析

    Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,MapReduce则为海量的数据提供了计算. HDFS是Google File System(GFS) ...

  4. Wordcount on YARN 一个MapReduce示例

    Hadoop YARN版本:2.2.0 关于hadoop yarn的环境搭建可以参考这篇博文:Hadoop 2.0安装以及不停集群加datanode hadoop hdfs yarn伪分布式运行,有如 ...

  5. MapReduce初体验——统计指定文本文件中每一个单词出现的总次数

    相信小伙伴们看了小菌上一篇博客<什么是MapReduce(入门篇)>后,对MapReduce的概念有了更深的认知!本篇博客,小菌为大家带来的则是MapReduce的实战--统计指定文本文件 ...

  6. MapReduce之WordCount字数统计

    第一次WordCount小游戏 在idea客户端上面进行WordCount统计 1:创建mapper类继承mapper(选hadoop类型) public class wordcountMapper ...

  7. 使用Eclipse开发工具运行MapReduce统计单词出现次数

    使用Eclipse开发工具运行MapRuce统计单词出现次数 1.##我在这里将原先准备好的10000个单词的英语文章通过U盘移动到了Ubuntu系统中,也可以通过其它的方式,比如FTP传输或者将Ub ...

  8. 单机版 hadoop 云平台(伪分布式)搭建 统计单词

    1.首先需要配置java环境 CentOS安装java jdk教程 2.上传hadoop到/usr/local目录 并解压 cd /usr/local ls linux上传下载文件教程 3.配置had ...

  9. 第一个MapReduce程序-------WordCount

    本关任务 词频统计是最能体现MapReduce思想的程序,结构简单,上手容易. 词频统计的大致功能是:统计单个或者多个文本文件中每个单词出现的次数,并将每个单词及其出现频率按照<k,v>键 ...

最新文章

  1. SAP MM ME1P查询采购订购订单价格历史
  2. Android混淆解析
  3. 全球及中国生物质发电行业项目可行性及十四五运营前景研究报告2022-2027年
  4. 【收藏】Harbor私有仓库中如何彻底删除镜像释放存储空间:vmware/registry:2.6.2-photon进行垃圾回收
  5. c++ string 拼接_C++日志(二十五)字符数组、字符数组指针和string类
  6. java 获得站点地址_JavaWeb项目里面的路径获取方法总结
  7. 5G 消息绝地求生:盘活短信 VS 击垮微信?
  8. 网站建设-部署与发布
  9. Python操作数据库完成接口测试
  10. op手机突然显示无服务器,op手机 云服务器
  11. JavaSE复习_6 枚举类
  12. CF 61E 树状数组+离散化 求逆序数加强版 三个数逆序
  13. 孔浩javacript基础笔记一
  14. [SQL优化工具]Quest.Central.For.Databases——SQL Tuning for SQL Server
  15. 2021年5月国产数据库大事记-墨天轮
  16. 西方占星术中的人体十二宫
  17. java 爬虫 微博_最新新浪微博爬虫程序Java版 2015
  18. 亚夏汽车首发申请通过 成第2家IPO经销商_135
  19. 三十.什么是vm和vc?
  20. C# 怎么把集合转换成数据库添加语句,把类转换成sql语句

热门文章

  1. python哨兵循环_Python:deadloop之非模态交互界面(模态循环)(哨兵循环)
  2. linux resin 自动启动不了,Resin 安装-配置-自启动-Linux
  3. matlab路面,赛道道路路况分析问题 matlab高手进下
  4. vue进行判断使用class_vue如何判断dom的class
  5. 113. Leetcode 674. 最长连续递增序列 (动态规划-子序列问题)
  6. python函数整理
  7. Python应用实战案例-Pythongeopandas包详解(附大量案例及代码)
  8. tableau实战系列(三十九)-Tableau可视化之多种地图绘制汇总
  9. MATLAB从入门到精通-matlab中符号推导应用及相关技巧
  10. 运营类产品:用户行为的影响因子是什么?