Hadoop安装配置snappy压缩

本文的主要详细介绍hadoop2.x中snappy压缩算法安装配置的详细步骤。

[一]、  实验环境

  • CentOS 6.3 64位
  • Hadoop 2.6.0
  • JDK 1.7.0_75

[二]、  snappy编译安装

2.1、下载源码

到官网 http://code.google.com/p/snappy/ 或者到 https://github.com/google/snappy 下载源码,目前版本为 1.1.1。

2.2、编译安装

解压 tar -zxvf  snappy-1.1.1.tar.gz ,然后以 root 用户 执行标准的三步进行编译安装:

默认是安装到 /usr/local/lib ,这时在此目录下查看:

安装过程没有错误同时能看到上面的动态库,基本表示snappy 安装编译成功。

[三]、Hadoop snappy 安装配置

3.1、hadoop 动态库重新编译支持snappy

hadoop动态库编译参考:Hadoop2.2.0源码编译 和 Hadoop2.x在Ubuntu系统中编译源码 ,只是把最后编译的命令中增加 -Drequire.snappy :

把重新编译生成的hadoop动态库替换原来的。

3.2、hadoop-snappy 下载

官网 http://code.google.com/p/hadoop-snappy/  ,目前官网没有软件包提供,只能借助 svn 下载源码:

3.3、hadoop-snappy 编译

PS:如果上面 snappy安装路径是默认的话,即 /usr/local/lib,则此处 [-Dsnappy.prefix=SNAPPY_INSTALLATION_DIR]  可以省略,或者 -Dsnappy.prefix=/usr/local/lib
编译成功后,把编译后target下的 hadoop-snappy-0.0.1-SNAPSHOT.jar 复制到 $HADOOP_HOME/lib ,同时把编译生成后的动态库 copy到 $HADOOP_HOME/lib/native/ 目录下:

3.4、编译过程中常见错误处理

① 缺少一些第三方依赖

官方文档中提到编译前提需要:gcc c++, autoconf, automake, libtool, Java 6, JAVA_HOME set, Maven 3

②错误信息:

这个错误是因为没有把安装jvm的libjvm.so 链接到 /usr/local/lib。如果你的系统时amd64,可以执行如下命令解决这个问题:

[四]、hadoop配置修改

4.1、修改 $HADOOP_HOME/etc/hadoop/hadoop-env.sh,添加:

4.2、修改 $HADOOP_HOME/etc/hadoop/core-site.xml

4.3、修改 $HADOOP_HOME/etc/hadoop/mapred-site.xml 中有关压缩属性,测试snappy:

[五]、测试验证

全部配置好后(集群中所有的节点都需要copy动态库和修改配置),重启hadoop集群环境,运行自带的测试实例 wordcount,如果mapreduce过程中没有错误信息即表示snappy压缩安装方法配置成功。

当然hadoop也提供了本地库的测试方法 hadoop checknative

—————–  EOF @Michael Sun —————–

原创文章,转载请注明: 转载自micmiu – 软件开发+生活点滴[ http://www.micmiu.com/ ]

本文链接地址: http://www.micmiu.com/bigdata/hadoop/hadoop-snappy-install-config/

发表评论?

2 条评论。

  1. 😀
    楼主挺辛苦的,但是不晓得楼主有没有看hadoop-snappy和hadoop2.x的
    源码,在hadoop2.x源码已经集成了Snappy压缩了,所以编译安装
    hadoop-snappy 根本是多余的,只要安装snappy本地库和重新编译
    hadoop native 库就行咯:
    mvn clean package -DskipTests -Pdist,native -Dtar -Dsnappy.lib=/usr/local/snappy-1.1.3/lib -Dbundle.snappy

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">