这几周事情比较多,两周没写博客了,这周总算把hadoop的实例给运行起来,而后跑了一下官方的wordcount例子(用于统计文件中单词出现的次数)。
接下来是我成功运行实例的记录。运行的前提是安装配置好hadoop(能够参考我上一篇博客:hadoop伪分布式安装记录)node
1.先准备一个包含单词的文件,而后将这个文件上传到linux服务器上。
文件内容: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存放运行结果 segmentfault
3.而后将文件放入到hadoop的文件系统中hadoop fs -put /home/file1 /input/wordcount
建立完能够使用ls检查一下是否文件存在 hadoop fs -ls -R /服务器
4.再进入到hadoop的share/hadoop/mapreduce中,有一个hadoop-mapreduce-examples-3.1.2.jar
经过hadoop jar hadoop-mapreduce-examples-3.1.2.jar 能够查看到这个官方给的例子里面有哪些程序能够执行
以下:
能够看到不少自带的使用程序,咱们这里就使用wordcount。
执行命令分布式
hadop jar hadoop-mapreduce-examples-3.1.2.jar /input/wordcount /output/wordcount
最后的两个参数一个是文件的输入路径,就是咱们以前建立再hdfs的路径,第二个参数是文件的输出路径,
若是没有的话hadoop会本身建立。
5.而后首先会进行map的过程,在使reduce的过程,这里能够理解为分而治之的步骤,map是多台机器上分别处理文件的中间结果,而后经过reduce(减小,聚合)把结果给汇总。
并且是先map执行完再回执行reduce。
6.去输出文件中查看结果,output/wordcount里面会有三个文件,有一个带part的就是输出结果,能够使用hadoop fs -cat 输出文件的路径查看结果oop
虽然看起来步骤不是不少,内容也比较简单,可是坑仍是挺多的。要注意的点:
1.伪分布式搭建的hadoop,hostname这个要设置好,要和配置文件中一致,实在不行就直接指定127.0.0.1(反正我是这样解决了)
2.yarn的内存配置要合理,过小了发现会一直卡在runing job这个环节或者一直卡在map 0%这里,此时要去yarn-site中设置好内存的大小(根据实际服务器的内存设置,我设置的是2048M后就能够了)
3.若是发现卡在某个环节,记得去查看hadoop安装目录下的logs,里面有不少日志类型,包括nodeManageer,resourceManager等,执行不动了,日志里面会有相应的日志和提示能够帮助发现问题。spa