分享一个用虚拟机完成简单的mapreduce方法实例

您所在的位置:网站首页 虚拟机中怎么运行程序的 分享一个用虚拟机完成简单的mapreduce方法实例

分享一个用虚拟机完成简单的mapreduce方法实例

2024-05-29 20:50| 来源: 网络整理| 查看: 265

我也是刚入行大数据不久的萌新,我分享的陋闻可能只能打扰比我更年轻的新人,打扰啦。

(1)首先上一个mapreduce方法的流程图。

这是一个统计文本单词出现次数的方法,非常符合hadoop生态圈分而治之的智慧思路,上图中的 splitting和mapping阶段可以在不同的主机或者虚拟机上运行,如果是分布式的话,运行的速度会非常快。reducing阶段是将相同的单词统计成一个模块,最后合起来。稍后将介绍在虚拟机上的实现方法。

(2)在虚拟机上创建.txt文件

如果没有现成的数据集的话,就用我上图中写的,我们把文本写到一个.txt文件中。确保虚拟机中配置好了hadoop环境变量,hdfs和yarn各种配置文件都编辑好了,到时候运行的时候才不会报错。

[root@master ~]# cd /opt/rh/hadoop-3.2.2/ [root@master hadoop-3.2.2]# ls bin etc hdfs include lib libexec LICENSE.txt logs NOTICE.txt README.txt sbin share tmp wcinput wcoutput [root@master hadoop-3.2.2]# mkdir wordcountfile [root@master hadoop-3.2.2]# ls bin etc hdfs include lib libexec LICENSE.txt logs NOTICE.txt README.txt sbin share tmp wcinput wcoutput wordcountfile [root@master hadoop-3.2.2]# cd wordcountfile [root@master wordcountfile]# vi wordfile.txt [root@master wordcountfile]# cat wordfile.txt i like python python like spark Spark link hadoop [root@master wordcountfile]#

这样我们就在hadoop主文件目录下创建好了,wordfile.txt文件。接下来我们敲入命令,运行mapreduce方法。

(3)打开虚拟机集群,start-all.sh,调用hadoop下的mapreduce方法中的wordcount jar包,指定结果文件保存路径,统计每个单词出现的次数。

[root@master hadoop-3.2.2]# bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.2.jar wordcount  file:///opt/rh/hadoop-3.2.2/wordcountfile/wordfile.txt file:///opt/rh/hadoop-3.2.2/wordoutputfile

需要关闭虚拟机防火墙,systemctl stop firewalld.service,防火墙的存在会影响集群内部主机的通信。如果没有指定输出输入文件完整的路径,到时候就会报没有将文件上传到hdfs的错误。点击运行。

2021-04-03 21:54:23,391 INFO mapreduce.Job:  map 0% reduce 0% 2021-04-03 21:54:29,850 INFO mapreduce.Job:  map 100% reduce 0% 2021-04-03 21:54:38,973 INFO mapreduce.Job:  map 100% reduce 100% 2021-04-03 21:54:40,002 INFO mapreduce.Job: Job job_1617457620069_0002 completed successfully 2021-04-03 21:54:40,169 INFO mapreduce.Job: Counters: 54

看到这个说明wordcount程序运行成功。我们看看结果文件。

drwxr-xr-x. 2 root root 26 Apr 3 21:33 wordcountfile drwxr-xr-x. 2 root root 88 Apr 3 21:58 wordoutputfile [root@master hadoop-3.2.2]# cd wordoutputfile/ [root@master wordoutputfile]# ls part-r-00000 _SUCCESS

 我们打开part-r-00000文件,查看我们的结果。

[root@master wordoutputfile]# cat part-r-00000 Spark 1 hadoop 1 i 1 like 2 link 1 python 2 spark 1 [root@master wordoutputfile]#

和上图的运行结果是一样的。执行的时候可能会报错。

但是不要放弃,遇到什么问题就上网去搜,也可以问我嘛。虽然我也不咋会。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3