linux运行wordcount,hadoop运行第一个实例wordcount

引语:

这几周事情比较多,两周没写博客了,这周总算把hadoop的实例给运行起来,然后跑了一下官方的wordcount例子(用于统计文件中单词出现的次数)。

接下来是我成功运行实例的记录。运行的前提是安装配置好hadoop(可以参考我上一篇博客:hadoop伪分布式安装记录)

运行步骤:

1.先准备一个包含单词的文件,然后将这个文件上传到linux服务器上。

文件内容:

hello world hello hadoop

abc hadoop aabb hello word

count test hdfs mapreduce

2.使用hdfs的命令创建好输入文件的目录(hfds的命令基本上和linux一样,可以去官网上查看下) hadoop fs -mkdir /input/wordcount

然后在创建一个输出目录/output为后续hadoop存放运行结果

3.然后将文件放入到hadoop的文件系统中hadoop fs -put /home/file1 /input/wordcount

创建完可以使用ls检查一下是否文件存在 hadoop fs -ls -R /

5fdf9390197e597dbc7d22264efec6ae.png

4.再进入到hadoop的share/hadoop/mapreduce中,有一个hadoop-mapreduce-examples-3.1.2.jar

通过hadoop jar hadoop-mapreduce-examples-3.1.2.jar 可以查看到这个官方给的例子里面有哪些程序可以执行

如下:

013aa7ede7f3a5eee723345b204e9230.png

可以看到很多自带的使用程序,我们这里就使用wordcount。

执行命令

hadop jar hadoop-mapreduce-examples-3.1.2.jar /input/wordcount /output/wordcount

最后的两个参数一个是文件的输入路径,就是我们之前创建再hdfs的路径,第二个参数是文件的输出路径,

如果没有的话hadoop会自己创建。

5.然后首先会进行map的过程,在使reduce的过程,这里可以理解为分而治之的步骤,map是多台机器上分别处理文件的中间结果,然后通过reduce(减少,聚合)把结果给汇总。

而且是先map执行完再回执行reduce。

487d1019e8497cc268970ceb6ddcc8dc.png

6.去输出文件中查看结果,output/wordcount里面会有三个文件,有一个带part的就是输出结果,可以使用hadoop fs -cat 输出文件的路径查看结果

f0252046fe55ccbae74e798e9c537533.png

总结:

虽然看起来步骤不是很多,内容也比较简单,但是坑还是挺多的。要注意的点:

1.伪分布式搭建的hadoop,hostname这个要设置好,要和配置文件中一致,实在不行就直接指定127.0.0.1(反正我是这样解决了)

2.yarn的内存配置要合理,太小了发现会一直卡在runing job这个环节或者一直卡在map 0%这里,此时要去yarn-site中设置好内存的大小(根据实际服务器的内存设置,我设置的是2048M后就可以了)

3.如果发现卡在某个环节,记得去查看hadoop安装目录下的logs,里面有很多日志类型,包括nodeManageer,resourceManager等,执行不动了,日志里面会有相应的日志和提示可以帮助发现问题。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值