天天看點

Hadoop的源碼編譯

目錄

正文

1、準備階段

使用root登入Centos,并且要求能夠正常連接配接網絡。配置清單如下:

(1)hadoop-2.7.2-src.tar.gz

(2)jdk-8u144-linux-x64.tar.gz

(3)apache-ant-1.9.9-bin.tar.gz(build工具,打包用的)

(4)apache-maven-3.0.5-bin.tar.gz

(5)protobuf-2.5.0.tar.gz(序列化的架構)

1.1、下載下傳Hadoop源碼包

 https://hadoop.apache.org/releases.html

1.2、安裝、配置maven

tar -zxvf apache-maven-3.0.5-bin.tar.gz -C /opt/module/      

配置maven鏡像源

vi conf/settings.xml      

添加以下内容

<mirror>
      <id>nexus-aliyun</id>
      <mirrorOf>central</mirrorOf>
      <name>Nexus aliyun</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>      

配置maven環境變量

vi /etc/profile
      

添加一下内容

#MAVEN_HOME
export MAVEN_HOME=/opt/module/apache-maven-3.0.5
export PATH=$PATH:$MAVEN_HOME/bi      

使得配置資訊生效

source /etc/profile      

驗證maven是否安裝成功:

[root@hadoop-102 software]# mvn -version
Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 08:51:28-0500)
Maven home: /opt/module/apache-maven-3.0.5
Java version: 1.8.0_144, vendor: Oracle Corporation
Java home: /opt/module/jdk1.8.0_144/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-957.el7.x86_64", arch: "amd64", family: "unix"
You have new mail in /var/spool/mail/root
[root@hadoop-102 software]#       

1.3 、安裝、配置Ant

[root@hadoop-102 software]# tar -zxvf apache-ant-1.9.9-bin.tar.gz -C /opt/module/      

  [root@hadoop-102 software]# vi /etc/profile

    #ANT_HOME

    export ANT_HOME=/opt/module/apache-ant-1.9.9

    export PATH=$PATH:$ANT_HOME/bin

  [root@hadoop-102 software]# source /etc/profile

  [root@hadoop-102 software]#

  [root@hadoop-102 software]# ant -version

    Apache Ant(TM) version 1.9.9 compiled on February 2 2017

  [root@hadoop-102 software]#

1.4、安裝glibc-headers 和  gcc-c++

[root@hadoop-102 software]# yum -y install glibc-headers      
[root@hadoop-102 software]# yum install gcc-c++      

1.5、安裝make和cmake

[root@hadoop-102 software]# yum install make
[root@hadoop-102 software]# yum install cmake      

1.6、編譯安裝protobuf

[root@hadoop-102 software]# tar -zxvf protobuf-2.5.0.tar.gz -C /opt/module/
[root@hadoop-102 software]# cd /opt/module/protobuf-2.5.0/                 
[root@hadoop-102 protobuf-2.5.0]#
[root@hadoop-102 protobuf-2.5.0]#./configure 
[root@hadoop-102 protobuf-2.5.0]# make 
[root@hadoop-102 protobuf-2.5.0]# make check 
[root@hadoop-102 protobuf-2.5.0]# make install 
[root@hadoop-102 protobuf-2.5.0]# ldconfig       

配置環境變量:

[root@hadoop-102 protobuf-2.5.0]# vi /etc/profile
 #LD_LIBRARY_PATH
 export LD_LIBRARY_PATH=/opt/module/protobuf-2.5.0
 export PATH=$PATH:$LD_LIBRARY_PATH
[root@hadoop-102 protobuf-2.5.0]# source /etc/profile
[root@hadoop-102 protobuf-2.5.0]#  protoc --version
libprotoc 2.5.0      

1.7、安裝openssl和 ncurses-devel庫

[root@hadoop-102 ~]# yum -y install openssl-devel
[root@hadoop-102 ~]# yum -y install ncurses-devel      

jdk的安裝時,解壓後配置環境變量,這裡就不在贅述。

2、編譯Hadoop

2.1、解壓源碼包

[root@hadoop-102 hadoop-2.7.2-src]# tar -zxvf hadoop-2.7.2-src.tar.gz -C /opt/
[root@hadoop-102 software]# cd /opt/hadoop-2.7.2-src/
[root@hadoop-102 hadoop-2.7.2-src]#       

2.2、編譯

切入到解壓後的目錄中,執行:

mvn package -Pdist,native -DskipTests -Dtar      

2.3、檢視編譯結果

 編譯完成後,hadoop包在/opt/hadoop-2.7.2-src/hadoop-dist/target目錄下。

3、編譯源碼過程中常見的問題及解決方案

(1)MAVEN install時候JVM記憶體溢出

處理方式:在環境配置檔案和maven的執行檔案均可調整MAVEN_OPT的heap大小。

(詳情查閱MAVEN 編譯 JVM調優問題,如:http://outofmemory.cn/code-snippet/12652/maven-outofmemoryerror-method)

(2)編譯期間maven報錯。可能網絡阻塞問題導緻依賴庫下載下傳不完整導緻,多次執行指令(一次通過比較難):

mvn package -Pdist,nativeN -DskipTests -Dtar      

(3)報ant、protobuf等錯誤,插件下載下傳未完整或者插件版本問題,最開始連結有較多特殊情況,同時推薦

2.7.0版本的問題彙總文章 http://www.tuicool.com/articles/IBn63qf

繼續閱讀