標籤: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