hadoop1.0.0之後源碼編譯跟之前不太一樣,今天探索了一下,故寫此文章留做筆記。
此文內容是我剛剛做了一遍,所以如果版本和我一致,絕對好使。
先說版本:
jdk1.7(1.6以上應該都可以)
ant1.9(目前最新版本)
eclipse helios(indigo以及以上版本不可以,已經測試)
centos6.0
準備工作:
1,jdk
JAVA_HOME=/home/hadoop/soft/jdk1.7.0_17
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export JAVA_HOME
export PATH
export CLASSPATH
2,ant
ANT_HOME=/home/hadoop/soft/apache-ant-1.9.0
PATH=$ANT_HOME/bin:$PATH
export ANT_HOME
export PATH
3,eclipse官網下helios版本就OK,安裝就不再說了。
4,下載hadoop1.0.0,並解壓(1.X系列應該都可以)
構建Hadoop源代碼工程過程:
1,進入hadoop根目錄
mkdir .eclipse.templates
ant eclipse
等待......正常會編譯success
2,在eclipse裏面新建JavaProject
勾選掉Use default location選項,將Location置爲hadoop1.0.0根目錄 確定就OK了。
3,此時源代碼工程會有一些錯誤,我就碰到兩個,錯誤及解決方法如下
錯誤1,:Unbund classpath variable:'ANT_HOME/lib/ant.jar' in project 'hadoop-1.0.0'
解決方法:選中Project hadoop1.0.0,右鍵點擊Properties>Java build Path
在Libraries頁找到報錯的項(我的是在最下邊):ANT_HOME/lib/ant.jar
在彈出的框裏選中Varliable,新建變量ANT_HOME,值爲安裝目錄
錯誤2:有個類提示找不到jdk的tool包,具體記不清了,不過錯誤很明顯
解決方法:還是先進入Java build Path,Libraries頁面找到JRE System Library
右鍵edit,添加jdk裏面的tools.jar(在JAVA_HOME/lib/下面)
到此源代碼工程沒有任何錯誤,可以正常玩了。
編譯源代碼:
可以試着修改Hadoop工程的源代碼,然後執行ant Dversion=1.0.0 {target}
target有多個選項
比如ant Dversion=1.0.0 jar 就會在build目錄下面找到編譯好的hadoop-core-1.0.0.jar
hadoop1.0.0及以上版本的eclipse插件編譯還是有一些大大小小的坑
下一篇繼續hadoop-1.0.0版本的eclipse插件編譯