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

Compression 如何在现有Hbase表上启用压缩?,compression,hbase,Compression,Hbase,我有一个非常大的Hbase表apData,但它在创建时没有设置为压缩。现在是1.5TB。所以我想在这个表上启用压缩功能。我做了以下工作: (1)disable apData (2)alter apData,{NAME=>'cf1',COMPRESSION=>'snappy'} (3)enable 'apData'. 但当我使用“desc apData”查看配置时,它仍然显示: COMPRESSION=>“无” 为什么它没有生效?我应该如何压缩表,并确保未来的数据插入时会自动压缩 提

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

(1)disable apData
(2)alter apData,{NAME=>'cf1',COMPRESSION=>'snappy'}
(3)enable 'apData'.
但当我使用
“desc apData”
查看配置时,它仍然显示:

COMPRESSION=>“无”

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


提前谢谢

您需要将HBase配置为使用Snappy

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


希望它能帮助您。

如果我们从Tarbolls安装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
HBase将只压缩新的HFiles-您写入的新数据或压缩的结果

您是否配置了Snappy。 验证是否在所有节点中加载了第一个snappy。要验证,请使用此命令

hbase org.apache.hadoop.hbase.util.CompressionTest hdfs://host/path/to/hbase 活泼的

一旦snappy测试成功。上述压缩应该可以工作

有关snappy的配置和安装的更多详细信息:

非常感谢您!所以我不可能压缩现有的桌子吗?我听说过magior_compact,这有助于压缩现有数据吗。当前的表几乎是2TB,非常令人头痛。谢谢您可以使用hbase外壳启动主要压缩(统一HFiles,并且在编写新文件时也将使用压缩)谢谢Vick,我是否还需要修改hbase-site.xml以添加以下行请:hbase.regionserver.codecs=org.apache.hadoop.io.compress.SnappyCodec通常,您不需要在hbase-site.xml中添加代码。它应该自动确定。但你还是可以试试这个。您是否测试了snappy是否可用?如果此命令引发/hbase为非空的错误,该怎么办?