首页 > 代码库 > 编译hadoop2.6.0 cdh 5.4.5 集成snappy压缩

编译hadoop2.6.0 cdh 5.4.5 集成snappy压缩

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压缩