hadoop2.2支持snappy压缩安装及配置

由于我们的生产环境没有root用户使用权限,且为了不在所有主机上安装一些依赖插件,因此我启用了使用hadoop native本地库,即在core-site.xml中配置了:

<property>
        <name>hadoop.native.lib</name>
        <value>true</value>
</property>

就因为这个配置,导致按照网上的方式不成功,灵机一动想到这点,才将问题解决,下面详细介绍,基于google snappy官方介绍https://code.google.com/p/hadoop-snappy/,我稍微做下改动,这个改动也是因为启用 native本地库才做的改动。

1. Requirements: gcc c++, autoconf, automake, libtool, Java 6, JAVA_HOME set, Maven 3

yum install  gcc c++, autoconf, automake, libtool
jdk,我使用的是java7,配置环境变量就可
maven,下载tar.gz包解压后设置环境变量可直接使用
2. Build/install Snappy (http://code.google.com/p/snappy/)

解压后configure && make && make install

3. Build Hadoop Snappy

$ mvn package 
4.拷贝编译好的文件到hadoop环境

$cp -r /opt/hadoop-snappy-master/target/hadoop-snappy-0.0.1-SNAPSHOT-tar/hadoop-snappy-0.0.1-SNAPSHOT/lib/hadoop-snappy-0.0.1-SNAPSHOT.jar $HADOOP_HOME/lib/
$cp -r /opt/hadoop-snappy-master/target/hadoop-snappy-0.0.1-SNAPSHOT-tar/hadoop-snappy-0.0.1-SNAPSHOT/lib/native/Linux-i386-32/* $HADOOP_HOME/lib/native/
5.修改配置文件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>

6.修改配置文件mapred-site.xml(我只是增加了下面的一项,还有一项可配置mapreduce.output.fileoutputformat.compress)

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

7.重启yarn和hdfs

8.实验

hadoop jar ./hadoop-mapreduce-examples-2.2.0.jar wordcount hdfs://node1:8020/input hdfs://node1:8020/output2(wordcount程序,都知道怎么用吧?)

如果不报错,证明就安装成功了。

猜你喜欢

转载自blog.csdn.net/hellozhxy/article/details/84761253