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

43 篇文章 0 订阅
29 篇文章 7 订阅

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

(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]#

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

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

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值