1. 程式人生 > >centos6.9下編譯CDH版的Hadoop

centos6.9下編譯CDH版的Hadoop

centos6.9下CDH版本的Hadoop重新編譯

由於CDH提供的Hadoop安裝包沒有提供帶C程式訪問的介面,所以我們在使用本地庫(進行壓縮和支援c程式)時會出現問題。

編譯環境的準備

編譯需要的安裝包:

連結:https://pan.baidu.com/s/1htfW8hU5Bj6rxPN7Eap6Kw
提取碼:2ac0

準備linux環境

準備一臺虛擬機器,記憶體4G或以上,硬碟40G或以上,這裡使用的時centos6.9位的作業系統(一定要使用64位的作業系統)

虛擬機器聯網,關閉防火牆,關閉selinux

關閉防火牆命令

service iptables stop
#開機不啟動防火牆
chkconfig iptables off

關閉selinux

vi /etc/selinux/config
#註釋掉原來的SELINUX=enforcing
#新增如下語句
SELINUX=disabled
安裝jdk1.7

親測證明在編譯hadoop-2.6.0-cdh5.14.0這個版本的編譯,只能使用jdk1.7,使用1.8會報錯

解除安裝centos6.9自帶的openjdk

rpm -qa | grep java
#將顯示出來的所以openjdk全部解除安裝掉
rpm -e java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el6_8.x86_64 tzdata-java-2016j-1.el6.noarch java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el6_8.x86_64 --nodeps

上傳jdk

#建立安裝目錄
mkdir -p /export/servers
#建立上傳檔案目錄
mkdir -p /export/softwares
cd /export/softwares
#上傳jdk的安裝包到/export/softwares
tar -zxvf jdk-7u71-linux-x64.tar.gz -C ../servers/

配置環境變數

vim /etc/profile
#在末尾新增
export JAVA_HOME=/export/servers/jdk1.7.0_71
export PATH=:$JAVA_HOME/bin:$PATH
#重新整理配置
source /etc/profile
#檢查是否安裝成功
java -version
安裝maven

這裡使用maven3.x以上的版本應該都可以,不建議使用太高的版本,強烈建議使用3.0.5的版本即可

#上傳maven的安裝包到/export/softwares並解壓到/export/servers
cd /export/softwares/
tar -zxvf apache-maven-3.0.5-bin.tar.gz -C ../servers/
#配置maven的環境變數
vim /etc/profile
export MAVEN_HOME=/export/servers/apache-maven-3.0.5
export MAVEN_OPTS="-Xms4096m -Xmx4096m"
export PATH=:$MAVEN_HOME/bin:$PATH
#重新整理配置
source /etc/profile

解壓maven的倉庫,我已經下載好了的一份倉庫,用來編譯hadoop會比較快

tar -zxvf mvnrepository.tar.gz -C /export/servers/

修改maven的配置檔案,下載jar包更快

cd  /export/servers/apache-maven-3.0.5/conf
vim settings.xml
#指定本地倉庫的路徑
<localRespository>/export/servers/mavenrepo</localRespository>
#新增一個阿里雲的映象地址
<mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>
</mirror>

安裝findbugs
#下載findbugs
cd  /export/softwares
wget --no-check-certificate https://sourceforge.net/projects/findbugs/files/findbugs/1.3.9/findbugs-1.3.9.tar.gz/download -O findbugs-1.3.9.tar.gz
#解壓findbugs
tar -zxvf findbugs-1.3.9.tar.gz -C ../servers/
#配置findbugs的環境變數
vim /etc/profile
#末尾新增
export FINDBUGS_HOME=/export/servers/findbugs-1.3.9
export PATH=:$FINDBUGS_HOME/bin:$PATH
#重新整理配置
source  /etc/profile
線上安裝一些依賴包
yum install autoconf automake libtool cmake
yum install ncurses-devel
yum install openssl-devel
yum install lzo-devel zlib-devel gcc gcc-c++
#bzip2壓縮需要的依賴包
yum install -y  bzip2-devel
安裝protobuf

protobuf下載百度網盤地址

https://pan.baidu.com/s/1pJlZubT

下載之後上傳到 /export/softwares

解壓protobuf並編譯

cd  /export/softwares
tar -zxvf protobuf-2.5.0.tar.gz -C ../servers/
cd   /export/servers/protobuf-2.5.0
#編譯
./configure
make && make install

安裝snappy

snappy下載地址:

http://code.google.com/p/snappy/

cd /export/softwares/
tar -zxf snappy-1.1.1.tar.gz  -C ../servers/
cd ../servers/snappy-1.1.1/
#編譯
./configure
make && make install

下載原始碼準備編譯

原始碼下載地址為:

http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.14.0-src.tar.gz

tar -zxvf hadoop-2.6.0-cdh5.14.0-src.tar.gz -C ../servers/
cd  /export/servers/hadoop-2.6.0-cdh5.14.0
#編譯支援snappy壓縮
mvn package -DskipTests -Pdist,native -Dtar -Drequire.snappy -e -X
#等待編譯完成
#編譯完成之後,在/export/servers/hadoop-2.6.0-cdh5.14.0/hadoop-dist/target下有相應的。tar.gz的壓縮包
常見的編譯錯誤

如果編譯時候出現這個錯誤:

An Ant BuildException has occured: exec returned: 2

這是因為tomcat的壓縮包沒有下載完成,需要自己下載一個對應版本的apache-tomcat-6.0.53.tar.gz的壓縮包放到指定路徑下面去即可
這兩個路徑下面需要放上這個tomcat的 壓縮包

/export/servers/hadoop-2.6.0-cdh5.14.0/hadoop-hdfs-project/hadoop-hdfs-httpfs/downloads
/export/servers/hadoop-2.6.0-cdh5.14.0/hadoop-common-project/hadoop-kms/downloads