Hadoop实战——MapReduce对英文单词文本进行统计和排序(超详细教学,算法分析)

源码(包含可执行jar包)下载链接

链接:https://pan.baidu.com/s/1fYr1_LvFXa31XTyg1y1m2g
提取码:3r3q

B站视频操作过程

Hadoop实战——对单词文本进行统计和排序_哔哩哔哩_bilibili

目录

一、前提准备工作

启动hadoop集群

 windows可以访问

二、整体流程

三、核心代码讲解

四、生成jar包上传

五、运行程序


一、前提准备工作

启动hadoop集群

必须已经成功搭建好了hadoop集群,打开主节点和子节点全部虚拟机,启动hadoop

 windows可以访问

关闭主节点虚拟机的防火墙,在windows的hosts文件添加配置信息

二、整体流程

整体流程如下

程序内部执行过程如下

 

三、核心代码讲解

Mapper类

将单词文本进行切割,切割成一个个的单词,写入到上下文中

(1)按行读取,通过split函数进行切割,将切割出来的一个个单词放到数组ars中

(2)遍历数组ars,将存在的单词数据存储到word中,然后将word写入到context上下文(使Redcue程序能访问到数据)

Reduce类(部分代码展示)

(1)将每个单词统计次数结果进行求和合并,写入到map集合里

(2)调用Utils工具类的sortValue方法对map集合进行排序

(3)遍历排序好的map集合,依次写入到context上下文中

 Utils类(对map进行排序)

 (1)继承Comparable类,复写compare方法

(2)通过map<k,v>集合的value(也就是单词次数)进行排序

(3)将排序好的map返回

新建一个测试类测试一下,可以看到排序OK

四、生成jar包上传

先点击右边的 clean 清理一下,然后点击 package 生成打包jar包

运行完毕,会在左边生成一个 target 的文件夹,展开可以看到生成jar包程序

选中jar包,右键选择复制,粘贴到桌面

 打开 winscp 工具,连接主节点虚拟机,将刚刚粘贴在桌面的jar包拷贝到虚拟机里(路径自己选,知道在哪就行)

打开虚拟机,跳转到刚刚复制的路径目录下,可以看到已经拷贝进来了

 

五、运行程序

(1)创建单词文本并上传

在下面可以看到有一个words.txt文本,这是我之前创好的

more指令查看文本,可以看到文本里有很多的英文单词

 (2)上传到HDFS文件系统

首先创建一个文件夹存放统计前的单词文本(words.txt)

 将单词文本(words.txt)上传到刚刚创建的文件夹下

 执行jar包程序,hadoop   jar   jar包名称   包名称+主类名   输入路径   输出路径

 包名称+主类名如下

回车执行命令,等待提示运行完毕,运行结束后

打开HDFS文件系统的output目录下,就能看到输出结果,打开文件点击Download下载

以文本方式打开,可以看到已经对单词进行了统计并且对其进行降序操作


- 本次文章分享就到这,有什么疑问或有更好的建议可在评论区留言,也可以私信我
- 感谢阅读~


猜你喜欢

转载自blog.csdn.net/weixin_47971206/article/details/121252094