当前位置: 首页 > Linux

Hadoop运行wordcount一号实例

时间:2023-04-06 18:48:56 Linux

引用:这几周事情很多,两周没写博客了。这周终于跑了Hadoop的实例,然后又跑了官方的wordcount实例(统计word在文件中的出现次数)。以下是我成功运行实例的记录。运行的前提是安装配置好hadoop(可参考我之前的博客:hadoop伪分布式安装记录)运行步骤:1.首先准备一个包含words的文件,然后将文件上传到linux服务器。文件内容:helloworldhellohadoopabchadoopaabbhellowordcounttesthdfsmapreduce2.使用hdfs命令创建输入文件目录(hfds命令与linux基本相同,官网可以查看)hadoopfs-mkdir/input/wordcount然后创建输出目录/output存放运行结果为后续hadoop3.然后将文件放入hadoop文件系统hadoopfs-put/home/file1/input/wordcount创建完成后,可以使用ls查看文件是否存在hadoopfs-ls-R/4。然后进入hadoopshare/hadoop/mapreduce,有一个hadoop-mapreduce-examples-3.1.2.jar可以通过hadoopjar查看hadoop-mapreduce-examples-3.1.2.jar这个官方例子可以执行哪些程序如下:可以看到很多内置的应用程序,我们这里就用到wordcount。执行命令hadoopjarhadoop-mapreduce-examples-3.1.2.jar/input/wordcount/output/wordcount最后两个参数是文件的输入路径,也就是我们之前创建HDFS的路径,第二个参数是该文件如果没有输出路径,Hadoop会自己创建。5、然后会先进行map的处理。在reduce的过程中,可以理解为一个分而治之的步骤。Map是在多台机器上处理文件的中间结果,再通过reduce(归约、聚合)对结果进行汇总。而且,先执行map,再执行reduce。6.去输出文件查看结果,在output/wordcount里面会出现三个文件,with部分是输出结果,可以使用hadoopfs-cat输出文件路径查看结果总结:虽然看起来步骤不多,内容也比较简单,但是还是有很多坑。注意点:1.以伪分布式方式搭建的hadoop,hostname一定要设置好,必须和配置文件保持一致。合理,如果太小,会一直卡在runningjob或者map0%。这时候需要在yarn-site中设置内存大小(根据实际服务器内存设置,我设置在2048M之后)3.如果发现卡在某个环节,记得查看日志hadoop安装目录,里面有很多日志类型,包括nodeManager、resourceManager等,如果执行不成功,会有相应的日志,日志中有提示,可以帮助发现问题。