我有一个非常大的Hbase表apData,但它在创建时没有设置为压缩。现在它是1.5TB。所以我想在这张桌子上启用压缩功能。我做了以下事情:
(1)disable apData
(2)alter apData,{NAME=>'cf1',COMPRESSION=>'snappy'}
(3)enable 'apData'.
但是,当我使用"desc apData"
查看配置时,它仍显示:
COMPRESSION => 'NONE'
为什么它没有生效?我应该如何压缩表格,并确保未来的数据在插入时会自动压缩。
提前致谢!
答案 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