hadoop hbase lzo 安装笔记

来源:互联网 发布:如何创建网络平台 编辑:程序博客网 时间:2024/04/30 02:44

hadoop版本

hadoop-0.20.2-cdh3u0

hbase版本

hbase-0.90.1-cdh3u0



1.首先编译安装lzo动态库,从http://www.oberhumer.com/opensource/lzo/download/上下载lzo-2.05.tar.gz
解包之后,

./configure --enable-shared
make
sudo make install

以上三步会在/usr/local/lib下安装三个动态库
lrwxrwxrwx  1 root root       16 2011-08-03 15:07 liblzo2.so -> liblzo2.so.2.0.0*
lrwxrwxrwx  1 root root       16 2011-08-03 15:07 liblzo2.so.2 -> liblzo2.so.2.0.0*
-rwxr-xr-x  1 root root   379659 2011-08-03 15:07 liblzo2.so.2.0.0*

最好把这3个动态库copy到/usr/lib下

2.到http://code.google.com/p/hadoop-gpl-compression/下载lzo相关的native库(hadoop-gpl-compression-0.1.0-rc0.tar.gz)
解包,里面根目录有hadoop-gpl-compression-0.1.0.jar,lib目录下有相应的native库,

将hadoop-gpl-compression-0.1.0.jar拷贝到 hadoop和hbase安装目录下的lib目录

如果hadoop用的是cdh3版本,请看ps.2

3.拷贝2中下载的 lib/native/* 到 hadoop/lib/native 及 hbase/lib/native 

4.每台regionserver都得有如上配置

5.在habse conf下的hbase-site.xml 和 hadoop conf下的core-site.xml 里加上
<property>
     <name>io.compression.codecs</name>
     <value>org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo
.LzopCodec,org.apache.hadoop.io.compress.BZip2Codec</value>
  </property>


  <property>
     <name>io.compression.codec.lzo.class</name>
     <value>com.hadoop.compression.lzo.LzoCodec</value>
  </property>

6.重启hdfs和hbase

7.建立一个表,测试lzo
create 'mytable', {NAME=>'colfam:', COMPRESSION=>'lzo'}  



P.S: 
1 如果不清楚你的hbase是否配置好了支持lzo,可以执行以下命令检查之,如果不支持的话这个命令会提示你还缺什么文件: 
Java代码  
hbase org.apache.hadoop.hbase.util.CompressionTest hdfs://namenode:9000/test_path lzo  


如果成功,会显示
11/08/03 15:10:43 INFO lzo.GPLNativeCodeLoader: Loaded native gpl library
11/08/03 15:10:43 INFO lzo.LzoCodec: Successfully loaded & initialized native-lzo library
11/08/03 15:10:43 INFO compress.CodecPool: Got brand-new compressor




2 如果你和我一样使用了CDH3版本的hdfs,那么该版本的hdfs与hadoop-gpl-compression会有冲突,原因是CDH3修改了compression.java,增加了reinit()接口。 
此时需要重新编译hadoop-gpl-compression工程,修改 src/java/com/hadoop/compression/lzo/LzoCompressor.java,增加以下行: 
Java代码  
public void reinit(Configuration conf) {  
  // do nothing  
}  


 然后ant重新编译工程,将生成hadoop-gpl-compression-0.1.0-dev.jar,执行第2步里的拷贝工作(此时不再拷贝自带的jar)