對於Hadoop開發者來講,通過JAVA API編程是進入Map-Reduce分佈式開發的第一步。由於Eclipse本身並沒有提供對MapReduce編程模式的支持,所以需要一些簡單的步驟來實現。
1. 安裝Hadoop。
本文的Hadoop是部署在虛擬機上的僞分佈模式。相關軟件環境如下:
JDK: sun jdk1.6.0_30
Hadoop: hadoop-0.20.203.0
Linux: Ubuntu 11.10
Eclipse: Eclipse Indigo 3.7.1
關於Hadoop僞分佈環境的具體配置方式,此處不再贅述。設置方面,core-site.xml中fs.default.name中填寫的是hdfs://localhost:9000
2. 設置環境
在終端中輸入
$ sudo vim /etc/profile
修改運行環境,在文件最尾添加如下內容:
export HADOOP_HOME=/home/wangyucao/hadoop-0.20.203.0 (此處即爲hadoop的安裝目錄)
export PATH=$PATH:#HADOOP_HOME/bin
3. 安裝Eclipse
在Ubuntu軟件中心搜索Eclipse進行安裝,或者通過官網下載Eclipse歸檔文件。此處選擇通過官網下載,得到:
eclipse-jee-indigo-SR1-linux-gtk.tar.gz
解壓該文件,並放在/usr目錄下:
$ tar -zxvf eclipse-jee-indigo-SR1-linux-gtk.tar.gz
$ sudo mv eclipse /usr/
完成安裝步驟。
4. 安裝hadoop-eclipse插件
hadoop的發行版本中都包含了hadoop-eclipse-plugin插件。在開發hadoop應用時,需要首先安裝該Eclipse插件。
看到網上的教程,一般都是說直接將HADOOP_HOME/lib中的 hadoop-eclipse-plugin-0.20.203.0.jar 複製到eclipse安裝目錄下的plugins目錄中。但是在我實踐嘗試中,發現hadoop-0.20.203.0版本的該包如果直接複製到eclipse的插件目錄中,在連接DFS時會出現錯誤,提示信息爲: "error: failure to login",彈出的錯誤提示框內容爲"An internal error occurred during: "Connecting to DFS hadoop". org/apache/commons/configuration/Configuration". 經過察看Eclipse的log,發現是缺少jar包導致的。進一步查找資料後,發現直接複製hadoop-eclipse-plugin-0.20.203.0.jar,該包中lib目錄下缺少了jar包。
經過網上資料蒐集,此處給出正確的安裝方法:
首先要對hadoop-eclipse-plugin-0.20.203.0.jar進行修改。用歸檔管理器打開該包,發現只有commons-cli-1.2.jar 和hadoop-core.jar兩個包。將HADOOP_HOME/lib目錄下的 commons-configuration-1.6.jar , commons-httpclient-3.0.1.jar , commons-lang-2.4.jar , jackson-core-asl-1.0.1.jar 和 jackson-mapper-asl-1.0.1.jar 等5個包複製到hadoop-eclipse-plugin-0.20.203.0.jar的lib目錄下,如下圖:
然後,修改該包META-INF目錄下的MANIFEST.MF,將classpath修改爲一下內容:
Bundle-ClassPath: classes/,lib/hadoop-core.jar,lib/commons-cli-1.2.jar,lib/commons-httpclient-3.0.1.jar,lib/jackson-core-asl-1.0.1.jar,lib/jackson-mapper-asl-1.0.1.jar,lib/commons-configuration-1.6.jar,lib/commons-lang-2.4.jar
如下圖:
這樣就完成了對hadoop-eclipse-plugin-0.20.203.0.jar的修改。
最後,將hadoop-eclipse-plugin-0.20.203.0.jar複製到Eclipse的plugins目錄下:
$ cd ~/hadoop-0.20.203.0/lib
$ sudo cp hadoop-eclipse-plugin-0.20.203.0.jar /usr/eclipse/plugins/
5. 在Eclipse中對該插件進行配置。
首先,打開Eclipse,設置好workspace。
選擇window -> open perspective -> Other... , 選擇有大象圖標的 Map/Reduce.
此時,就打開了Map/Reduce的開發環境。可以看到,右下角多了一個Map/Reduce Locations的框。如下圖:
然後,設置Hadoop的環境參數。選擇Map/Reduce Locations 標籤,點擊該標籤最右邊的大象圖標,即那個齒輪狀圖標右側的大象圖標,打開參數設置頁面,參數填寫如下圖:
Location Name : 此處爲參數設置名稱,可以任意填寫
Map/Reduce Master (此處爲Hadoop集羣的Map/Reduce地址,應該和mapred-site.xml中的mapred.job.tracker設置相同)
Host: localhost
port: 9001
DFS Master (此處爲Hadoop的master服務器地址,應該和core-site.xml中的 fs.default.name 設置相同)
Host: localhost
Port: 9000
設置完成後,點擊Finish就應用了該設置。
此時,在最左邊的Project Explorer中就能看到DFS的目錄,如下圖所示。
到這裏,就完成了hadoop插件的設置過程。
出處:http://hi.baidu.com/wangyucao1989/blog/item/279cef87c4b37c34c75cc315.html