Hadoop/HBase 开启snappy压缩
参考链接
hadoop-snappy Google Code
snappy.compression hbase docs
cnblogs参考资料
- install maven
- 下载maven安装包(apache-maven-xxx.bin.tar.gz) 点击下载
- 解压文件
ar -zxvf apache-maven-3.2.1-bin.tar.gz
- 修改/etc/profile,把maven执行路径添加到环境变量
export MVN_HOME=/home/qiao/apache-maven-3.2.1
export PATH=$MVN_HOME/bin:$PATH- source /etc/profile使环境变量生效
- install snappy
- 下载snappy click herer to download
- 解压缩
tar -zxvf snappy-xxx.tar.gz
- 在解压后的snappy目录中编译安装snappy动态链接库到本地
$ ./configure
$ make
$ make install- 默认安装到/usr/local/lib中,颗粒在这个目录中查看,如果出现如下内容,则表示snappy动态链接库安装成功
$ cd /usr/local/lib
$ ls
$ libsnappy.a libsnappy.la libsnappy.so libsnappy.so.1 libsnappy.so.1.2.1
- install hadoop-snappy
- 下载hadoop-snappy,用到svn
svn checkout http://hadoop-snappy.googlecode.com/svn/trunk/ hadoop-snappy- 安装hadoop-snappy,用maven编译安装,将其安装到/usr/local目录中
mvn package -Dsnappy.prefix=/usr/local- 接下来就是复制文件,修改配置文件
- hadoop
1. 把hadoop-snappy/target/hadoop-snappy-0.0.1-SNAPSHOT目录中lib目录下所有文件拷贝到Hadoop的lib目录下
cp -r hadoop-snappy-0.0.1-SNAPSHOT/lib/* <HADOOP_HOME>/lib
2. 修改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>
3. 修改Hadoop配置文件,hadoop-env.sh
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HADOOP_HOME/lib/native/Linux-amd64-64/:/usr/local/lib/
- hbase
1. 将Hadoop文件夹lib/native/Linux-amd64-64/下所有的文件拷贝到相应的hbase目录下
cp -r $HADOOP_HOME/lib/native/Linux-amd64-64/* $HBASE_HOME/lib/native/Linux-amd64-64/
2. 修改HBase配置文件hbase-env.sh
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HADOOP_HOME/lib/native/Linux-amd64-64/:/usr/local/lib/
export HBASE_LIBRARY_PATH=$HBASE_LIBRARY_PATH:$HBASE_HOME/lib/native/Linux-amd64-64/:/usr/local/lib/
- 重启Hadoop,HBase,snappy压缩功能即可使用
安装过程中遇到的问题: [exec] /usr/bin/ld: cannot find -ljvm
解决办法:出现这样的问题是因为没有把安装的jvm的libjvm.so 链接到/usr/local/lib。因为是64位系统,这里做了如下修改:
ln -s /usr/java/jdk1.6.0_45/jre/lib/amd64/server/libjvm.so /usr/local/lib/
问题解决。