Hadoop2源碼分析-准備篇


1.概述

  我們已經能夠搭建一個高可用的Hadoop平台了,也熟悉並掌握了一個項目在Hadoop平台下的開發流程,基於Hadoop的一些套件我們也能夠使用,並且能利用這些套件進行一些任務的開發。在Hadoop的應用級別上,我們接着往后面去研究學習,那就是Hadoop的源碼了,作為Hadoop開發人員,我們得去學習和研究Hadoop得實現原理,底層框架的設計,編碼的實現過程等等,下面就開始我們今天的Hadoop源碼分析之旅。

2.准備

  在分析源碼之前,我們需要准備好分析源碼的環境,以及如何去分析(分析的方法)。

2.1基礎環境

  本系列分析的源碼是基於Hadoop-2.6.0-src,源碼下載地址如下:

http://apache.osuosl.org/hadoop/common/hadoop-2.6.0/hadoop-2.6.0-src.tar.gz

  JDK使用的是Oracle的JDK1.7,下載地址如下:

  • Windows版下載地址:
http://download.oracle.com/otn-pub/java/jdk/7u75-b13/jdk-7u75-windows-x64.exe
  • Linux版下載地址:
http://download.oracle.com/otn-pub/java/jdk/7u75-b13/jdk-7u75-linux-x64.tar.gz
  • Mac OS X版下載地址:

http://download.oracle.com/otn-pub/java/jdk/7u75-b13/jdk-7u75-macosx-x64.dmg

2.2操作系統

  目前主流的3種操作系統,Windows,Linux,Mac OS X;下面依次來說明不同環境下的配置。

  • Windows

  直接安裝下的 jdk-7u75-windows-x64.exe 文件,一路默認安裝即可,安裝完成后在 cmd 下輸入 java -verison 若顯示對應的版本好,即表示安裝成功。若出現 “java 不是內部或外部命令”的錯誤提示,可在 Windows 的環境變量下設置JAVA_HOME,和PATH以及CLASSPATH等環境變量即可。如下圖所示:

  注:例外還需要Maven環境,和Linux殼,下載IDE(下面Mac OS X環境中提供的IDE,Windows也可以使用),這里不做贅述。

  • Linux

  Linux采用的是CentOS 6,由於Linux自帶JDK,本文使用的Oracle的JDK,故我們先卸載系統自帶的JDK,安裝我們下載好的 jdk-7u75-linux-x64.tar.gz,具體步驟命令如下:

# 卸載自帶JDK
rpm -qa | grep java
yum -y remove java*

  在使用rpm -qa | grep java命令,查找JDK信息,若沒有則表示卸載完成。接着是安裝下載好的JDK,首先是解壓並創建目錄,命令如下所示:

tar -zxvf  jdk-7u75-linux-x64.tar.gz
mkdir -p /usr/java && mv  jdk-7u75-linux-x64 /usr/java/jdk1.7

  然后配置環境變量,內容如下:

export JAVA_HOME=/usr/java/jdk1.7
export PATH=$PATH:$JAVA_HOME/bin

  然后輸入命令讓環境變量立即生效,命令如下:

. /etc/profile

  接着,我們輸入:java -version 驗證即可。

  注:Linux環境下同樣需要配置Maven環境,IDE可以使用下面Mac OS X的IDE。

  • Mac OS X

  Mac系統下面直接安裝下載好的dmg文件,安裝文件路徑如圖所示:

  驗證截圖:

  安裝Maven環境:

  下載地址如下所示:

  maven下載

  安裝命令如下所示:

$ cd /usr/local 
$ sudo mv /Users/dengjie/Downloads/apache-maven-3.2.3-bin.tar.gz ./ 
$ sudo tar -xvf apache-maven-3.2.3-bin.tar.gz

   配置:

$ vi /etc/profile 
#Add below lines
in the profile export M2_HOME=/usr/local/apache-maven-3.2.3 export PATH=$PATH:$M2_HOME/bin
#save and quit $ .
/etc/profile

  驗證截圖:

  IDE

  IDE使用Redhat公司推出的JBoss Studio(Eclipse的升級版),下載地址如下:

  JBoss Developer Studio 8.0.0.GA

3.源碼准備

 Hadoop2的源碼分析,整個流程都是基於Mac OS X系統下來完成的。Linux系統基本配置可以參考Mac OS X配置,Windows系統IDE可以使用JBoss Studio(需要Windows系統下安裝JDK)。

 首先我們來預覽一下Hadoop-2.6.0-src的源碼目錄結構,如下圖所示:

3.1項目構建

  分析hadoop2源碼的方式有2種,一種方式是使用maven結構來分析閱讀Hadoop的源碼,另一種方式使用一般的Java Project來分析閱讀。首先先贅述下一般的Java Project創建Hadoop的源碼分析工程。如下圖所示:

  • Java Project

  在完成Hadoop的源碼導入后,我們還需要添加一些依賴 jar 包,在直接在Hadoop-2.6.0的share/hadoop目錄下將依賴包取出添加到IDE環境變量。如下圖所示:

  另外,若需要的依賴 jar 不存在,可在Hadoop共享的Maven倉庫去下載對應的依賴 jar,下載地址:

http://maven.outofmemory.cn/org.apache.hadoop/
  • Maven結構

  若使用Maven結構,可直接導入Hadoop的源碼文件,Hadoop-2.6.0-src工程就算Maven結構的。導入過程如下圖所示:

  

  在點擊 Finish 按鈕后,會根據 pom.xml 文件中的依賴下載對應的 jar 到本地Maven倉庫,首次導入需要下載的依賴 jar 包較多,時間會有點長,請耐心等待下載完成。

4.總結

  整個Hadoop2源碼的項目導入完成后,將近有100子項目,由於項目文件較多,在分析閱讀的時候需要認真謹慎。在導入Hadoop2源碼到IDE中的時候,項目結構我給出了2種方式:一般的Java Project結構和Maven結構,當然這個是可以根據自己實際情況來考慮,若是對Maven結構不熟悉的同學,可以直接使用一般的Java Project工程結構來分析Hadoop2的源碼,這個是不影響學習源碼分析的;若是對Maven結構敢興趣,也可自行使用Maven結構來學習源碼分析。

5.結束語

  這篇Hadoop2源碼分析的准備篇就和大家分享到這里,若是在大家在學習研究的過程中有什么問題,可以加群進行討論或發送郵件給我,我會盡我所能為您解答,與君共勉!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM