提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

MapReduce单词统计

  • 一、搭建环境
  • 二、编写WordCount程序
    • 1.在IDEA中引入所需的jar包,IDEA支持文件夹方式引入
    • 2.代码编写
    • 3.代码打包
    • 4.程序调试
  • 总结

一、搭建环境

window下安装jdk和idea
VM安装Linux
配置JDK:JDK是Java运行环境,基于Java编写的应用程序都需要Java运行环境,显然Hadoop是基于Java开发的,所以也需要配置JDK环境。
上传并解压jdk压缩包至Linux服务器
配置jdk全局环境变量
安装Hadoop:上传并解压jdk压缩包至Linux服务器;配置Hadoop全局环境变量
伪分布式配置:配置核心文件hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml

二、编写WordCount程序

1.在IDEA中引入所需的jar包,IDEA支持文件夹方式引入

2.代码编写

1.编写Mapper函数
2.编写Reducer函数
3.编写Main函数主入口

Mapper代码如下:

import java.io.IOException;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;public class WordCountMapper extends Mapper<LongWritable, Text, Text, LongWritable> {@Overrideprotected void map(LongWritable key, Text value, Context context)throws IOException, InterruptedException {/** key: 输入的key* value: 数据   I love Beijing* context: Map上下文*/String data= value.toString();//分词String[] words = data.split(" ");//输出每个单词for(String w:words){context.write(new Text(w), new LongWritable(1));}}}

Main函数主入口如下:

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;public class WordCountMain {public static void main(String[] args) throws Exception {//创建一个job = map + reduceConfiguration conf = new Configuration();//创建一个JobJob job = Job.getInstance(conf);//指定任务的入口job.setJarByClass(WordCountMain.class);//指定job的mapperjob.setMapperClass(WordCountMapper.class);job.setMapOutputKeyClass(Text.class);job.setMapOutputValueClass(LongWritable.class);//指定job的reducerjob.setReducerClass(WordCountReducer.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(LongWritable.class);//指定任务的输入和输出FileInputFormat.setInputPaths(job, new Path(args[0]));FileOutputFormat.setOutputPath(job, new Path(args[1]));       //提交任务job.waitForCompletion(true);}}<font color=#999AAA ><hr style=" border:solid; width:100px; height:1px;" color=#000000 size=1"><font color=#999AAA >Reducer代码如下:```c
import java.io.IOException;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;public class WordCountReducer extends Reducer<Text, LongWritable, Text, LongWritable>{@Overrideprotected void reduce(Text k3, Iterable<LongWritable> v3,Context context) throws IOException, InterruptedException {//v3: 是一个集合,每个元素就是v2long total = 0;for(LongWritable l:v3){total = total + l.get();}//输出context.write(k3, new LongWritable(total));}}

3.代码打包


把生成WordCount的Java程序传上去伪分布式环境运行

4.程序调试

创建需要统计单词字数的文件,创建一个文本文件
编辑文件,将数据来源的文章添加至文件
把创建的文件上传到HDFS中去
进入Hadoop的jar包所在目录,然后执行单词统计指令
执行指令统计单词次数
查看统计输出后的结果
可以使用在虚拟机使用命令行来看
可以在HDFS的Web管理界面看




总结

单词计数是最简单也是最能体现 MapReduce 思想的程序之一,可以称为 MapReduce 版“Hello World”。单词计数的主要功能是统计一系列文本文件中每个单词出现的次数。

MapReduce之单词统计相关推荐

  1. Hadoop单词统计实验

    Hadoop单词统计实验 一.搭建思路 1. 使用前期搭建好的伪分布式hadoop系统(单节点部署方案)作为Hadoop的基础环境平台,如果对前期Hadoop基础平台搭建不熟悉可以关注CSDN的博客, ...

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

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

  3. mapreduce程序本地运行,单词统计案例

    mapreduce程序本地运行单词统计案例,输入输出数据放在本地 集群模式运行:https://blog.csdn.net/weixin_43614067/article/details/108400 ...

  4. hadoop基础教程(二) MapReduce 单词统计

    1.这是hadoop基础系列教程,适合入门者学习. 2.MapReduce是一种分布式计算模型,解决海量数据问题,由两个阶段组成,map()和reduce().本文不讲解原理,下面实际操作利用MapR ...

  5. 运行Hadoop自带的wordcount单词统计程序

    1.使用示例程序实现单词统计 (1)wordcount程序 wordcount程序在hadoop的share目录下,如下: 1 2 3 4 5 6 7 8 9 [root@leaf mapreduce ...

  6. 大数据阶段划分及案例单词统计

    大数据阶段的重要课程划分 离线分析 : hadoop生态圈 HDFS, MapReduce(概念偏多), hive(底层是MapReduce), 离线业务分析80%都是使用hive实时分析 : spa ...

  7. Hadoop单词统计

    1. 本地创建文本文件 [root@s166 fantj]# mkdir input [root@s166 fantj]# cd input/ [root@s166 input]# echo &quo ...

  8. 用spark实现单词统计

    1.在本地运行 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext}/*** 用spark ...

  9. hadoop集群-单词统计

    1.在用Hadoop进行单词统计前,要做好Hadoop的集群部署 输入上述命令,就能在浏览器中分别访问namenode:50070(namenode指的是你主节点的名字,这里我的主节点名字是namen ...

最新文章

  1. web大屏展示用到的组件_基于 HTML5 的工业组态高炉炼铁 3D 大屏可视化
  2. 基于存储过程的可扩展性数据访问框架
  3. spring整合springmvc和mybatis
  4. php laravel 框架 APP_KEY 的作用
  5. 51C语言编译后执行到一半,“C语言” 读书札记之[再续编译执行]
  6. opensource项目_Opensource.com 3月预览
  7. window难以实现的linux,工欲善其事必先利其器--几步实现window与linux之间的文件共享...
  8. 前端知识 | 简析ES6
  9. 深度学习2.0-22.Keras高层接口之自定义层或网络
  10. linux 分区100g整数,[转载]硬盘分区 整G 整数 法(从1g到200g最精确的整数分区)(转)...
  11. 2020年全球石英晶振行业现状、竞争格局及未来发展趋势分析,5G推动万物互联,带动行业需求「图」
  12. goodnote笔记同步 Android,goodnotes笔记
  13. 百度网盘mac损害计算机,百度网盘Mac版和Mac同步盘有哪些区别?百度网盘Mac版常见问题解答...
  14. IDEA springboot 项目启动报错 Shorten the command line via JAR manifest or via a classpath file and rerun
  15. 菜刀,蚁剑,冰蝎,哥斯拉的流量特征
  16. GPA计算(5.0分制)
  17. Liferay 6.2 改造系列之三:删除Docbar中的添加内容功能
  18. 宝塔如何使用一个IP地址建立多个站点
  19. 六则糟糕代码的优化方案分享
  20. AI助力黑客,下一代防火墙将力不从心

热门文章

  1. 智能电视是否是一台计算机,电脑可以投屏到智能电视上吗?当贝市场为你解答!...
  2. c语言笛卡尔坐标系两点坐标,计算笛卡尔坐标系或极坐标系中2个位置之间的夹角...
  3. 微信内置浏览器清除 cookie
  4. 用inno setup做的安装程序,安装过程中被360报如下风险
  5. 电脑硬件知识入门之硬盘篇
  6. .NET的数据库编程技术
  7. python 文件上传之---断点续传
  8. 实现AI角色的自主移动-避开障碍物Obstacle行为
  9. 计算机存储容量单位的倍数关系,存储器容量单位有哪些,它们之间的关系是什么...
  10. 【数论】君と彼女の恋