1. 程式人生 > >Hadoop自己編譯Hadoop安裝包

Hadoop自己編譯Hadoop安裝包

span per blog code 文件中 centos apps 是我 bootstrap

CentOS-6.7 編譯 hadoop-2.6.5

(只需輸入紅色命令即可)

目錄

1、閱讀編譯文檔 .............................................................................................................................1

2、準備編譯環境 .............................................................................................................................2

3、安裝 gcc .....................................................................................................................................2

4、安裝 gcc-c++ ..............................................................................................................................2

5、安裝 make ..................................................................................................................................3

6、安裝 maven(必須) ................................................................................................................. 3

7、安裝 jdk(必須) ........................................................................................................................4

8、安裝 ant(重要) ........................................................................................................................4

9、安裝 findbugs(可選,最好裝) ..................................................................................................5

10、安裝 cmake(重要) .................................................................................................................5

11、安裝 protobuf(重要) ..............................................................................................................5

12、安裝 Snappy .............................................................................................................................6

13、編譯 hadoop .............................................................................................................................6

1 、 閱讀編譯文檔

  (1)準備一個 hadoop 源碼包,我選擇的 hadoop 版本是:hadoop-2.6.5-src.tar.gz,在hadoop-2.6.5 的源碼包的根目錄下有一個文檔叫做 BUILDING.txt,這其中說明了編譯

hadoop 所需要的一些編譯環境相關的東西。不同的 hadoop 版本的要求都不一樣。對應的版本參照 BUILDING.txt

    請仔細閱讀:

    Requirements:

    * Unix System

    * JDK 1.6+

    * Maven 3.0 or later

    * 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

    * Zlib devel (if compiling native code)

    * openssl devel ( if compiling native hadoop-pipes )

    * Internet connection for first build (to fetch all Maven and Hadoop dependencies)

  (2)對應以上需求,我們準備好所要求版本的這些軟件

      1. 準備一臺 Unix 類型操作系統,在這裏我們選用的是 CentOS-6.7,初次編譯要求必須

        聯網,切記

      以下這些東西都是需要的,詳細安裝在下面,這裏只介紹我準備這些軟件所選擇的版本

      2. 安裝 openssl-devel

      3. 安裝 gcc

      4. 安裝 gcc-c++

      5. JDK:jdk-7u80-linux-x64.tar.gz

      6. Maven:apache-maven-3.3.3-bin.tar.gz

      7. Ant:apache-ant-1.9.4-bin.tar.gz

      8. FindBugs:findbugs-3.0.0.tar.gz

      9. Cmake:cmake-2.8.12.2.tar.gz

      10. Protobuf:protobuf-2.5.0.tar.gz

      11. Snappy:snappy-1.1.1.tar.gz

2 、 準備編譯環境

  安裝以下軟件:

  yum -y install svn

  yum -y install autoconf automake libtool cmake

  yum -y install ncurses-devel

  yum -y install openssl-devel

3 、 安裝 gcc

  先使用命令檢測一下看 gcc 是否已經安裝過了

  [root@compile_hadoop soft]# gcc -v

  gcc version 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)

  如果最後一行出現如上的 gcc 版本信息日誌,表示已經安裝成功過了。

  不然使用命令安裝:

  yum install gcc

4 、 安裝 gcc-c++

  直接使用命令安裝:yum install gcc-c++

5 、 安裝 make

  先檢測以下系統是否安裝了 make 工具:make -version

  技術分享圖片

  如果沒有安裝過 make,那麽請使用命令安裝:yum install -y make

