Hadoop是一個分佈式系統基礎架構,由apache基金會維護並更新。官網地址: http://hadoop.apache.org/
html
Hadoop項目主要包括如下4個模塊:node
因爲項目的須要,我只須要用到Hadoop中的前兩個子模塊,即Hadoop Common和Hadoop HDFS。linux
在編譯源碼以前,我先介紹一下個人開發環境:git
最新的Hadoop採用maven做爲項目構建工具,因此係統須要安裝maven。下面正式開始Hadoop源碼的編譯之旅。github
首先用svn簽出Hadoop的最新版本(hadoop 2.*):apache
svn checkout http://svn.apache.org/repos/asf/hadoop/common/trunk/ hadoop-dev
打開hadoop-dev文件夾,目錄結構以下圖網絡
這就是Hadoop的源代碼目錄,順便統計了一下源代碼行數,1231074(包含註釋、空行)。本文主要關心兩個子項目,分別是hadoop-common-project、hadoop-hdfs-project。架構
接下來就須要爲導入Eclipse構建Hadoop項目,雖然咱們只關心上面提到的兩個子項目,可是爲了防止後續出現依賴問題,在構建時請在項目根目錄下執行命令:框架
cd ~/hadoop-dev mvn install -DskipTests mvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true
在執行mvn(即maven)命令時,請保證網絡鏈接正常,由於mvn可能會下載一些Jar包來解決依賴問題。這可能須要花一段時間,完成上面的命令後,導入eclipse的準備工做已經作好了。eclipse
在導入以前,咱們還有一個工做,就是安裝eclipse的maven插件。安裝的方法這裏不作介紹。
接下來的工做是導入Eclipse中進行編譯,打開eclipse,步驟以下:
因爲個人項目只要用到hadoop的這幾個模塊,所以只導入了hadoop的部分模塊,若是大家想導入其餘的模塊進行二次開發,可按上面相同的方式導入相應的子項目。
接下來就是利用eclipse編譯hadoop,單擊Run->Run Configuration...,會打開運行配置對話框,咱們能夠看到左側有個Maven Build,雙擊Maven Build會新建一個配置頁,按照下圖的方式填寫
注意,Base directory 填寫的是hadoop項目的根目錄,即 ~/hadoop-dev。單擊Run,hadoop項目就開始編譯了,這須要花一些時間,注意在這期間請保持網絡鏈接正常。緣由同上。
其實上面的過程也能夠由命令行來完成,eclipse插件那一步均可以省了,命令行編譯方法以下:
cd ~/hadoop-dev
mvn package -Pdist -DskipTests -Dtar
回到eclipse,編譯成功後,eclipse的console窗口會輸出BUILD SUCESS信息,這表示hadoop項目已經編譯成功。
爲了調試hadoop, 接下來的工做就是利用上面編譯成功的hadoop構建hadoop環境。
前面編譯的結果都保存在各個項目的target目錄下,以hadoop-common爲例,編譯的結果在 ~/hadoop-dev/hadoop-common-project/hadoop-common/target/hadoop-common-3.0.0-SNAPSHOT/ 下。這個目錄下面的結構以下圖:
其餘的好比hadoop-hdfs、hadoop-mapreduce等也在對應的target目錄下,路徑與上面的相似,裏面的目錄結構和上圖是同樣的。
咱們首先在用戶目錄下創建一個hadoop目錄(mkdir ~/hadoop),把上圖的所在目錄下的全部項拷貝到這個新建的目錄下,因爲我只用common和hdfs,所以個人拷貝過程只針對這兩個子項目。(目前咱們有找到很好的方法編譯,只能編譯好後再從各個子項目中去拷貝,有解決方案的童鞋請必定留言~)
因爲上面的過程比較繁瑣,我寫成了一個腳本,稍後會發布到github上(附上github上腳本的地址:https://github.com/meibenjin/hadoop2.0-configuration),若是你等不及了,就先將就着拷貝一下吧。完成上面的操做之後,~/hadoop下的目錄結構和上圖同樣。
如今,我簡單介紹一下新版的hadoop的目錄結構, 看着很像linux的目錄結構吧。 bin和sbin目錄下是一些hadoop命令,ect目錄下就是配置文件了。share目錄下是hadoop須要用的一些jar包。
hadoop的配置我就不在這裏寫了(若有必要,我另寫一篇博客),具體的配置可上hadoop網站查看官方文檔。也能夠看這個博客:http://www.cnblogs.com/scotoma/archive/2012/09/18/2689902.html 其中提到的slaves和yarn-site.xml文件在hadoop-yarn-project下。 爲了調試hadoop方便,請配置成僞分佈模式。
配置成功之後,啓動hadoop相關的進程,命令以下:
hadoop namenode -format start-dfs.sh
查看進程是否啓動成功,輸入命令,jps獲得下圖輸出:
這表示,hadoop相關的進程已經成功啓動。
未完待續。。。
本文來自博客園,若是查看原文請點擊 http://www.cnblogs.com/meibenjin/p/3172889.html