如何在现有Hbase表上启用压缩?

时间:2015-05-15 05:50:02

标签: compression hbase

我有一个非常大的Hbase表apData,但它在创建时没有设置为压缩。现在它是1.5TB。所以我想在这张桌子上启用压缩功能。我做了以下事情:

(1)disable apData
(2)alter apData,{NAME=>'cf1',COMPRESSION=>'snappy'}
(3)enable 'apData'.

但是,当我使用"desc apData"查看配置时,它仍显示:

COMPRESSION => 'NONE'

为什么它没有生效?我应该如何压缩表格,并确保未来的数据在插入时会自动压缩。

提前致谢!

4 个答案:

答案 0 :(得分:6)

HBase只会压缩新的 HFiles - 您编写的新数据或压缩结果

答案 1 :(得分:3)

你配置了Snappy吗? 验证第一个snappy是否已加载到所有节点中。要验证请使用此命令。

  

hbase org.apache.hadoop.hbase.util.CompressionTest    hdfs:// host / path / to / hbase snappy

一旦snappy测试成功。上面提到的压缩应该有效。

有关snappy配置和安装的更多详细信息: http://hbase.apache.org/0.94/book/snappy.compression.html

答案 2 :(得分:2)

您需要将HBase配置为使用Snappy。

您可以按照参考链接中提到的步骤在hbase中启用snappy压缩: configure snappy compression with HBase

希望它对你有所帮助。

答案 3 :(得分:1)

如果我们从tarball安装Hadoop和HBase,我们需要配置HBase使用Snappy;如果我们从RPM或Debian软件包安装它们,Snappy不需要HBase配置。

根据我们正在安装的机器的体系结构,我们必须在/etc/hbase/conf/hbase-env.sh中添加以下行之一:

For 32-bit platforms:
export HBASE_LIBRARY_PATH=/usr/lib/hadoop/lib/native/Linux-i386-32

For 64-bit platforms:
export HBASE_LIBRARY_PATH=/usr/lib/hadoop/lib/native/Linux-amd64-64