【问题标题】:How to enable compression on an existing Hbase table?如何在现有 Hbase 表上启用压缩?
【发布时间】:2015-05-16 07:45:10
【问题描述】:

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

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

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

COMPRESSION => 'NONE'

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

提前致谢!

【问题讨论】:

    标签: compression hbase


    【解决方案1】:

    HBase 只会压缩 new HFiles - 你写入的新数据或压缩的结果

    【讨论】:

    • 非常感谢!那么我不可能压缩现有的桌子吗?我听说过 magior_compact,请问这是否有助于压缩现有数据。当前表快2TB了,很头疼。谢谢!
    • 您可以使用 hbase shell 来启动主要压缩(统一 HFiles 并且在写入新文件时也会使用压缩)
    【解决方案2】:

    您是否配置了 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

    【讨论】:

    • 谢谢Vick,我是否还需要修改hbase-site.xml以添加以下行:hbase.regionserver.codecs=org.apache.hadoop.io.compress.SnappyCodec
    • 通常不需要在hbase-site.xml中添加代码。它应该自动确定。但你仍然可以试试这个。您是否测试过 snappy 是否可用?
    • 如果这个命令抛出 /hbase 非空的错误怎么办?
    【解决方案3】:

    您需要配置 HBase 以使用 Snappy。

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

    希望对你有帮助。

    【讨论】:

      【解决方案4】:

      如果我们从 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
      

      【讨论】:

        猜你喜欢
        • 2018-08-20
        • 2017-06-17
        • 2021-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-16
        • 1970-01-01
        相关资源
        最近更新 更多