centos6.5 64位下編譯hadoop2.5.1源碼

  1. 須要的工具:centos6.5 -64bitphp

     jdk1.7.0.71    html

    maven3.23  (http://mirrors.cnnic.cn/apache/maven/maven-3/3.2.3/binaries/apache-maven-3.2.3-bin.tar.gz)java

    ant1.9 (http://mirrors.cnnic.cn/apache//ant/binaries/apache-ant-1.9.4-bin.tar.gz)linux

    findbugs (http://cznic.dl.sourceforge.net/project/findbugs/findbugs/2.0.3/findbugs-2.0.3.tar.gz)c++

  2. 須要的軟件:java, svn, autoconf, automake, libtool, ncurses-devel, openssl-devel, gcc, lzo-devel, zlib-devel, znt, maven, protobuf, cmakeapache

     

    檢測系統中是否已安裝了某一軟件命令:rpm -qa|grep 軟件名,如檢測系統中是否安裝了svn:vim

    $ rpm -qa|grep svncentos

    在CentOS-x86_64位機器下編譯hadoop-2.2.0源碼

  3. 若是已安裝,則跳過,若是沒有安裝,用命令:yum install svn進行安裝,如:
    maven

    $ yum install svnsvn

     

    若是yum命令安裝失敗(找不到相應的包),則需手動下載相應的軟件包進行安裝,好比maven, protobuf這兩個個軟件;

        接下須要首先去apach官網下載hadoop2.5.1源碼包,並解壓;以後安裝jdk、maven、ant.詳細步驟網上不少。


        問題導讀:

        1.若是獲取hadoop src  maven包?
        2.編譯hadoop須要裝哪些軟件?
        3.如何編譯hadoop2.4?
        擴展:
        編譯hadoop爲什麼安裝這些軟件?

        protobuf的安裝
            爲防止出錯,這裏補充一些內容,
                先安裝g++

                sudo apt-get install g++

                centos 下:yum install gcc-c++

           下載 protobuf-2.5.0.tar.gz   網盤下載連接:http://pan.baidu.com/s/1dDgWe6P 密碼:xgiu

         解壓  tar zxvf protobuf-2.5.0.tar.gz 

            $ sudo ./configure 

            $ sudo make 

            $ sudo make check 

            $ sudo make install 

            $ sudo ldconfig 

            若是系統中已經存在了低版本的protobuf,並被識別出來,則進行以下設置

            修改環境變量:

            vi /etc/profile

           export LD_LIBRARY_PATH=~/protobuf-2.5.0 

         (LD_LIBRARY_PATH的這裏,填寫的是protobuf文件的位置

         source /etc/profile

        注意:配置/etc/profile,在虛擬機重啓後,可能配置會失效,因此重啓後,須要再次執行source操做。

        驗證   protoc --version

 

      .安裝openssl庫

      sudo apt-get install libssl-dev  / yum install openssl

       CMake安裝

       sudo apt-get install cmake /  sudo yum install cmake

       安裝findbugs(選擇安裝)

$ wget http://prdownloads.sourceforge.net/findbugs/findbugs-2.0.3.tar.gz?download
$ sudo tar zxf findbugs-2.0.3.tar.gz -C /opt
$ sudo vim /etc/profile
export FINDBUGS_HOME=/opt/findbugs-2.0.3
export PATH=$PATH:$FINDBUGS_HOME/bin

驗證:
[root@hadoop001 bin]# fb -version
2.0.3


進入src包執行編譯命令

mvn package -Pdist,native -DskipTests -Dtar  --不生成文檔

生成文檔的還未試驗

使用-Pdocs選項能夠生成文檔,固然前提是安裝了Forrest Findbugs  能夠參考以下命令手動指定:FORREST_HOMEFINDBUGS_HOME.

mvn package -Pdocs -DskipTests -Dtar -Dmaven.test.skip -Denv.FORREST_HOME=/usr/local/apache-forrest  -Denv.FINDBUGS_HOME=/usr/local/findbugs

生成的文檔在各自的target/site目錄下.




記錄:

jdk1.8下編譯會有處理註釋標籤的問題。相似於一下問題:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.8.1:jar (module-javadocs) on project hadoop-annotations: MavenReportException: Error while creating archive:

[ERROR] Exit code: 1 - /home/hadoop/Desktop/hadoop-2.5.1-src/hadoop-common-project/hadoop-annotations/src/main/java/org/apache/hadoop/classification/InterfaceStability.java:27: error: unexpected end tag: </ul>

解決:更換爲jdk1.7



[ERROR] around Ant part ...<exec dir="/home/hadoop/Desktop/hadoop-2.5.1-src/hadoop-common-project/hadoop-common/target/native" executable="cmake" failonerror="true">... @ 4:141 in /home/hadoop/Desktop/hadoop-2.5.1-src/hadoop-common-project/hadoop-common/target/antrun/build-main.xml

解決:

yum -y install zlib-devel 

debian:apt-get install zlib1g-dev

yum -y install ncurses-devel

debian: apt-get install libncurses5-dev



[ERROR] around Ant part ...<exec dir="/home/hadoop/Desktop/hadoop-2.5.1-src/hadoop-tools/hadoop-pipes/target/native" executable="cmake" failonerror="true">... @ 5:131 in /home/hadoop/Desktop/hadoop-2.5.1-src/hadoop-tools/hadoop-pipes/target/antrun/build-main.xml

解決

yum install openssl-devel

相關文章
相關標籤/搜索