在Myeclipse上安裝hadoop插件,開發MapReduce程序(本人新手,歡迎大家多多指導和關照)


1.安裝好Myeclipse。

2.下載hadoop插件(hadoop-eclipse-plugin-2.6.0.jar)並放到Myeclipse/dropins目錄下。

3.重啟Myeclipse。

4.配置Hadoop installation directory

如果插件安裝成功,打開Windows—Preferences后,在窗口左側會有Hadoop Map/Reduce選項,點擊此選項,在窗口右側設置Hadoop安裝路徑。

5.將hadoop2.6.0 64位版(我的系統64位)Windows運行包下載,並將里面hadoop.dll和winutils.exe兩個文件放到Hadoop 安裝bin目錄下,比如:X:\hadoop-2.6.0\bin目錄下,與此同時,還需要將hadoop.dll和winutils.exe這兩個文件放入到C:\Windows\System32目錄下。

 

6.為hadoop配置環境變量。

7.在Myeclipse配置Map/Reduce Locations。

1)打開Windows—show view—Other

 

2)選擇Map/Reduce,點擊OK

3)在右下方看到如下圖所示

4)點擊右邊小象圖標,打開Hadoop Location配置窗口,輸入Location Name,任意名稱即可.配置Map/Reduce Master和DFS Mastrer,Host和Port配置成與core-site.xml的設置一致即可:

8.在上面hostname配置的時候,需要添加一條hostname 的解析。在Windows下,以管理員的身份打開C:\Windows\System32\drivers\etc\hosts文件(此處如果在用WEB UI查看hdfs,yarn等信息的時候配置過,就不必做了)。

 9.點擊左側的DFSLocations—>djt002(上一步配置的location name),如果連接成功,在project explorer的DFS Locations下會展現hdfs集群中的文件。

 

10.構建map/reduce項目。

1)首先打開Myeclipse,我們選擇 File---New---Other,點擊后出現如下界面。

2)輸入工程名稱(如:hadoop)

3)導入hadoop相關jar包

點擊項目右鍵——Build Path——Configure Build Path——進入如下界面

 

4)選擇你本地hadoop安裝目錄下的share目錄下的hadoop目錄下,如下圖,然后把這4個文件夾下的jar包導入即可。

 

5)在 src 目錄下創建一個包名(如com.hadoop.test),然后編寫一個MapReduce示例程序WordCount。 也可直接網上下載一個。

 

 注意:這里我們需要下載log4j.properties文件放到src目錄下,這樣程序運行時可以打印日志,便於調試程序。

 6)將自己創建的test.txt文件上傳至HDFS文件系統的/dashuju目錄下。

在Windows下創建test.txt文件,通過Myeclipse連接HDFS,然后鼠標放到dashuju目錄上右鍵點擊,選擇Upload files to HDFS,選中本地的test.txt文件上傳至/dashuju目錄下。

 

 

 7.下載的wordcount程序中,要設置輸入輸出路徑。

8.右鍵點擊run as >>java application(或者run on hadoop )運行程序,並查看結果。

11.常見錯誤及解決辦法(以下錯誤來源於網絡)。

1.錯誤:java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

錯誤原因:未正確配置環境變量

解決辦法:配置環境變量HADOOP_HOME為D:\hadoop-2.2.0,另在Path變量后添加;%HADOOP_HOME%\bin

 

2.錯誤:Could not locate executable D:\hadoop-2.2.0\bin\winutils.exe in the Hadoop binaries.

錯誤原因:本地Hadoop運行目錄的bin目錄下中沒有winutils.exe或者32位/64位版本不匹配

解決辦法:下載相應的winutils.exe和hadoop.dll放到Hadoop運行目錄的bin文件夾下,注意選擇正確的32位/64位版本

 

3.錯誤:Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z

錯誤原因:本地Hadoop運行目錄的bin目錄下中沒有hadoop.dll或者32位/64位版本不匹配

解決辦法:下載相應的hadoop.dll放到Hadoop運行目錄的bin文件夾下,注意選擇正確的32位/64位版本

 

4.錯誤:DEBUG org.apache.hadoop.util.NativeCodeLoader - Failed to load native-hadoop with error: java.lang.UnsatisfiedLinkError: HADOOP_HOME\bin\hadoop.dll: Can't load AMD 64-bit .dll on a IA 32-bit platform

錯誤原因:本地Hadoop運行目錄的bin目錄下中沒有hadoop.dll版本不匹配,有32位和64位版

解決辦法:下載正確的32位/64位版本的hadoop.dll放到Hadoop運行目錄的bin文件夾下

 

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

解決辦法:其實這個錯誤的原因很容易看出來,用戶在hadoop上執行寫操作時被權限系統拒絕。有以下幾種解決辦法,可以分別試一試。

1)在系統的環境變量里面,添加一個的用戶變量:HADOOP_USER_NAME,它的值為HADOOP環境下的用戶名,比如hadoop(修改完重啟eclipse,不然可能不生效)

2)將當前Windows系統的登錄帳號修改為hadoop環境下的用戶名,比如hadoop。

3)使用HDFS的命令行接口修改相應目錄的權限: 比如要上傳的文件路徑為hdfs://djt002:9000/user/xxx.txt,則使用hadoop fs -chmod 777 /user 修改權限。 如果要上傳的文件路徑為hdfs://djt002:9000/java/xxx.txt,則要使用hadoop fs -chmod 777 /java或者hadoop fs -chmod 777 / 修改權限,此時需要先在HDFS里面建立Java目錄。

4)關閉hadoop環境下的防火牆。

 

6.錯誤:Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.util.NativeCrc32.nativeComputeChunkedSumsByteArray(II[BI[BIILjava/lang/String;JZ)V

解決辦法:下載正確的32位/64位版本的hadoop.dll和winutils.exe拷貝到C:\Windows\System32目錄下即可。

 

 

7.錯誤:出現DFS列表無法正常顯示的問題該怎么辦?且報如下錯誤:

 

解決方法:

1)可能是因為Hadoop集群(hdfs)沒有啟動或沒有啟動成功導致的

2)dfs權限:在配置文件中設置成false,或該屬性配置有拼寫錯誤

3)HDFS離開安全模式:hadoop dfsadmin -safemode leave

4)檢查防火牆是否關閉

 

8.錯誤:在搭建eclipse/Myeclipse過程中出現下面問題該如何解決?

解決方法:

1)點擊Window——Open Perspective——Other.

2)然后在彈出的對話框里選擇Map/Reduce,點擊OK即可。

9.錯誤:連接不到hdfs文件系統上,報如下錯誤

解決方法:

把下圖的主機名改成對應的IP地址即可

10.錯誤:安裝完hadoop-eclipse插件之后報如下錯誤

解決方法:
1)如果出現這種情況,把jdk換成1.8就可以了。Jdk1.8 對應52,Jdk1.7 對應51

2)最好把Java安裝路徑放在path路徑最前面

3)路徑最好不要有中文。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM