奈學教育:Hadoop原始碼編譯全流程分享
首先準備一個hadoop原始碼包,我選擇的hadoop版本是:hadoop-2.7.7-src.tar.gz,在hadoop-2.7.7的原始碼包的根目錄下有一個文件叫做BUILDING.txt,這其中說明了編譯hadoop所需要的一些編譯環境相關的東西。不同的hadoop版本的要求都不一樣,對應的版本參照BUILDING.txt
安裝對應軟體(必須聯網)
安裝openssl-devel
yum -y install svn
yum -y install autoconf automake libtool cmake zlib-devel lzo-devel
yum -y install ncurses-devel
yum -y install openssl-devel
yum -y install zlib1g-dev libssl-dev
安裝gcc
檢測gcc是否已經安裝:gcc -v
如果最後一行出現gcc版本資訊日誌,表示已經安裝成功過了
命令安裝:
yum install -y gcc
安裝gcc-c++
命令安裝:yum -y install gcc-c++
安裝JDK
安裝包:jdk-7u80-linux-x64.tar.gz
解壓安裝:tar -zxvf /root/jdk-7u80-linux-x64.tar.gz -C /root/apps/
配置環境變數:
vi /etc/profile
加以下內容:
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
環境變數生效:source /etc/profile
檢查安裝是否成功:java -version
有公開課免費試聽哦!
安裝Maven
安裝包:apache-maven-3.5.3-bin.tar.gz
解壓安裝:tar -zxvf /root/apache-maven-3.5.3-bin.tar.gz -C /root/apps/
修改配置檔案:
進入到maven的conf目錄:cd /root/apps/apache-maven-3.5.3/conf
修改配置檔案settings.xml:
在配置檔案的中部找到localRepository這個標籤,是被註釋掉的,將其放出 來自己新增路徑:
<localRepository>
/root/mavenlocalrepo/
</localRepository>
配置環境變數:
vi /etc/profile
追加一下內容:
export M2_HOME=/root/apps/apache-maven-3.5.3
export PATH=$PATH:$M2_HOME/bin
環境變數生效:source /etc/profile
檢查安裝是否成功:mvn -version
設定maven倉庫:鑑於遠端maven倉庫的網路連線不穩定,可以設定成阿里的
安裝Ant
安裝包:apache-ant-1.9.9-bin.tar.gz
解壓安裝:tar -zxvf /root/apache-ant-1.9.9-bin.tar.gz -C /root/apps/配置環境變數:
vi /etc/profile
加以下內容:
export ANT_HOME=/root/apps/apache-ant-1.9.9
export PATH=$PATH:$ANT_HOME/bin
環境變數生效:source /etc/profile
檢查安裝是否成功:ant -version
安裝FindBugs
安裝包:findbugs-3.0.0.tar.gz
解壓安裝:tar -zxvf /root/findbugs-3.0.0.tar.gz -C /root/apps/
配置環境變數:
vi /etc/profile
加以下內容:
export FINDBUGS_HOME=/root/apps/findbugs-3.0.0
export PATH=$PATH:$FINDBUGS_HOME/bin
環境變數生效:source /etc/profile
檢查安裝是否成功:findbugs -version
安裝make
先檢測是否安裝:
make -version
沒有安裝使用yum安裝:
yum install -y make
安裝Cmake
安裝包:cmake-2.8.12.2.tar.gz
解壓安裝:tar -zxvf /root/cmake-2.8.12.2.tar.gz -C /root/apps/
編譯安裝:
進入根目錄:cd /root/apps/cmake-2.8.12.2/
依次執行一下命令(比較耗時):
./bootstrap
gmake & gmake install
檢查安裝是否成功:cmake -version
安裝Protobuf
安裝包:protobuf-2.5.0.tar.gz
解壓安裝:tar -zxvf /root/protobuf-2.5.0.tar.gz -C /root/apps/
編譯安裝:
首先進入到根目錄:cd /root/apps/protobuf-2.5.0/
然後依次執行以下命令(比較耗時):
./configure --prefix=/root/apps/protobuf # 表示安裝到這個目錄
make
make check
make install
配置環境變數:
vi /etc/profile
加以下內容:
目錄就是./configure
export PROTOBUF_HOME=/root/apps/protobuf
export PATH=$PATH:$PROTOBUF_HOME/bin
環境變數生效:source /etc/profile
檢查安裝是否成功:protoc -version
安裝Snappy
安裝包:snappy-1.1.1.tar.gz
解壓安裝:tar -zxvf /root/snappy-1.1.1.tar.gz -C /root/apps/
編譯安裝:
cd ~/apps/snappy-1.1.1/
然後依次執行以下命令(比較耗時):
./configure --prefix=/root/apps/protobuf # 表示安裝到這個目錄
make
make check
make install
檢視sanppy lib庫:ls -lh /usr/local/lib |grep snappy
編譯Hadoop
步驟一
解壓hadoop原始碼包tar -zxvf /root/hadoop-2.7.7-src.tar.gz -C /root/apps/
步驟二
在編譯之前防止 java.lang.OutOfMemoryError: Java heap space 堆疊問題,在centos系統中執行命令
export MAVEN_OPTS="-Xms256m -Xmx512m"
步驟三
切換工作目錄到hadoop-2.7.7根目錄下cd /root/apps/hadoop-2.7.7-src
步驟四
執行編譯:
mvn clean package -Pdist,native -DskipTests -Dtar -Dsnappy.lib=/usr/local/lib - Dbundle.snappy -Drequire.openssl
如果中途編譯失敗,請重複執行這個命令,直到成功。如果編譯過程中,發現卡住了,請停止這個命令,然後重新再執行一遍就可以了。
步驟五
靜靜等待編譯……. 第一次編譯預估一個小時左右,最後編譯成功,jar包所在位置於/root/apps/hadoop-2.7.7-src/hadoop-dist/target
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69976011/viewspace-2695903/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Spring 6 原始碼編譯和高效閱讀原始碼技巧分享Spring原始碼編譯
- 深入剖析Vue原始碼 - 例項掛載,編譯流程Vue原始碼編譯
- 好資源分享 奈學教育《大資料架構師》大資料架構
- hadoop編譯—+2.x編譯Hadoop編譯
- cesium原始碼編譯除錯及呼叫全過程原始碼編譯除錯
- Kubernetes原始碼編譯原始碼編譯
- Spring原始碼編譯Spring原始碼編譯
- Hadoop - macOS 上編譯 Hadoop 3.2.1HadoopMac編譯
- PostgreSQL原始碼學習 win10原始碼編譯安裝SQL原始碼Win10編譯
- Kubernetes原始碼學習之一:下載和編譯原始碼原始碼編譯
- 輕鬆學會原始碼編譯Vim 8.0原始碼編譯
- FFmpeg學習之一(FFmpeg原始碼編譯)原始碼編譯
- hadoop原始碼_hdfs啟動流程_2_DataNodeHadoop原始碼
- 原始碼編譯Vim 8原始碼編譯
- MongoDB(0)- 原始碼編譯MongoDB原始碼編譯
- XCode 編譯 PAG 原始碼XCode編譯原始碼
- Docker編譯Azerothcore原始碼Docker編譯原始碼
- 如何學習 PHP 原始碼 – 從編譯開始PHP原始碼編譯
- Hadoop學習——Client原始碼分析Hadoopclient原始碼
- A40i &T3 全原始碼編譯-ARM Linux核心在PC Linux的編譯方法原始碼編譯Linux
- Xcode編譯流程XCode編譯
- MacOS X 編譯Android原始碼Mac編譯Android原始碼
- 原始碼編譯 apache2.4原始碼編譯Apache
- WebRTC研究 (一) 編譯原始碼Web編譯原始碼
- 原始碼編譯安裝Redis原始碼編譯Redis
- nvme driver 原始碼修改、編譯原始碼編譯
- Android FrameWork 之原始碼編譯AndroidFramework原始碼編譯
- 龍芯原始碼編譯MySQL原始碼編譯MySql
- Swift原始碼專案編譯Swift原始碼編譯
- hadoop原始碼_hdfs啟動流程_3_心跳機制Hadoop原始碼
- Spring原始碼學習01:IntelliJ IDEA2019.3編譯Spring5.3.x原始碼Spring原始碼IntelliJIdea編譯
- Dubbo原始碼之動態編譯原始碼編譯
- android 反編譯APK取原始碼。Android編譯APK原始碼
- 原始碼編譯安裝的原理原始碼編譯
- 【轉】MySQL原始碼編譯安裝MySql原始碼編譯
- openssl原始碼編譯及配置方法原始碼編譯
- Vue3原始碼分析——編譯模組和編譯器Vue原始碼編譯
- 寫Java這麼久,JDK原始碼編譯過沒?編譯JDK原始碼踩坑紀實JavaJDK原始碼編譯