温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

hadoop2.7.1如何手动编译wordcount

发布时间:2021-12-08 11:39:28 来源:亿速云 阅读:141 作者:小新 栏目:云计算

小编给大家分享一下hadoop2.7.1如何手动编译wordcount,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

Hadoop 2.7.1手动编译wordcount

成功搭建了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”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI