snappy是google的一个开源的压缩库,在合理的压缩率的前提下提供了提供了一个很高的压缩/解压的速度,利用单颗Intel Corei7处理器内核处理达到每秒处理250MB~500MB的数据流。snappy压缩在Hadoop中不是自带的,本文介绍在hadoop2.0中安装和配置snappy压缩,使hadoop2.0支持snappy压缩。
相关阅读:
Ubuntu 13.04上搭建Hadoop环境
Ubuntu 12.10 +Hadoop 1.2.1版本集群配置
可以从https://code.google.com/p/snappy/下载源码,通过编译源码安装
tar -zxvf snappy-1.1.1.tar.gz
cd snappy-1.1.1
./configure
make
sudo make install
也可以直接用yum来安装
sudo yum install snappy snappy-devel
2 安装hadoop-snappy包
从https://github.com/electrum/hadoop-snappy下载hadoop-snappy包hadoop-snappy-master.zip
解压
unzip hadoop-snappy-master.zip
解压后是一个hadoop-snappy-master文件夹
编译
cd hadoop-snappy-master/
mvn package -Dsnappy.prefix=/usr/local
注意-Dsnappy.prefix是设置你的snappy安装的目录,默认是/usr/local
编译后把本地库文件和jar包(编译后可能已经打在一个压缩包里,需要先解压)拷贝到相应的目录
tar -zxvf hadoop-snappy-0.0.1-SNAPSHOT.tar.gz
cp-r hadoop-snappy-0.0.1-SNAPSHOT/lib/* $HADOOP_HOME/lib
Snappy 0.0.1-SNAPSHOT/目录包含本地库和hadoop-snappy-0.0.1-SNAPSHOT.jar包,都需要拷贝到相应的目录。
3 修改hadoop配置文件core-site.xml
<property>
<name>io.compression.codecs</name>
<value>
org.apache.hadoop.io.compress.GzipCodec,
org.apache.hadoop.io.compress.DefaultCodec,
org.apache.hadoop.io.compress.BZip2Codec,
org.apache.hadoop.io.compress.SnappyCodec
</value>
</property>
4 重启hadoop集群
这样,我们hadoop服务器上的hadoop snappy就安装成功了。
5 实战tips
在hadoop2.0中,把hadoop-snappy-0.0.1-SNAPSHOT.jar包拷贝到$HADOOP_HOME/share/hadoop/mapreduce/lib/或者$HADOOP_HOME/share/hadoop/mapreduce/目录下,不需要重启hadoop集群。
hadoop服务器的每台机器都需要安装和配置。
hadoop客户机snappy的安装和配置的方法与hadoop服务器一样。