溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

hadoop2.7.1如何手動(dòng)編譯wordcount

發(fā)布時(shí)間:2021-12-08 11:39:28 來源:億速云 閱讀:149 作者:小新 欄目:云計(jì)算

小編給大家分享一下hadoop2.7.1如何手動(dòng)編譯wordcount,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

Hadoop 2.7.1手動(dòng)編譯wordcount

成功搭建了hadoop運(yùn)行環(huán)境并運(yùn)行了wordcount,實(shí)際上是完成了由我們給定輸入和輸出的路徑,運(yùn)行hadoop提供的示例中編譯好的程序?qū)崿F(xiàn)的,但真正的開發(fā)過程中,我們需要自己編寫java代碼,編譯、打包才能在hadoop上運(yùn)行,因此在這一次,我們利用hadoop提供的WordCount.java源碼,在Linux下手工編譯、打包,最后調(diào)用、運(yùn)行,為進(jìn)一步從事hadoop程序開發(fā)打下基礎(chǔ)。

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文件夾,內(nèi)部再創(chuàng)建src和classes兩個(gè)文件夾,分別存放.java和編譯后的.class文件。將找到的WordCount.java文件放入src中,打開WordCount.java,我羞愧的將包名改成了package com.sr.hadoop,有點(diǎn)不好意思...

3 “cd ~/wordcount_01”    進(jìn)入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”

這步比較關(guān)鍵,作用是用hadoop安裝環(huán)境下hadoop-common-2.7.1.jar、commons-cli-1.2.jar、hadoop-mapreduce-client-core-2.7.1.jar三個(gè)庫文件,編譯src中所有的.java文件(我們也可以寫成WordCount.java)。-classpath后接著3個(gè)絕對(duì)路徑,是作者電腦上3個(gè)庫文件的所在位置,絕對(duì)路徑用:分割;-d后面跟著的是編譯后存放路徑和源路徑。執(zhí)行后就會(huì)發(fā)現(xiàn)classes下生成了三級(jí)文件目錄,里面有編譯好的.class文件,而且你會(huì)發(fā)現(xiàn),對(duì)于.java中的每一個(gè)類,都有對(duì)應(yīng)的文件生成。

5 “jar -cvf Srwordcount.jar -C ./classes/ .”將編譯好的 class 文件打包成 Jar 包,打包后的Srwordcount會(huì)出現(xiàn)在wordcount_01目錄中,只有打包后的.class文件才能在hadoop下運(yùn)行。

6 運(yùn)行Srwordcount:注意需先cd 到你自己的hadoop環(huán)境下,我的是“cd ~/usr/hadoop/hadoop-2.7.1”,請(qǐng)確保hadoop啟動(dòng),input中放置了需要運(yùn)行的文本文件,同時(shí)沒有output文件夾,因?yàn)閔adoop為防止運(yùn)行結(jié)果發(fā)生覆蓋,不會(huì)向已有的文件夾下寫入數(shù)據(jù)。以上任何一步有問題,請(qǐng)查看我的上一篇博客。

“bin/hadoop jar /home/sr/wordcount_01/Srwordcount.jar com.sr.hadoop.WordCount /input /output”即將input中的內(nèi)容用打包好的Srwordcount.jar運(yùn)行,放入output中。請(qǐng)注意com.sr.hadoop.WordCount是調(diào)用三層目錄下的WordCount.class,在第2步中我改動(dòng)了包名。

看完了這篇文章,相信你對(duì)“hadoop2.7.1如何手動(dòng)編譯wordcount”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI