編譯hadoop2.6.0 cdh 5.4.5 集成snappy壓縮
原文地址:http://www.cnblogs.com/qiaoyihang/p/6995146.html
1、下載源碼:http://archive-primary.cloudera.com/cdh5/cdh/5/
2、準備編譯環境
a、安裝maven
b、安裝protobuffer
./configure --prefix=/usr/local/protobuf
註意安裝編譯所需要的依賴包
sudo yum install gcc-c++
sudo yum -y install cmake
sudo yum -y install zlib
sudo yum -y install openssl-devel
老流程:
config > make >make check >make install
c、配置環境變量:
#protobuf
export PATH=$PATH:/usr/local/protobuf/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/protobuf/lib
3、安裝snappy
./configure --prefix=/usr/local/snappy
config > make >make check >make install
4、編譯hadoop 集成snappy
export MAVEN_OPTS="-Xms256m -Xmx512m" mvn package -Pdist,native -DskipTests -Dtar -Dbundle.snappy -Dsnappy.lib=/usr/local/snappy/lib
註意:
編譯2.6 需要1.7的JDK
編譯完成位置:/home/hadoop/hadoop-2.6.0-cdh5.4.5/hadoop-dist/target
本地庫裏面集成了snappy
檢查本地庫加載
hadoop checknative -a
查看安裝的基本信息
file ./*
編譯中遇到的一個小問題:
問題:編譯的時候配置了遠程倉庫,但是還是會讀取中央倉庫
<!--配置私服鏡像--> <mirrors> <mirror> <!--This sends everything else to /public --> <id>nexus</id> <mirrorOf>*</mirrorOf> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> </mirror> <mirror> <mirrors>
該例中<mirrorOf>的值為星號,表示該配置是所有Maven倉庫的鏡像,任何對於遠程倉庫的請求都會被轉至
http://maven.aliyun.com/nexus/content/groups/public/
如果該鏡像倉庫需要認證,則配置一個id為nexus的認證信息即可。
需要註意的是,由於鏡像倉庫完全屏蔽了被鏡像倉庫,當鏡像倉庫不穩定或者停止服務的時候,Maven仍將無法訪問被鏡像倉庫,因而將無法下載構件。
解決辦法:把*改為central
編譯hadoop2.6.0 cdh 5.4.5 集成snappy壓縮