snappy的安装

hive经常使用snappy的压缩格式,但是hadoop本身是并不支持snappy格式的压缩的(可以通过hadoop checknative指令查看),想要hadoop支持snappy类型的压缩则需要编译hadoop对应版本的源码,编译成功后把native文件copy到hadoop的目录下,重启hadoop即可。想象的挺好的,but正在的大坑在编译的阶段,弄了两天才弄好下面是我的一些总结:
首先说一些坑:
编译环境的安装,否则无法编译
yum install -y gcc gcc-c++ make cmake
protobuf必须是2.5.0版本,snappy也要编译我的snappy是在官网下载的1.1.3版本
protobuf、snappy都要编译安装,指令顺序如下:
./configure
make
make install
编译hadoop需要依赖一些别的软件:
protocolbuf、ant
没有安装这些在编译的时候会报错: Failed to execute goal org.apache.hadoop:hadoop-maven-plugins:2.4.0:protoc (compile-protoc) on project hadoop-common: org.apache.maven.plugin.MojoExecutionException: ‘protoc --version’ did not return a version -> [Help 1]

ant安装很简单,下载tar包后配置环境变量即可
最终编译hadoop源码即可,编译指令使用这个,网上版本比较多,这个是正确的:
cd hadoop-2.4.0-src/
mvn clean package -Pdist,native -DskipTests -Dtar -Drequire.snappy -Dbundle.snappy -Dsnappy.lib=/usr/local/lib -Dmaven.javadoc.skip=true
编译过程中网络不佳的话会出现下载假死(卡在那不动了),或者可能出现某个文件下载超时,这时就ctrl+c再重来一遍吧!整个编译过程比较慢,大概编译1个小时(网络好的话可能快一点)。
这篇文章写得挺不错,我就是结合这篇文章解决的问题,大家有需要的话可以参考下

你可能感兴趣的:(hadoop,hive)