上一篇在win7虛擬機下搭建了hadoop2.6.0偽分布式環境。為了開發調試方便,本文介紹在eclipse下搭建開發環境,連接和提交任務到hadoop集群。
1. 環境
Eclipse版本Luna 4.4.1
安裝插件hadoop-eclipse-plugin-2.6.0.jar,下載后放到eclipse/plugins目錄即可。
2. 配置插件
2.1 配置hadoop主目錄
解壓縮hadoop-2.6.0.tar.gz到C:\Downloads\hadoop-2.6.0,在eclipse的Windows->Preferences的Hadoop Map/Reduce中設置安裝目錄。
2.2 配置插件
打開Windows->Open Perspective中的Map/Reduce,在此perspective下進行hadoop程序開發。
打開Windows->Show View中的Map/Reduce Locations,如下圖右鍵選擇New Hadoop location…新建hadoop連接。
確認完成以后如下,eclipse會連接hadoop集群。
如果連接成功,在project explorer的DFS Locations下會展現hdfs集群中的文件。
3. 開發hadoop程序
3.1 程序開發
開發一個Sort示例,對輸入整數進行排序。輸入文件格式是每行一個整數。

3.2 配置文件
把log4j.properties和hadoop集群中的core-site.xml加入到classpath中。我的示例工程是maven組織,因此放到src/main/resources目錄。
程序執行時會從core-site.xml中獲取hdfs地址。
3.3 程序執行
右鍵選擇Run As -> Run Configurations…,在參數中填好輸入輸出目錄,執行Run即可。
執行日志:

4. 可能出現的問題
4.1 權限問題,無法訪問HDFS
修改集群hdfs-site.xml配置,關閉hadoop集群的權限校驗。
<property> <name>dfs.permissions</name> <value>false</value> </property> |
4.2 出現NullPointerException異常
在環境變量中配置%HADOOP_HOME%為C:\Download\hadoop-2.6.0\
下載winutils.exe和hadoop.dll到C:\Download\hadoop-2.6.0\bin
注意:網上很多資料說的是下載hadoop-common-2.2.0-bin-master.zip,但很多不支持hadoop2.6.0版本。需要下載支持hadoop2.6.0版本的程序。
4.3 程序執行失敗
需要執行Run on Hadoop,而不是Java Application。