Posted on 2013-06-24 18:58
鑫龍 閱讀(310)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
Hadoop
1. 下載Hadoop源代碼
Hadoop 各成員源代碼下載地址:http://svn.apache.org/repos/asf/hadoop,請(qǐng)使用SVN下載,在SVN瀏覽器中將trunk目錄下的源代碼check-out 出來即可。請(qǐng)注意只check-out出SVN 上的tag 目錄下的內(nèi)容,如:
http://svn.apache.org/repos/asf/hadoop/common/tag/release-0.20.2,
2. 準(zhǔn)備編譯環(huán)境
2.1. 系統(tǒng)
CentOS5.5
2.2. Hadoop代碼版本
hadoop-0.20.2-release
2.3. 聯(lián)網(wǎng)
編譯Hadoop 會(huì)依賴很多第三方庫,但編譯工具Ant 會(huì)自動(dòng)從網(wǎng)上下載缺少的庫,所以必須保證機(jī)器能夠訪問Internet。
2.4. java
編譯Hadoop要用JDK1.6 以上,網(wǎng)址:http://java.sun.com/javase/downloads/index.jsp。
安裝好之后,請(qǐng)?jiān)O(shè)置好JAVA_HOME 環(huán)境變量。
2.5. Ant
需要使用Ant 工具來編譯Hadoop,可以從:http://ant.apache.org/ivy/download.cgi 下載Ant
安裝好之后,請(qǐng)?jiān)O(shè)置好ANT_HOME 環(huán)境變量。
2.6. Eclipse
Eclipse 則可以從http://www.eclipse.org/downloads/上下載。
3. 編譯Hadoop
3.1. 編譯Hadoop
步驟1) 在Elipse 的Package 視圖中單擊右鍵,選擇New->Java Project,如下圖所示:

在上圖所示的對(duì)話框中,點(diǎn)擊Browse 按鈕,選擇hadoop-0.20.2 源代碼目錄,并設(shè)置Projectname 為hadoop-0.20.2-dev。工程導(dǎo)入完成后,進(jìn)入Eclipse 主界面,可以看到hadoop-0.20.2 已經(jīng)導(dǎo)入進(jìn)來,但可以看到目錄上有紅叉叉,是因?yàn)镋lipse默認(rèn)使用了Java Builder,而不是Ant Builder,所以下一步就是設(shè)置使用Ant Builder。
步驟3) 設(shè)置Builder 為Ant:右鍵hadoop-0.20.2-dev>Properties->Builders:
點(diǎn)擊Browse File System 按鈕,選擇hadoop-0.20.2源代碼目錄下的build.xml 文件,并設(shè)置Name 為Ant_Builder(Name 可以改成其它的,但建議使用Ant_Builder,因?yàn)檫@樣名副其實(shí)),操作結(jié)果如下圖所示:
Hadoop 各成員都需要編譯成jar,所以做如下圖所示的一個(gè)修改:
上面完成后,回到Builder 的主對(duì)話框,再將對(duì)話框中的Java Builder 下移,并將它前面的勾去掉。進(jìn)入Eclipse 主界面,由于之前選擇了Manual Build,所以需要人工方式驅(qū)動(dòng)編譯,編譯成功后,可以看到BUILDSUCCESSFUL 字樣。
請(qǐng)注意:如果上圖所示的菜單中的BuildAutomatically 被勾中,則在common的右鍵菜單中可能不會(huì)出現(xiàn)Build 子菜單。
在編譯過程中,Ant 會(huì)自動(dòng)從網(wǎng)上下載所依賴的庫。hadoop-0.20.2 編譯成功結(jié)束后,可以在build 目錄下找到編譯后生成的文件hadoop-core-0.20.2-dev.jar。
3.2編譯過程中出現(xiàn)錯(cuò)誤
1、可能有時(shí)候因?yàn)閑clipse版本或者操作系統(tǒng)版本的問題使得hadoop提供的eclipse plugin不太好用。
解決方法:
1)修改$HADOOP_HOME/src/contrib/build-contrib.xml
增加一行:<propertyname="eclipse.home" location="/home/gushui/eclipse"/>
上句后面的/home/gushui/eclipse由自己的$ECLIPSE_HOME代替
2)修改$HADOOP_HOME/src/contrib/eclipse-plugin/src/java/org/apache/hadoop/eclipse/launch/HadoopApplicationLaunchShortcut.java
注釋掉原來的//importorg.eclipse.jdt.internal.debug.ui.launcher.JavaApplicationLaunchShortcut;
改為importorg.eclipse.jdt.debug.ui.launchConfigurations.JavaApplicationLaunchShortcut;
2、報(bào)錯(cuò):
Buildfailed
Cannot write to the specified tarfile!
解決方法:
hadoop-0.20.2-dev目錄下的Build.xml中
<!--
<tar compression="gzip"destfile="${build.classes}/bin.tgz">
<tarfileset dir="bin"mode="755"/>
</tar>
-->
注銷掉,運(yùn)行成功。
參考 http://blog.csdn.net/basicthinker/article/details/6174442
參考: http://hi.baidu.com/xxjjyy2008/blog/item/7b5ed10f20e6a9346059f335.html
參考:http://hadoop.hadoopor.com/thread-941-1-1.htmlhttp://trac.nchc.org.tw/cloud/wiki/waue/2010/0211
轉(zhuǎn)自http://www.cnblogs.com/zyumeng/archive/2013/03/22/2975165.html