6 、 安裝 maven (必須)

  (1) 解壓

    tar -zxvf /root/soft/apache-maven-3.3.3-bin.tar.gz -C /root/apps/

  (2)修改配置文件(如果需要更改默認的 maven 倉庫路徑的話)

    1. 進入到 maven 安裝包的 conf 目錄:/root/apps/apache-maven-3.3.3/conf

    2. 修改配置文件 settings.xml

      技術分享圖片

    在配置文件的中部找到 localRepository 這個標簽,它本來是註釋了的,並且有一個默認倉庫路徑,我們最好自己設置一個,

    所以我自己加了一個,我的路徑是:<localRepository>/root/mavenrepo/</localRepository>

    3. 配置環境變量

      export M2_HOME=/root/apps/apache-maven-3.3.3

      export PATH=$PATH:$M2_HOME/bin

    4. 檢測是否成功

      source /etc/profile

      mvn -version

      技術分享圖片

7 、 安裝 jdk (必須)

  1. 解壓

    tar -zxvf /root/soft/jdk-7u80-linux-x64.tar.gz -C /root/apps/

  2. 配置環境變量

    export JAVA_HOME=/root/apps/jdk1.7.0_80

    export PATH=$PATH:$JAVA_HOME/bin

    export CLASSPATH=.:/root/apps/jdk1.7.0_80/lib/dt.jar:/root/apps/jdk1.7.0_80/lib/tools.jar

  3. 檢測是否安裝

    source /etc/profile

    java -version

    技術分享圖片

8 、 安裝 ant (重要)

  1. 解壓

    tar -zxvf /root/soft/apache-ant-1.9.4-bin.tar.gz -C /root/apps/

  2. 配置環境變量

    export ANT_HOME=/root/apps/apache-ant-1.9.4

    export PATH=$PATH:$ANT_HOME/bin

  3. 檢測是否安裝成功

    source /etc/profile

    ant -version

    技術分享圖片

9 、 安裝 findbugs (可選 ,最好裝 )

  1. 解壓

    tar -zxvf /root/soft/findbugs-3.0.0.tar.gz -C /root/apps/

  2. 配置環境變量

    export FINDBUGS_HOME=/root/apps/findbugs-3.0.0

    export PATH=$PATH:$FINDBUGS_HOME/bin

  3. 檢測是否安裝成功

    [root@hadoop apps]# findbugs -version

    技術分享圖片

10 、 安裝 cmake (重要)

  1. 解壓

    tar -zxvf /root/soft/cmake-2.8.12.2.tar.gz -C /root/apps/

  2. 安裝

    首先進入到根目錄:

    cd /root/apps/cmake-2.8.12.2/

    然後依次執行以下命令:

    ./bootstrap

    gmake & gmake install

  3. 檢測是否安裝成功

    cmake -version

    技術分享圖片

11 、 安裝 protobuf (重要)

  1. 解壓

    tar -zxvf /root/soft/protobuf-2.5.0.tar.gz -C /root/apps/

  2. 安裝

    首先進入到根目錄:

    cd /root/apps/protobuf-2.5.0/

    然後依次執行以下命令:

    ./configure --prefix=/root/apps/protobuf (表示安裝到這個目錄)

    make

    make check

    make install

  3. 配置環境變量

    export PROTOBUF_HOME=/root/apps/protobuf

    export PATH=$PATH:$PROTOBUF_HOME/bin

  註意:PROTOBUF_HOME 就是我們在執行 configure 命令的時候指定的目錄

  4. 檢測是否安裝成功

    [root@hadoop ~]# protoc --version

    技術分享圖片

12 、 安裝 Snappy

  1. 使用 root 用戶安裝 Snappy:

    tar -zxvf /root/soft/snappy-1.1.1.tar.gz -C /root/apps/

  2. 編譯安裝:

    cd snappy-1.1.1/

    ./configure

    make

    make install

  3. 查看 snappy 庫文件

    ls -lh /usr/local/lib |grep snappy

    技術分享圖片

