【轉】在eclipse3.7中配置hadoop1.0.1插件

1.安裝插件

準備程序:

eclipse-3.7 
hadoop-eclipse-plugin-1.0.1

(http://download.csdn.net/detail/xiaoping8411/4216102)

hadoop-eclipse-plugin-1.0.1複製到eclipse/plugins目錄下,重啓eclipse。

2.打開MapReduce視圖

Window -> Open Perspective -> Other 選擇Map/Reduce,圖標是個藍色的象。

3.添加一個MapReduce環境

在eclipse下端,控制檯旁邊會多一個Tab,叫“Map/Reduce Locations”,在下面空白的地方點右鍵,選擇“New Hadoop location...”,如圖所示:

在彈出的對話框中填寫如下內容:

Location name(取個名字) 
Map/Reduce Master(Job Tracker的IP和端口,根據mapred-site.xml中配置的mapred.job.tracker來填寫)
DFS Master(Name Node的IP和端口,根據core-site.xml中配置的fs.default.name來填寫)

User name: 用戶名(默認操作系統用戶名,這個沒什麼用)

4.使用eclipse對HDFS內容進行修改

經過上一步驟,左側“Project Explorer”中應該會出現配置好的HDFS,點擊右鍵,可以進行新建文件夾、刪除文件夾、上傳文件、下載文件、刪除文件等操作。

注意:每一次操作完在eclipse中不能馬上顯示變化,必須得刷新一下。

5.創建MapReduce工程

5.1配置Hadoop路徑

Window -> Preferences 選擇 “Hadoop Map/Reduce”,點擊“Browse...”選擇Hadoop文件夾的路徑。

這個步驟與運行環境無關,只是在新建工程的時候能將hadoop根目錄和lib目錄下的所有jar包自動導入。

5.2創建工程

File -> New -> Project 選擇“Map/Reduce Project”,然後輸入項目名稱,創建項目。插件會自動把hadoop根目錄和lib目錄下的所有jar包導入。

5.3創建Mapper或者Reducer

File -> New -> Mapper 創建Mapper,自動繼承mapred包裏面的MapReduceBase並實現Mapper接口。 
注意:這個插件自動繼承的是mapred包裏舊版的類和接口,新版的Mapper得自己寫。

Reducer同理。

6.在eclipse中運行WordCount程序

6.1導入WordCount

從hadoop自帶的hadoop-examples-1.0.1.jar中獲取WordCount程序

6.2配置運行參數

Run As -> Open Run Dialog... 選擇WordCount程序,在Arguments中配置運行參數:/mapreduce/wordcount/input /mapreduce/wordcount/output/1

分別表示HDFS下的輸入目錄和輸出目錄,其中輸入目錄中有幾個文本文件,輸出目錄必須不存在。

6.3運行

Run As -> Run on Hadoop 選擇之前配置好的MapReduce運行環境,點擊“Finish”運行。

控制檯會輸出相關的運行信息。

6.4查看運行結果

在輸出目錄/mapreduce/wordcount/output/1中,可以看見WordCount程序的輸出文件。除此之外,還可以看見一個logs文件夾,裏面會有運行的日誌。

7 常見問題:

7.1 目錄權限認證問題,問題如下:

12/04/11 11:41:46 ERROR security.UserGroupInformation: PriviledgedActionExceptionas:lzpcause:java.io.IOException: Failed to set permissions of path: \app\hadoop\hadoop-1.0.1\hadoopdata\mapred\staging\lzp1107758487\.staging to 0700

Exception in thread "main" java.io.IOException: Failed to set permissions of path: \app\hadoop\hadoop-1.0.1\hadoopdata\mapred\staging\lzp1107758487\.staging to 0700

at org.apache.hadoop.fs.FileUtil.checkReturnValue(FileUtil.java:682)

at org.apache.hadoop.fs.FileUtil.setPermission(FileUtil.java:655)

解決方法:

這個問題用該是windows這邊的問題,其中\app\hadoop\hadoop-1.0.1\hadoopdata\mapred\staging\lzp11是windows7磁盤上的一個目錄

網上查到這是由於0.20.203.0以後的版本的權限認證引起的,只有去掉纔行

修改hadoop源代碼,去除權限認證,修改FileUtil.java的checkReturnValue方法,如下:

private static void checkReturnValue(boolean rv, File p,

FsPermission permission

throws IOException {

// if (!rv) {

// throw new IOException("Failed to set permissions of path: " + p +

// " to " +

// String.format("%04o", permission.toShort()));

// }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章