1. 程式人生 > >編譯hadoop2.6.0 cdh 5.4.5 集成snappy壓縮

編譯hadoop2.6.0 cdh 5.4.5 集成snappy壓縮

編譯 lib maven倉庫 cloudera pan url 下載源碼 cloud test

原文地址: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壓縮