編譯Hadoop-64 bit

Hadoop源碼版本:2.5.2git

名稱 版本
JDK

1.7u75(64bit)github


Maven 3.3.1
Protobuf 2.5.0
autoconfautomake yum自動選擇
libtool yum自動選擇
cmake yum自動選擇
openssl-devel yum自動選擇
ncurses-devel yum自動選擇
gcc* yum自動選擇

4.2、安裝依賴軟件apache

yum install autoconfautomake libtool cmake網絡

yum install openssl-develapp

yum install ncurses-develmaven

yum install gcc*oop

4.2、安裝maventhis

maven解析到安裝目錄,而後配置環境變量google

MAVEN_HOME=/home/bdata/software/apache-maven-3.3.1url

PATH=.:$MAVEN_HOME/bin

 

設置maven配置文件(settings.xml

本例設置以下:

<?xml version="1.0" encoding="UTF-8"?>

 

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"

          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

 

  <!-- <localRepository>D:\Program Files\JavaSoft\apache-maven-3.1.0\repository</localRepository> -->

  <pluginGroups>  

  </pluginGroups>

  <proxies>

  </proxies>

  <servers>

       <server>

              <id>releases</id>

              <username>admin</username>

              <password>admin123</password>

       </server>

       <server>

              <id>snapshots</id>

              <username>admin</username>

              <password>admin123</password>

       </server>

  </servers>

  <mirrors>  

        <mirror>

      <id>nexts-central</id>

      <url>http://192.168.50.213:8081/nexus/content/repositories/central/</url>

      <mirrorOf>central</mirrorOf>

    </mirror>

       <mirror>

      <id>nexts-apache-snapshot</id>

      <url>http://192.168.50.213:8081/nexus/content/repositories/apache-snapshots/</url>

      <mirrorOf>apache-snapshots</mirrorOf>

    </mirror>

       <mirror>

      <id>nexts-codehaus-snapshots</id>

      <url>http://192.168.50.213:8081/nexus/content/repositories/codehaus-snapshots/</url>

      <mirrorOf>codehaus-snapshots</mirrorOf>

    </mirror>

       <mirror>

      <id>nexts-thirdparty</id>

      <url>http://192.168.50.213:8081/nexus/content/repositories/thirdparty/</url>

      <mirrorOf>thirdparty</mirrorOf>

    </mirror>      

       <mirror>

              <id>nexus-osc</id>

              <mirrorOf>*</mirrorOf>

              <name>Nexus osc</name>

              <url>http://maven.oschina.net/content/groups/public/</url>

       </mirror>

       <mirror>

              <id>osc_thirdparty</id>

              <mirrorOf>thirdparty</mirrorOf>

              <url>http://maven.oschina.net/content/repositories/thirdparty/</url>

       </mirror>

  </mirrors>

  <profiles>

    <profile>

      <!--this profile will allow snapshots to be searched when activated-->

      <id>nexus</id>

      <repositories>        

              <repository>

                     <id>nexts-central</id>

                     <name>local private nexus</name>

                     <url>http://192.168.50.213:8081/nexus/content/groups/public</url>

                     <releases>

                            <enabled>true</enabled>

                     </releases>

                     <snapshots>

                            <enabled>false</enabled>

                     </snapshots>

              </repository>

             

              <repository>

                     <id>nexus thirdparty</id>

                     <name>local private thirdparty</name>

                     <url>http://192.168.50.213:8081/nexus/content/repositories/thirdparty</url>

                     <releases>

                            <enabled>true</enabled>

                     </releases>

                     <snapshots>

                            <enabled>true</enabled>

                     </snapshots>

              </repository>

             

              <repository>

                     <id>nexus-osc</id>

                     <name>Nexus osc</name>

                     <url>http://maven.oschina.net/content/groups/public/</url>

                     <releases>

                            <enabled>true</enabled>

                     </releases>

                     <snapshots>

                            <enabled>true</enabled>

                     </snapshots>

              </repository>

             

              <repository>

                     <id>osc_thirdparty</id>

                     <mirrorOf>thirdparty</mirrorOf>

                     <url>http://maven.oschina.net/content/repositories/thirdparty/</url>

                     <releases>

                            <enabled>true</enabled>

                     </releases>

                     <snapshots>

                            <enabled>true</enabled>

                     </snapshots>

              </repository>

      </repositories>

        

      <pluginRepositories>

              <pluginRepository>

                     <id>nexus</id>

                     <name>local private nexus</name>

                     <url>http://192.168.50.213:8081/nexus/content/groups/public</url>

                     <releases>

                            <enabled>true</enabled>

                     </releases>

                     <snapshots>

                            <enabled>false</enabled>

                     </snapshots>

              </pluginRepository>

             

              <pluginRepository>

                     <id>nexus-osc</id>

                     <name>local private nexus</name>

                     <url>http://maven.oschina.net/content/groups/public/</url>

                     <releases>

                            <enabled>true</enabled>

                     </releases>

                     <snapshots>

                            <enabled>false</enabled>

                     </snapshots>

              </pluginRepository>

      </pluginRepositories>

       </profile>

      

       <activeProfiles> 

              <activeProfile>nexus</activeProfile> 

       </activeProfiles> 

  </profiles>

</settings>

4.3、安裝probuf

下載列表:https://github.com/google/protobuf/tags

下載地址(2.5.0版本)      https://s3.amazonaws.com/github-cloud/releases/23357588/09f5cfca-d24e-11e4-9840-20d894b9ee09.gz?response-content-disposition=attachment%3B%20filename%3Dprotobuf-2.5.0.tar.gz&response-content-type=application/octet-stream&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1427785708&Signature=0FSZzyD%2BCgxJqn9dSnZj4tmCKCw%3D

 

       #./configure

       #make

       #make check

#make install

#protoc --version

libprotoc 2.5.0

 

4.4、編譯

cd $hadoop_src_home/

mvn package -Pdist,native -DskipTests -Dtar

#編譯時間可能持續20分鐘左右,最終顯示BUILD SUCCESS說明編譯成功,能夠開始部署了。

4.4、編譯常見異常

  • 一、protobuf版本與hadoop源碼依賴版本不一致。

hadoop-2.5.0必須使用protobuf-2.5.0

  • 二、Maven編譯找不到依賴jarplugin,遠程倉庫設置不正確,致使maven沒法下載jar文件。

把有效遠程倉庫地址加入mavensettings.xml

國內穩定私服:os-china(開源中國)

國外穩定私服:maven中央倉庫(有可能由於網絡地址被屏蔽沒法下載,能夠使用代理訪問或改用國內私服)

建議搭建公司內部私服(sonatype-nexus),具體部署方案請網絡搜索

相關文章
相關標籤/搜索