CDH版hadoop2.6.0-cdh5.7.0原始碼編譯
阿新 • • 發佈:2018-12-05
前置要求
安裝依賴庫
$>yum install -y svn ncurses-devel gcc* $>yum install -y openssl openssl-devel svn ncurses-devel zlib-devel libtool $>yum install -y snappy snappy-devel bzip2 bzip2-devel lzo lzo-devel lzop autoconf automake cmake
安裝JDK和配置環境變數
- 解壓
tar -zxvf jdk-7u67-linux-x64.gz -C ../app/
- 修改許可權
[[email protected] app]# ll total 4 drwxr-xr-x 8 uucp 143 4096 Jul 26 2014 jdk1.7.0_67 [[email protected] app]# chown -R root:root jdk1.7.0_67/ [[email protected] app]# ll total 4 drwxr-xr-x 8 root root 4096 Jul 26 2014 jdk1.7.0_67 [
- 配置環境變數
vi /etc/profile # 增加java環境 export JAVA_HOME=/home/hadoop/app/jdk1.7.0_67 export PATH=$JAVA_HOME/bin:$PATH #生效環境 source /etc/profile
安裝maven和配置環境變數
- 解壓
tar -zxvf apache-maven-3.6.0-bin.tar.gz -C ../app/
- 配置環境變數
vi /etc/profile # 增加maven環境 export MAVEN_HOME=/home/hadoop/app/apache-maven-3.6.0 export MAVEN_OPTS="-Xms256m -Xmx512m" export PATH=$MAVEN_HOME/bin:$PATH # 生效環境 source /etc/profile # 測試是否生效 mvn -version ```
安裝protobuf 和配置環境變數
- 解壓
tar -zxvf protobuf-2.5.0.tar.gz -C ../app/
- 進入軟體目錄執行如下命令
[[email protected] app]# cd protobuf-2.5.0/ [[email protected] protobuf-2.5.0]# ./configure --prefix=/home/hadoop/app/protobuf-2.5.0 # --prefix= 是用來待會編譯好的包放在為路徑 # 這兩步是在編譯安裝 [[email protected] protobuf-2.5.0]# make [[email protected] protobuf-2.5.0]# make install
- 修改環境變數
vi /etc/profile # 增加maven環境 export PROTOC_HOME=/home/hadoop/app/protobuf-2.5.0 export PATH=$PROTOC_HOME/bin:$PATH # 生效環境 source /etc/profile # 測試是否生效 protoc --version 出現 libprotoc 2.5.0即為安裝成功
重頭戲
首先我們先修改下maven相關內容
修改maven本地倉庫地址
<localRepository>/home/hadoop/.m2/repo</localRepository>
注意:當前使用者下 是沒有.m2 資料夾的需要手動建立
修改maven 映象 修改成阿里的映象
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
手動加入maven倉庫
因為後面編譯hadoop的時候,需要下載maven的jar包,比較多,這裡我提供一個下載好的倉庫地址
連結: https://pan.baidu.com/s/1RJDdwbcHPWNUKQ1MCQdOdQ 提取碼: p7g3 複製這段內容後開啟百度網盤手機App,操作更方便哦
下載下來之後 直接把內容解壓之後,放在本地maven倉庫,也就是之前指定的/home/hadoop/.m2/ 下面即可,解壓之後的檔名 需要和之前指定的本地倉庫地址 核對下 即可.
開始編譯
進入解壓好的hadoop的目錄下
#執行命令 開始編譯
mvn clean package -Pdist,native -DskipTests -Dtar
接下來我們要做的 就是等~~~
漫長的等待之後 ,編譯成功~~~
成功後生成的包在/hadoop-2.6.0-cdh5.7.0/hadoop-dist/target/ 目錄下
後記
因為之前編譯的時候,也是為了能讓 hadoop native支援snappy 以及 bzip2 之類的
測試下是否支援
[[email protected] bin]$ hadoop checknative
18/12/05 12:52:23 INFO bzip2.Bzip2Factory: Successfully loaded & initialized native-bzip2 library system-native
18/12/05 12:52:23 INFO zlib.ZlibFactory: Successfully loaded & initialized native-zlib library
Native library checking:
hadoop: true /home/hadoop/app/hadoop-2.6.0-cdh5.7.0/lib/native/libhadoop.so.1.0.0
zlib: true /lib64/libz.so.1
snappy: true /usr/lib64/libsnappy.so.1
lz4: true revision:99
bzip2: true /lib64/libbz2.so.1
openssl: true /usr/lib64/libcrypto.so