[Hadoop] - Hadoop3.0.x編譯


這里僅介紹一種Hadoop3.0.x版本的源碼編譯方式

編譯過程

  1. 下載源碼

  2. 安裝依賴環境

  3. 源碼編譯

=============================================

一、下載源碼

直接從apache的歸檔網站中下載對應版本的源碼,比如需要下載的hadoop-3.0.0-alpha2的地址為http://archive.apache.org/dist/hadoop/core/hadoop-3.0.0-alpha2/; 直接下載源碼包:hadoop-3.0.0-alpha2-src.tar.gz

 

二、安裝依賴環境

hadoop的編譯需要依賴cmake、openssl等相關依賴環境,如果在編譯hadoop之前沒有進行必要環境的安裝的話,可能會出一些異常問題,部分異常解決將博客:[Hadoop] - Cannot run program "cmake"[Hadoop] - Protocol Buffer安裝; 必要服務列表為:

* Unix System ## Unix類型的操作系統
* JDK 1.8+ ## JDK至少1.8版本
* Maven 3.0 or later ## Maven環境3.x版本以上,最好將maven的源修改為國內源,默認國外源可能連接不上
* Findbugs 1.3.9 (if running findbugs) ## 可選
* ProtocolBuffer 2.5.0 ## 必須,版本不要選擇錯誤了
* CMake 2.6 or newer (if compiling native code), must be 3.0 or newer on Mac ## 進行native編譯過程中必須服務
* Zlib devel (if compiling native code) ## cmake服務需要
* openssl devel (if compiling native hadoop-pipes and to get the best HDFS encryption performance) ## cmake服務需要
* Linux FUSE (Filesystem in Userspace) version 2.6 or above (if compiling fuse_dfs) 
* Internet connection for first build (to fetch all Maven and Hadoop dependencies)
* python (for releasedocs)
* bats (for shell code testing)
* Node.js / bower / Ember-cli (for YARN UI v2 building)

 

 

三、源碼編譯

進行源碼壓縮包解壓,然后進入解壓后的文件夾,執行相關maven命令進行源碼編譯操作

假設解壓后,hadoop源碼位於文件夾:/opt/workspaces/hadoop-3.0.0-alpha2-src中;支持的maven命令如下:

Maven build goals:

 * Clean                     : mvn clean [-Preleasedocs]
 * Compile                   : mvn compile [-Pnative]
 * Run tests                 : mvn test [-Pnative] [-Pshelltest]
 * Create JAR                : mvn package
 * Run findbugs              : mvn compile findbugs:findbugs
 * Run checkstyle            : mvn compile checkstyle:checkstyle
 * Install JAR in M2 cache   : mvn install
 * Deploy JAR to Maven repo  : mvn deploy
 * Run clover                : mvn test -Pclover [-DcloverLicenseLocation=${user.name}/.clover.license]
 * Run Rat                   : mvn apache-rat:check
 * Build javadocs            : mvn javadoc:javadoc
 * Build distribution        : mvn package [-Pdist][-Pdocs][-Psrc][-Pnative][-Dtar][-Preleasedocs][-Pyarn-ui]
 * Change Hadoop version     : mvn versions:set -DnewVersion=NEWVERSION

 

Maven相關參數如下:

 Build options:

  * Use -Pnative to compile/bundle native code ## 進行本地庫代碼編譯
  * Use -Pdocs to generate & bundle the documentation in the distribution (using -Pdist) ## 進行幫助文檔編譯
  * Use -Psrc to create a project source TAR.GZ ## 將源碼打包到最后編譯好的文件夾中
  * Use -Dtar to create a TAR with the distribution (using -Pdist) ## 對編譯好的文件進行打包操作
  * Use -Preleasedocs to include the changelog and release docs (requires Internet connectivity) ## 升級文檔編譯
  * Use -Pyarn-ui to build YARN UI v2. (Requires Internet connectivity) ## 支持yarn v2的ui

 

幾個常用的編譯命令:

1. mvn package -Pdist -DskipTests -Dtar -Dmaven.javadoc.skip=true ## 僅編譯正常源碼部分,對於native部分不進行編譯,最終結果打包

2. mvn package -Pdist,native,docs -DskipTests -Dtar ## 編譯正常部分源碼、native依賴庫以及幫助文檔,最終結果打包

執行mvn package -Pdist,native,docs -DskipTests -Dtar命令后,等等一段時間(根據網絡情況而定,一般30分鍾左右能夠完成編譯),完成編譯后,命令行輸出為:

編譯好的文件位於路徑/opt/workspaces/hadoop-3.0.0-alpha2-src/hadoop-dist/target中,即當前目錄的hadoop-dist子目錄的target文件夾中,文件截圖為:

 

 ==================================

至此,hadoop3.0編譯完成

編譯環境:

  centos6.5 64位 1核2G 

  JDK 1.8.0_121

  Maven 3.3.3

    Maven源:aliyun maven源 ==> http://maven.aliyun.com/nexus/content/groups/public/

  ProtocolBuffer 2.5.0

  Cmake 2.8.12.2

 


免責聲明!

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



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