源码(包含可执行jar包)下载链接
链接:https://pan.baidu.com/s/1fYr1_LvFXa31XTyg1y1m2g
提取码:3r3q
B站视频操作过程
目录
一、前提准备工作
启动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下载
以文本方式打开,可以看到已经对单词进行了统计并且对其进行降序操作
- 本次文章分享就到这,有什么疑问或有更好的建议可在评论区留言,也可以私信我
- 感谢阅读~