標籤:hdf user .gz ann windows 問題 pac input directory
折騰了大半個晚上最終部署成功了,比在Linux上面略微複雜一點,具體過程例如以下:
1) jdk、ant、hadoop環境變數配置
2) 分別將hadoop-2.5.2.tar.gz、hadoop-2.5.2-src.tar.gz、hadoop2x-eclipse-plugin、hadoop-common-2.2.0-bin下載解壓到D:\profession\hadoop檔案夾下
3) 改動hadoop-eclipse-plugin-2.5.2.jar配置
改動D:\profession\hadoop\hadoop2x-eclipse-plugin-master\ivy\libraries.properties
hadoop.version=2.5.2
jackson.version=1.9.13
4) ant編譯hadoop-eclipse-plugin-2.5.2.jar
D:\profession\hadoop\hadoop2x-eclipse-plugin-master\src\contrib\eclipse-plugin>
ant jar -Dversion=2.5.2 -Declipse.home= D:\profession\eclipse -Dhadoop.home= D:\profession\hadoop\hadoop-2.5.2
編譯好後hadoop-eclipse-plugin-2.5.2.jar會在D:\profession\hadoop\hadoop2x-eclipse-plugin-master\build\contrib\eclipse-plugin檔案夾下
(注意:會有警告資訊,提示缺少jar包。匯入就可以)
5) 將編譯好的hadoop-eclipse-plugin-2.5.2.jar拷貝至eclipse的plugins檔案夾下。然後重新啟動eclipse。
(註:如在左邊project中看到DFS Locations,即表示eclipse成功識別,有些eclipse版本號碼必須在Java EE版本號碼下才幹識別)
6) Window--Preference--Hadoop Map/Reduce進行配置,
7) 顯示Hadoop串連配置表單:Window--ShowView--Other-MapReduce Tools
8) 配置串連Hadoop,例如以所看到的:
9) 點擊左側的DFS Locations。如能看到user,表示成功安裝
10) hadoop叢集環境加入測試檔案,使用上面的input.txt檔案
11) 建立項目File--New--Other--Map/Reduce Project 命名為MR1,
然後建立org.apache.hadoop.examples.WordCount。從hadoop-2.5.2-src中拷貝覆蓋(\hadoop-2.5.2-src\hadoop-mapreduce-project\hadoop-mapreduce-examples\src\main\java\org\apache\hadoop\examples)
12) 配置windows下執行環境。
需hadoop.dll,winutils.exe
直接拷貝D:\profession\hadoop\hadoop-common-2.2.0-bin-master\bin檔案夾下此2項內容覆蓋D:\profession\hadoop\hadoop-2.5.2\bin
13) 配置執行參數
點擊WordCount.java。右鍵,點擊RunAs—>Run Configurations,配置執行參數,即輸入和輸出目錄
hdfs://hadoop:9000/user/hadoop/inputhdfs://hadoop:9000/user/hadoop/output02
14) 執行程式
Run as application/Run as hadoop
15)錯誤集錦
1. Q: An internal error occurred during: "Map/Reduce locationstatus updater".
java.lang.NullPointerException
A:把eclipse切換到Java EE版本號碼就可以
2. Q:WARN hdfs.DFSClient:DataStreamer Exception: org.apache.hadoop.ipc.RemoteException:java.io.IOException: File /user/root/input01/file01 could only be replicated to0 nodes, instead of 1
A:這是因為沒有加入節點的原因。即datanode沒有啟動成功
3. Q: java.io.IOException: Cannot run program "D:/java" (indirectory"C:/Users/administrator/.net.sf.jadclipse/1372683520891"):
A:JadClipse沒有配置好,下載jad.exe,Windows ->Preferences -> Java -> JadClipse選項, 在path todecomplier: 文字框中寫入D:/java/jad.exe(先前下載jad.exe的路徑)
4. Q: java.lang.UnsatisfiedLinkError:org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)
A:hadoop-common-2.2.0-bin-master下的bin的hadoop.dll放到C:\Windows\System32下,然後重新啟動電腦,或許還沒那麼簡單,還是出現這種問題。Windows的唯一方法用於檢查當前進程的請求,在給定的路徑的訪問許可權,所以我們先給以能進行訪問,我們自己先改動源碼,return true 時同意訪問。我們下載相應hadoop源碼,hadoop-2.5.2-src.tar.gz解壓,hadoop-2.5.2-src\hadoop-common-project\hadoop-common\src\main\java\org\apache\hadoop\io\nativeio下NativeIO.java 拷貝到相應的Eclipse的project,然後改動570行為return true所看到的:
16)感想
遇到異常問題,不急不躁,細緻分析,假設時間同意,能夠又一次捋一遍或者臨時去幹點別的事,或許猛然之間你就知道自己錯在哪了
hadoop學習筆記(三)——WIN7+eclipse+hadoop2.5.2部署