1. 程式人生 > >CDH版hadoop2.6.0-cdh5.7.0原始碼編譯

CDH版hadoop2.6.0-cdh5.7.0原始碼編譯

前置要求

  • hadoop2.6.0-cdh5.7.0 原始碼包 下載
  • jdk 1.7+ 下載
  • maven 3.0+ 下載
  • protobuf 2.5+ 下載

安裝依賴庫

$>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
     	[
    [email protected]
    app]#
  • 配置環境變數
     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

成功!!