小編給大家分享一下hadoop2.7.1如何手動編譯wordcount,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
10年積累的網(wǎng)站制作、成都網(wǎng)站制作經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有鄂溫克免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
成功搭建了hadoop運行環(huán)境并運行了wordcount,實際上是完成了由我們給定輸入和輸出的路徑,運行hadoop提供的示例中編譯好的程序?qū)崿F(xiàn)的,但真正的開發(fā)過程中,我們需要自己編寫java代碼,編譯、打包才能在hadoop上運行,因此在這一次,我們利用hadoop提供的WordCount.java源碼,在Linux下手工編譯、打包,最后調(diào)用、運行,為進(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兩個文件夾,分別存放.java和編譯后的.class文件。將找到的WordCount.java文件放入src中,打開WordCount.java,我羞愧的將包名改成了package com.sr.hadoop,有點不好意思...
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三個庫文件,編譯src中所有的.java文件(我們也可以寫成WordCount.java)。-classpath后接著3個絕對路徑,是作者電腦上3個庫文件的所在位置,絕對路徑用:分割;-d后面跟著的是編譯后存放路徑和源路徑。執(zhí)行后就會發(fā)現(xiàn)classes下生成了三級文件目錄,里面有編譯好的.class文件,而且你會發(fā)現(xiàn),對于.java中的每一個類,都有對應(yīng)的文件生成。
5 “jar -cvf Srwordcount.jar -C ./classes/ .”將編譯好的 class 文件打包成 Jar 包,打包后的Srwordcount會出現(xiàn)在wordcount_01目錄中,只有打包后的.class文件才能在hadoop下運行。
6 運行Srwordcount:注意需先cd 到你自己的hadoop環(huán)境下,我的是“cd ~/usr/hadoop/hadoop-2.7.1”,請確保hadoop啟動,input中放置了需要運行的文本文件,同時沒有output文件夾,因為hadoop為防止運行結(jié)果發(fā)生覆蓋,不會向已有的文件夾下寫入數(shù)據(jù)。以上任何一步有問題,請查看我的上一篇博客。
“bin/hadoop jar /home/sr/wordcount_01/Srwordcount.jar com.sr.hadoop.WordCount /input /output”即將input中的內(nèi)容用打包好的Srwordcount.jar運行,放入output中。請注意com.sr.hadoop.WordCount是調(diào)用三層目錄下的WordCount.class,在第2步中我改動了包名。
看完了這篇文章,相信你對“hadoop2.7.1如何手動編譯wordcount”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!