hadoop-3.1.2 Linux 源碼編譯記錄

hadoop-3.1.2 源碼編譯記錄

注: 之前嘗試過win環境的編譯,但是需要安裝的項太多太麻煩,所以換成linux編譯,方便快捷
HOME=/home/compile/software
windows編譯的請轉 https://blog.csdn.net/miracle_8/article/details/105198399

1. 前期依賴項: BUILDING.txt

* Unix System
* JDK 1.8
* Maven 3.3 or later 
* ProtocolBuffer 2.5.0
* CMake 3.1 or newer (if compiling native code)
* Zlib devel (if compiling native code)
* openssl devel (if compiling native hadoop-pipes and to get the best HDFS encryption performance)
* 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): 不需要管

依賴項調整配置在這裏插入圖片描述

1. maven: 需要重新配置倉庫地址  $HOME/apache-maven-3.6.3/conf  
	settings.xml: 需要配置成可用的倉庫地址
2. ProtocolBuffer:
下載的是源碼 需要編譯 執行步驟: ./configure --prefix=$HOME/protobuf-bin => make && make install => 驗證$HOME/protobuf-bin目錄下是否存在文件
需要將安裝後的目錄加入到環境變量中, 統一建下圖
3. CMake: 
下載的是編譯後的文件, 直接加入到環境變量中即可

4. Zlib/Zlib devel:
下載的是源碼 需要編譯 執行步驟: ./configure --prefix=$HOME/zlib-bin => make && make install => 驗證$HOME/zlib-bin目錄下是否存在文件
需要將安裝後的目錄加入到環境變量中, 統一建下圖

5. openssl devel: -1.1.1e
下載的是源碼 需要編譯 執行步驟: ./config --prefix=$HOME/openssl-bin => make && make install => 驗證$HOME/openssl-bin目錄下是否存在文件
需要將安裝後的目錄加入到環境變量中, 統一建下圖
步驟:  vim ~/.bashrc => source ~/.bashrc 
export JAVA_HOME=$HOME/jdk
export MAVEN_HOME=$HOME/maven
export CMAKE_HOME=$HOME/cmake
export PROTOBUF_HOME=$HOME/protobuf
export ZLIB_HOME=$HOME/zlib-bin
export OPENSSL_HOME=$HOME/openssl-bin
PATH=$OPENSSL_HOME:$ZLIB_HOME:$CMAKE_HOME/bin:$PROTOBUF_HOME/bin:$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATH
export PKG_CONFIG_PATH=$HOME/protobuf/lib/pkgconfig/
步驟: vim /etc/ld.so.conf  => ldconfig => ldconfig -p(驗證)
include ld.so.conf.d/*.conf
/home/compile/software/protobuf/lib/
/home/compile/software/zlib-bin/lib
/usr/lib64

2. 安裝命令

依賴安裝之後 進入hadoop的初級目錄 執行命令: **mvn clean compile package -Pdist,native -DskipTests -Dtar -Dmaven.javadoc.skip=true**
安裝過程基本應該沒有問題 除非是依賴項沒有安裝正確
編譯結束後所有的內容都在 $HOME/hadoop-dist/target 目錄下

在這裏插入圖片描述

編譯過程中出現的問題:

  1. 提示pthreads查找不到: 最終是因爲zlib或openssl採用了默認的,需要卸載之前的並重新安裝新的依賴, 提示的錯誤內容基本都是CMake報錯,可以稍微瞭解一下cmake原理
yum remove openssl  yum remove zlib 

可能有用的參考文檔
https://www.cnblogs.com/cynchanpin/p/7236687.html
https://blog.csdn.net/youresshui/article/details/46891599
https://centos.pkgs.org/7/centos-x86_64/zlib-devel-1.2.7-18.el7.x86_64.rpm.html
https://blog.csdn.net/weixin_34248849/article/details/90283435

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章