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)路徑最好不要有中文。