重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
小编给大家分享一下hadoop2.7.1如何手动编译wordcount,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
10年积累的网站制作、成都网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有鄂温克免费网站建设让你可以放心的选择与我们合作。
成功搭建了hadoop运行环境并运行了wordcount,实际上是完成了由我们给定输入和输出的路径,运行hadoop提供的示例中编译好的程序实现的,但真正的开发过程中,我们需要自己编写java代码,编译、打包才能在hadoop上运行,因此在这一次,我们利用hadoop提供的WordCount.java源码,在Linux下手工编译、打包,最后调用、运行,为进一步从事hadoop程序开发打下基础。
1 我们需要找到WordCount.java:
hadoop的源码我们可以在http://mirror.esocc.com/apache/hadoop/common/stable/ 下载到,解压,在hadoop-2.7.1-src/hadoop-mapreduce-project/hadoop-mapreduce-examples/src/main/java/org/apache/dadoop/examples下找到,其中还包含许多示例代码,有空可以研究下。
2 作者用户名叫sr,在sr目录下新建wordcount_01文件夹,内部再创建src和classes两个文件夹,分别存放.java和编译后的.class文件。将找到的WordCount.java文件放入src中,打开WordCount.java,我羞愧的将包名改成了package com.sr.hadoop,有点不好意思...
3 “cd ~/wordcount_01” 进入wordcount_01文件夹
4 “javac -classpath /home/sr/usr/hadoop/hadoop-2.7.1/share/hadoop/common/hadoop-common-2.7.1.jar:/home/sr/usr/hadoop/hadoop-2.7.1/share/hadoop/common/lib/commons-cli-1.2.jar:/home/sr/usr/hadoop/hadoop-2.7.1/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.7.1.jar -d ./classes/ ./src/*.java”
这步比较关键,作用是用hadoop安装环境下hadoop-common-2.7.1.jar、commons-cli-1.2.jar、hadoop-mapreduce-client-core-2.7.1.jar三个库文件,编译src中所有的.java文件(我们也可以写成WordCount.java)。-classpath后接着3个绝对路径,是作者电脑上3个库文件的所在位置,绝对路径用:分割;-d后面跟着的是编译后存放路径和源路径。执行后就会发现classes下生成了三级文件目录,里面有编译好的.class文件,而且你会发现,对于.java中的每一个类,都有对应的文件生成。
5 “jar -cvf Srwordcount.jar -C ./classes/ .”将编译好的 class 文件打包成 Jar 包,打包后的Srwordcount会出现在wordcount_01目录中,只有打包后的.class文件才能在hadoop下运行。
6 运行Srwordcount:注意需先cd 到你自己的hadoop环境下,我的是“cd ~/usr/hadoop/hadoop-2.7.1”,请确保hadoop启动,input中放置了需要运行的文本文件,同时没有output文件夹,因为hadoop为防止运行结果发生覆盖,不会向已有的文件夹下写入数据。以上任何一步有问题,请查看我的上一篇博客。
“bin/hadoop jar /home/sr/wordcount_01/Srwordcount.jar com.sr.hadoop.WordCount /input /output”即将input中的内容用打包好的Srwordcount.jar运行,放入output中。请注意com.sr.hadoop.WordCount是调用三层目录下的WordCount.class,在第2步中我改动了包名。
看完了这篇文章,相信你对“hadoop2.7.1如何手动编译wordcount”有了一定的了解,如果想了解更多相关知识,欢迎关注创新互联行业资讯频道,感谢各位的阅读!