Hadoop2中启用snappy


Snappy是一个压缩/解压缩库。它的压缩率并非最高,但是它在保证一定压缩率情况下,压缩及解压缩速度非常快。基于以上特点,Snappy非常适合用于Hadoop MapReduce中间数据压缩。Snappy详情参见:http://code.google.com/p/snappy/。 本文将介绍如何在Hadoop2中启用Snappy压缩。

1、下载Snappy的rpm包:

http://www.rpmfind.net/linux/rpm2html/search.php?query=snappy

根据不同操作系统选择不同的版本,如x86_64 RetHat Linux选择snappy-1.0.5-1.el5.x86_64


2、安装snappy

$ sudo rpm -ivh snappy-1.0.5-1.el5.x86_64.rpm


3、找到libsnappy.so*所在位置

$ rpm -ql snappy-1.0.5-1.el5


4、将libsnappy.so.*拷贝到${HADOOP_HOME}/lib/native目录下。

如果自己维护了一套Hadoop2版本,最好将libsnappy.so.*放到hadoop-dist/lib/native目录下,并hack下hadoop-dist/pom.xml文件,使得打包时将hadoop-diste/lib/native/*拷贝到最终的lib/native目录下。


5、重启NodeManager即可。


如果MR作业要启用中间数据Snappy压缩,则需要增加如下配置:

  <property>
     <name>mapreduce.map.output.compress</name>
      <value>true</value>
  </property>

  <property>
      <name>mapreduce.map.output.compress.codec</name>
      <value>org.apache.hadoop.io.compress.SnappyCodec</value>
  </property>


相关内容