我的機器環境:
JDK版本: jdk-1.6.0_43
Linux版本: Ubuntu11.10
Hadoop版本: hadoop-1.0.4
Eclipse版本: eclipse4.2.2
Hadoop Eclipse外掛程式: hadoop-eclipse-plugin-1.0.4.jar
1: 在串連DFS時會出現錯誤,提示資訊為: "error: failure to login"。
彈出的錯誤提示框內容為"An internal error occurred during: "Connecting to DFS hadoop".org/apache/commons/configuration/Configuration".
這邊是由於Hadoop Eclipse外掛程式中缺少jar包導致的.
解決辦法:
歸檔管理器開啟該包,發現只有commons-cli-1.2.jar 和hadoop-core.jar兩個包。將hadoop/lib目錄下的:
- commons-configuration-1.6.jar ,
- commons-httpclient-3.0.1.jar ,
- commons-lang-2.4.jar ,
- jackson-core-asl-1.0.1.jar
- jackson-mapper-asl-1.0.1.jar
一共5個包複製到hadoop-eclipse-plugin-0.20.203.0.jar的lib目錄下,如:
然後,修改該包META-INF目錄下的MANIFEST.MF,將classpath修改為一下內容:
Bundle-ClassPath:classes/,lib/hadoop-core.jar,lib/commons-cli-1.2.jar,lib/commons-httpclient-3.0.1.jar,lib/jackson-core-asl-1.0.1.jar,lib/jackson-mapper-asl-1.0.1.jar,lib/commons-configuration-1.6.jar,lib/commons-lang-2.4.jar
這樣就完成了對hadoop-eclipse-plugin-0.20.203.0.jar的修改。
最後,將hadoop-eclipse-plugin-0.20.203.0.jar複製到Eclipse的plugins目錄下。
參考文檔:http://www.cnblogs.com/xia520pi/archive/2012/05/20/2510723.html
2: 運行hadoop程式出現Permission denied問題
報錯內容為:Exception in thread "main" java.io.FileNotFoundException: /b.txt (Permission denied)
我這邊是寫一個上傳本地檔案的demo時候出現的問題,一直在提示我的許可權不夠,其實照成這樣的原因是剛才設定的"Map/Reduce Location"其中的配置不是完全起作用,目的想要在HDFS的根目錄建立檔案,但實際上程式嘗試在本地的根目錄建立檔案,顯然是不行的。我們要讓Eclipse提交作業到Hadoop叢集上,所以我們這裏手動添加Job運行地址。)
解決辦法:
在代碼中添加:
conf.set("mapred.job.tracker", "hdfs://master:9001");
conf.set("fs.default.name", "hdfs://master:9000");
備忘:如果仍然有問題 可以嘗試通過conf.set()自行添加其他的配置資訊
參考文檔:http://www.cnblogs.com/xia520pi/archive/2012/05/20/2510723.html