Hadoop 是現今當紅的雲端平台,
在國內目前雲端發展中,也常能見到Hadoop 的推廣應用。
相關Hadoop的介紹與設定,在國家高速網路與計算中心的網站上有非常大量的教學資源可以使用,當中包含了系統安裝設定的step by step,佛心來著吶!
然而在整合開發環境上,目前大多教學說明都使用Eclips做為開發工具,
因此這篇文章主要針對習慣使用Netbeans 進行環境開發的設計人員做介紹,
瞭解如何將Netbeans plug上Hadoop的開發套件。
第一件事,
由於Hadoop一般安裝於Linux平台,
為求單純,以下的內容皆是執行於Linux GUI中的 Netbeans 環境。
Hadoop 本身運作原理為透過Map-Reduce方式將工作丟到NameNode中執行,
並再匯集輸出,詳細介紹可以參考 國家高速網路與計算中心的『Map Reduce 介紹』
因此netbeans必須要安裝連接Hadoop Server的中介程式,
因此,這裡我們採用 Karmasphere Studio 做為netbeans連接Hadoop的中介,
當中Community Edition為免費版本,與Professional 版的差異為安全連線與即時監控等等 (詳見)
Karmasphere Studio安裝方式可由Netbeans Plugins直接下載安裝!
以下為安裝介紹:
由於Karmasphere Studio套件需要輸入一個啟動金鑰才能進行安裝,
因此必須先連結照Karmasphere Studio的註冊網頁進行註冊 [Link]
註冊完成後Karmasphere會以E-Mail通知並提供一組 serial key ,
請保留此 Key到之後的步驟。
1. 執行Netbeans後,開啟 Tools/Pligins
2. 進入Plugins後請選擇右方setting分頁,並點選右下角 Add 按鈕
隨後於當中輸入更新路徑:
Name: Karmasphere Studio for Hadoop
URL: http://hadoopstudio.org/updates/updates.xml
3. 連結完成後請點選 Available Plugins 分頁,並依照Name排序後面可以看到Karmasphere Studio套件,請點選Karmasphere Studio for Hadoop 套件,並按Install 進行安裝。
4. 遵循安裝流程安裝後,會進入到 Register Activation Job 程序,輸入申請的E-Mail與Serial Key便完成安裝。
5. 安裝完以上套件後,Netbeans - Services 便會產生三個Hadoop 標籤
Hadoop Jobs, Hadoop Clusters, Hadoop Filesystems,如此便完成安裝了!
6. 使用 Hadoop 的方式與一般Java Application 無異,New 一個Project後設定class 即可。
要注意的地方式,在create project後,在其 Library 點選右鍵選 Add Library,並挑選你所安裝的版本即可,本例為 Hadoop MapReduce 0.20。隨後所有的Hadoop Library便會新增到專案中。
執行 Hadoop Mapreduce 程式
當完成設定並撰寫完專案檔後,可透過NetBeans執行專案,執行方式如下:
1. 建立JAR檔,Build Project
開發完成後請執行 Run / Build Main Project ,隨後在專案目錄下的Dist目錄內便會產生一個JAR檔,例:
專案名稱:test
路徑:/home/hadooper/ex/test/
JAR檔:/home/hadooper/ex/test/dist/test.jar
2. 於 Services 中的 Hadoop Job點選右鍵執行 New Job
3. 進行 Job設定
Step 1 : 給予這個Job 名稱,並選擇 Hadoop Job from pre-existing JAR file
Step 2 : 使用Browse 找到專案的JAR檔,會自動填入Main Class名稱
Step 3 : 選擇Cluster ,並輸入參數,如要輸入的目錄路徑, 輸出的路徑
其餘可使用預設,點選Finish後便會產生一個New Job
4. 執行 Job
在新增的Job中點選右鍵執行 Run Job,
當中便會有預設的Cluster與Filesystem,只要針對參數進行設定後即可執行。
如設定; input_file output_file
輸出視窗若顯示以下訊息即表示完成:
run:
BUILD SUCCESSFUL (total time: 0 seconds)
範例參考
以下提供一個WordCount範例做為參考 ( 範例出處 )
當中請先下載執行檔,與輸入文件檔
建立步驟:
- 請依上述步驟建立Project (名稱 WordCount) ,隨後將WordCount.java匯入到該專案的src目錄中。
- 建立一個input 目錄如 : /home/hadooper/inputfile (output目錄會自動產生)
- 並將兩個txt檔案置入。
- 隨後Build專案使其產生JAR檔
- 新增Job並設定參數為/home/hadooper/inputfile /home/hadooper/outputfile
- Run Job
範例執行結果:
在設定的輸出目錄/home/hadooper/outputfile 中可看到一文字檔,內容為輸入目錄中所有檔案的Word Count
BP 201103.14
參考資料:
很有幫助, 謝謝您
回覆刪除請問一下~
回覆刪除我們這邊hadoop filesystems可以連的hdfs,可是run jab的時候他沒反應也沒output
你的job是run完後沒結果嗎?
回覆刪除還是結果只有跑在一個node?
若是只有跑在一個node,
有可能是你程式在做map/reduce時沒有把它指派切出去
不知道Karmasphere Studio有沒有套件可以直接上傳檔案到hdfs,不用用終端機打指令
回覆刪除