本節書摘來自華章計算機《深入了解大資料:大資料處理與程式設計實踐》一書中的第2章,第2.4節,作者 主 編:黃宜華(南京大學)副主編:苗凱翔(英特爾公司),更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。
hadoop mapreduce程式的開發一般是在程式員本地的單機hadoop系統上進行程式設計與調試,然後上載到hadoop叢集上運作。開發環境可以使用eclipse,也可以使用其他開發環境,如intellij。本節僅僅介紹使用eclipse開發hadoop程式的過程。
可以下載下傳linux版本的eclipse ide for java開發包,并安裝在本地的linux系統中。
1.?啟動eclipse
啟動eclipse後,會出現如圖2-2所示的界面
2.?建立java project
建立java project的界面如圖2-3所示。

3.?配置java project
這一步需要加入外部的jar檔案:hadoop-core-1.2.1.jar以及lib下所有的jar包,見圖2-4。
圖2-4 加入相應jar包
4.?編寫程式代碼
編寫相應的mapreduce程式的代碼,見圖2-5。
圖2-5 編寫程式代碼
5.?編譯源代碼
編譯mapreduce程式。待完成編譯時,導出jar檔案,如圖2-6所示。
圖2-6 編譯源代碼
6.?本地運作調試
在導出jar檔案的時候,需要指定一個主類main class,作為預設執行的一個類。将程式複制到本地hadoop系統的執行目錄,可以準備一個小的測試資料,即可通過hadoop的安裝包進行運作調試。
7.?遠端作業送出
當需要用叢集進行海量資料處理時,在本地程式調試正确運作後,可按照遠端作業送出步驟,将作業送出到遠端叢集上運作。
以hadoop mapreduce計算pi值的示例程式為例,運作程式的指令是:
$hadoop jar $hadoop_home/hadoop-examples-1.2.1.jar pi2 5
其中,第一個參數是指要運作的map的次數;第二個參數是指每個map任務取樣的個數。