總網頁瀏覽量

2013年7月2日 星期二

hadoop eclipse plugin 1.1.2

據說舊版的(0.x.x)hadoop有附送eclise-plugin.jar
不過從1.X.X板之後就沒了
每個eclipse不一定跟hadoop相容
所以開發者就自己必須更改相關參數自建jar啦

hadoop(1.1.2)的eclipse-plugin放在hadoop家目錄下的src/contrib/路徑中
如果直接將eclipse-plugin資料夾複製到eclipse的plugin之下
eclipse仍然不能使用hadoop外掛套件



首先確認ubuntu已經安裝ant
本人很懶
所以直接用
sudo apt-get install ant
安裝ant

設定過程請參閱
中國blog


之後
進入haoop/src/contrib/eclipse-plugin目錄打上ant

最後在hadoop/build/contib/eclipse-plugin目錄生會看到打包好的hadoop-eclipse-plugin-1.1.2.jar

將這個檔案丟到eclipse的plugins資料夾裡即可


打開eclipse之後,卻出現Unsupported major.minor version 51.0錯誤
點開log訊息意思是說
有些jar是用jdk1.6.0_27編譯而成
有些是用jdk1.7.25編譯而成

查看eclipse-plugin-1.1.2.jar包裡面所有的MANIFEST.MF文件
裡面有些jar採用jdk1.5 jdk1.4編譯而成
沒道理jdk1.5 jdk1.4沒有出現錯誤訊息
而jdk1.6卻給我出現錯誤訊息
所以我猜應該不是eclipse採用的jdk版本與ubuntu系統採用jdk版本不一樣


後來發現
用root帳號打上java -version
root採用的是ubuntu內建的openjdk(版本是1.6.0_27)
版本號碼跟eclipse出現的error log完全一樣
所以我猜應該是
在利用ant打包時候某個時段採用了以root身分採用內建的1.6.0_27打包jar
root跟使用者帳號採用的jdk版本不一樣,編譯出來的jar不被eclipse接納

解決方法:
用root帳號在terminal打上update-alternatives --config java
出現以下畫面


選擇自己安裝的jdk




最後再次使用ant打包eclipse-plugin
(以hadoop帳號執行)


終於,
千呼萬喚始出來......................






沒有留言:

張貼留言