13 、 編譯 hadoop

  1. 解壓 hadoop 源碼包

    tar -zxvf /root/soft/hadoop-2.6.5-src.tar.gz -C /root/apps/

  2. 在編譯之前防止 java.lang.OutOfMemoryError: Java heap space 堆棧問題,在 centos 系

    統中執行命令:export MAVEN_OPTS="-Xms256m -Xmx512m"

  3. 進入到源碼包根目錄下

    cd /root/apps/hadoop-2.6.5-src

  4. 執行命令編譯

    Create binary distribution with native code and with documentation:

    mvn package -Pdist,native,docs -DskipTests –Dtar

  如果中途編譯失敗,並且不要文檔的話,請使用這個命令:

    mvn clean package -Pdist,native -DskipTests -Dtar -Dsnappy.lib=/usr/local/lib -Dbundle.snappy -Drequire.openssl

  PS :tar dist 表示用 maven 項目管理工具對 hadoop 進行編譯,編譯好了之後會打成 tar.gz包放到 hadoop-dist 目錄下,

    nativedocs 表示編譯出來會編譯出來本地庫,並且把文檔打包到該.tar.gz 文件中,skipTests 表示忽略測試

  5. 靜靜等待編譯……. 第一次編譯預估一個小時左右。

  6. 編譯成功了的話,最後的日誌信息:
  [INFO] Reactor Summary:
  [INFO]
  [INFO] Apache Hadoop Main ................................. SUCCESS [05:52 min]
  [INFO] Apache Hadoop Project POM .......................... SUCCESS [02:23 min]
  [INFO] Apache Hadoop Annotations .......................... SUCCESS [01:11 min]
  [INFO] Apache Hadoop Assemblies ........................... SUCCESS [ 0.267 s]
  [INFO] Apache Hadoop Project Dist POM ..................... SUCCESS [01:08 min]
  [INFO] Apache Hadoop Maven Plugins ........................ SUCCESS [01:13 min]
  [INFO] Apache Hadoop MiniKDC .............................. SUCCESS [06:36 min]
  [INFO] Apache Hadoop Auth ................................. SUCCESS [04:32 min]
  [INFO] Apache Hadoop Auth Examples ........................ SUCCESS [ 22.255 s]
  [INFO] Apache Hadoop Common ............................... SUCCESS [08:12 min]
  [INFO] Apache Hadoop NFS .................................. SUCCESS [ 8.060 s]
  [INFO] Apache Hadoop KMS .................................. SUCCESS [01:37 min]
  [INFO] Apache Hadoop Common Project ....................... SUCCESS [ 0.039 s]
  [INFO] Apache Hadoop HDFS ................................. SUCCESS [05:54 min]
  [INFO] Apache Hadoop HttpFS ............................... SUCCESS [01:24 min]
  [INFO] Apache Hadoop HDFS BookKeeper Journal .............. SUCCESS [01:11 min]
  [INFO] Apache Hadoop HDFS-NFS ............................. SUCCESS [ 4.370 s]
  [INFO] Apache Hadoop HDFS Project ......................... SUCCESS [ 0.048 s]
  [INFO] hadoop-yarn ........................................ SUCCESS [ 0.040 s]
  [INFO] hadoop-yarn-api .................................... SUCCESS [01:26 min]
  [INFO] hadoop-yarn-common ................................. SUCCESS [02:11 min]
  [INFO] hadoop-yarn-server ................................. SUCCESS [ 0.048 s]
  [INFO] hadoop-yarn-server-common .......................... SUCCESS [ 32.832 s]
  [INFO] hadoop-yarn-server-nodemanager ..................... SUCCESS [03:11 min]
  [INFO] hadoop-yarn-server-web-proxy ....................... SUCCESS [ 2.603 s]
  [INFO] hadoop-yarn-server-applicationhistoryservice ....... SUCCESS [ 6.006 s]
  [INFO] hadoop-yarn-server-resourcemanager ................. SUCCESS [ 19.331 s]
  [INFO] hadoop-yarn-server-tests ........................... SUCCESS [ 5.008 s]
  [INFO] hadoop-yarn-client ................................. SUCCESS [ 7.812 s]
  [INFO] hadoop-yarn-applications ........................... SUCCESS [ 0.049 s]
  [INFO] hadoop-yarn-applications-distributedshell .......... SUCCESS [ 2.211 s]
  [INFO] hadoop-yarn-applications-unmanaged-am-launcher ..... SUCCESS [ 1.773 s]
  [INFO] hadoop-yarn-site ................................... SUCCESS [ 0.033 s]
  [INFO] hadoop-yarn-registry ............................... SUCCESS [ 4.927 s]
  [INFO] hadoop-yarn-project ................................ SUCCESS [ 2.988 s]
  [INFO] hadoop-mapreduce-client ............................ SUCCESS [ 0.052 s]
  [INFO] hadoop-mapreduce-client-core ....................... SUCCESS [ 22.567 s]
  [INFO] hadoop-mapreduce-client-common ..................... SUCCESS [ 16.208 s]
  [INFO] hadoop-mapreduce-client-shuffle .................... SUCCESS [ 4.122 s]
  [INFO] hadoop-mapreduce-client-app ........................ SUCCESS [ 9.984 s]
  [INFO] hadoop-mapreduce-client-hs ......................... SUCCESS [ 7.873 s]
  [INFO] hadoop-mapreduce-client-jobclient .................. SUCCESS [ 31.351 s]
  [INFO] hadoop-mapreduce-client-hs-plugins ................. SUCCESS [ 1.769 s]
  [INFO] Apache Hadoop MapReduce Examples ................... SUCCESS [ 5.106 s]
  [INFO] hadoop-mapreduce ................................... SUCCESS [ 2.335 s]
  [INFO] Apache Hadoop MapReduce Streaming .................. SUCCESS [ 11.850 s]
  [INFO] Apache Hadoop Distributed Copy ..................... SUCCESS [ 33.553 s]
  [INFO] Apache Hadoop Archives ............................. SUCCESS [ 1.983 s]
  [INFO] Apache Hadoop Rumen ................................ SUCCESS [ 5.720 s]
  [INFO] Apache Hadoop Gridmix .............................. SUCCESS [ 4.326 s]
  [INFO] Apache Hadoop Data Join ............................ SUCCESS [ 2.572 s]
  [INFO] Apache Hadoop Ant Tasks ............................ SUCCESS [ 1.878 s]
  [INFO] Apache Hadoop Extras ............................... SUCCESS [ 2.936 s]
  [INFO] Apache Hadoop Pipes ................................ SUCCESS [ 6.255 s]
  [INFO] Apache Hadoop OpenStack support .................... SUCCESS [ 4.872 s]
  [INFO] Apache Hadoop Amazon Web Services support .......... SUCCESS [05:32 min]
  [INFO] Apache Hadoop Client ............................... SUCCESS [ 4.333 s]
  [INFO] Apache Hadoop Mini-Cluster ......................... SUCCESS [ 0.094 s]
  [INFO] Apache Hadoop Scheduler Load Simulator ............. SUCCESS [ 3.894 s]
  [INFO] Apache Hadoop Tools Dist ........................... SUCCESS [ 6.618 s]
  [INFO] Apache Hadoop Tools ................................ SUCCESS [ 0.047 s]
  [INFO] Apache Hadoop Distribution ......................... SUCCESS [ 13.077 s]
  [INFO] ------------------------------------------------------------------------
  [INFO] BUILD SUCCESS
  [INFO] ------------------------------------------------------------------------
  [INFO] Total time: 01:01 h
  [INFO] Finished at: 2016-12-31T01:43:51-08:00
  [INFO] Final Memory: 93M/395M
  [INFO] ------------------------------------------------------------------------

  7. 編譯成功之後,hadoop-2.6.5.tar.gz 位於/root/apps/hadoop-2.6.5-src/hadoop-dist/target 目錄下,這是編譯後該文件夾的狀態:

    技術分享圖片

至此,大功告成。恭喜。

Hadoop自己編譯Hadoop安裝包