windows下eclipse調試hadoop詳解

來源:互聯網
上載者:User

標籤:style   blog   c   java   tar   ext   

1)下載Eclipse

http://www.eclipse.org/downloads/

Eclipse Standard 4.3.2 64位

 

2) 下載hadoop版本對應的eclipse外掛程式

我的hadoop是1.0.4,因此下載hadoop-eclipse-plugin-1.0.4.jar

:http://download.csdn.net/detail/m_star_jy_sy/7376169

 

3)安裝hadoop外掛程式

將hadoop-eclipse-plugin-1.0.4.jar拷貝到eclipse的plugins目錄下即可

 

4)重啟eclipse,檢查hadoop外掛程式是否載入成功

單擊菜單:Window/Open Perspective/Others…彈出Open Perspective對話方塊,出現Map/Reduce即表示安裝成功,見:

 

5)設定hadoop安裝路徑

選擇菜單:Window/Preferences,彈出Preferences對話方塊,如所示:

 

選擇Hadoop Map/Reduce ,設定Hadoop Install directory(Hadoop安裝路徑)。Hadoop的安裝路徑就是hadoop安裝包hadoop-1.0.4.tar.gz解壓縮後的路徑

 

5)配置hadoop

選擇菜單:Window/Show View/Other…,彈出Show View對話方塊。

 

在對話方塊中選擇MapReduce Tools下的Map/Reduce Locations,開啟Map/Reduce Locations視圖。如所示:

 

在Map/Reduce Locations視圖中,右鍵選擇New Hadoop Location…菜單,彈出New Hadoop Location對話方塊,如所示:


在彈出的對話方塊中你需要配置Location name,如Hadoop,還有Map/Reduce Master和DFS Master。這裡面的Host、Port分別為你在mapred-site.xml、core-site.xml中配置的地址及連接埠。UserName設定為運行hadoop的帳號名,例如:hadoop。

 

配置完後退出。點擊DFS Locations-->Hadoop如果能顯示檔案夾(2)說明配置正確,如果顯示"拒絕串連",請檢查你的配置。


至此,環境基本搭建好了。下面就通過經典的WordCount例子來實驗下了。

 

6)準備測試資料

在本地建立word.txt,內容如下:

java c++ python c
java c++ javascript
helloworld hadoop
mapreduce java hadoop hbase

通過copyFromLocal命令把本地的word.txt複製到HDFS上,命令如下:

$:hadoop fs -copyFromLocal /usr/hadoop/word.txt word.txt

本例假設word.txt存放在/usr/hadoop/目錄下

 

7)建立hadoop項目

File-->New-->Other-->Map/Reduce Project

項目名可以隨便取,如WordCount。 複製 hadoop安裝目錄src/example/org/apache/hadoop/example/WordCount.java到剛才建立的項目下面。

 

8)運行程式

按右鍵WordCount項目,選擇Run As-->RunConfigurations…,彈出Run Configurations對話方塊。如所示:

按右鍵左邊的Java Application,選擇New菜單建立一個配置項,取名為Wordcount。在Arguments選項卡中設定Program arguments:為:

hdfs://192.168.0.19:9000/user/hadoop/word.txt

hdfs://192.168.0.19:9000/user/hadoop/out

第一行為輸入檔案,第二行為輸出結果檔案。

如果運行時報java.lang.OutOfMemoryError: Java heap space 配置VM arguments參數:

-Xms512m -Xmx1024m -XX:MaxPermSize=256m

設定完後,單擊Run。

 

9)錯誤1

現象:

ERROR security.UserGroupInformation: PriviledgedActionExceptionas:zhumingcause:java.io.IOException: Failed to set permissions of path:\tmp\hadoop-zhuming\mapred\staging\zhuming1380233490\.staging to 0700

Exceptionin thread "main" java.io.IOException: Failed toset permissions of path:\tmp\hadoop-zhuming\mapred\staging\zhuming1380233490\.staging to 0700

 

解決方案:

下載hadoop-core-1.0.4-modified.jar替換到hadoop安裝目錄下的hadoop-core-1.0.4.jar檔案

:http://download.csdn.net/detail/m_star_jy_sy/7376283

 

10)錯誤2

現象:

org.apache.hadoop.security.AccessControlException:org.apache.hadoop.security.AccessControlException: Permission denied:user=zhuming, access=WRITE,inode="hadoop":hadoop:supergroup:rwxr-xr-x

atsun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)

 

原因:

因為Eclipse使用hadoop外掛程式提交作業時,會預設以zhuming身份(windows目前使用者)去將作業寫入hdfs檔案系統中,對應的也就是 HDFS上的/user/xxx , 我的為/user/hadoop,由於zhuming使用者對user/hadoop目錄並沒有寫入許可權,所以導致異常的發生。

 

解決方案:

放開/user/hadoop目錄的許可權,命令如下:$ hadoop fs -chmod 777 /user/hadoop

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.