首页主机资讯HBase压缩设置在CentOS上如何操作

HBase压缩设置在CentOS上如何操作

时间2025-12-16 18:00:04发布访客分类主机资讯浏览1338
导读:在 CentOS 上配置 HBase 压缩的完整步骤 一 准备与算法选择 压缩作用于 HBase 的列族(ColumnFamily),可与**数据块编码(Data Block Encoding)**同时使用或单独使用。HFile 默认支持...

在 CentOS 上配置 HBase 压缩的完整步骤

一 准备与算法选择

  • 压缩作用于 HBase 的列族(ColumnFamily),可与**数据块编码(Data Block Encoding)**同时使用或单独使用。HFile 默认支持的压缩算法为:NONE、GZ、SNAPPY、ZSTD;数据块编码支持:NONE、PREFIX、DIFF、FAST_DIFF、ROW_INDEX_V1。一般组合是“编码+压缩”,如:FAST_DIFF + SNAPPY,兼顾压缩率与读写性能。
  • 常见算法取舍:SNAPPY/ZSTD压缩/解压速度快、CPU 占用相对低;GZIP压缩率更高但 CPU 更高;LZO需额外许可与配置;LZ4速度快、压缩率一般。根据业务对吞吐/延迟/存储的权衡选择。

二 安装系统级压缩库

  • 选择 Snappy 时,在 CentOS 安装库与头文件(确保 RegionServer 节点均安装):
    • 安装命令:sudo yum install -y snappy snappy-devel
  • 选择 ZSTD 时,安装 zstd 开发包(若仓库提供;不同发行版包名可能为 zstd 或 libzstd-devel)。
  • 如使用 LZO,需额外安装并配置 LZO 编解码器及许可。
  • 安装完成后,后续步骤才能正常加载对应压缩库。

三 配置 HBase(可选,针对全局默认)

  • 编辑配置文件:$HBASE_HOME/conf/hbase-site.xml,在 内按需添加(示例为 Snappy):
    • 全局默认压缩算法(列族未显式指定时生效):
      <
          property>
          
        <
          name>
          hbase.regionserver.compression.type<
          /name>
          
        <
          value>
          snappy<
          /value>
          
      <
          /property>
          
      
    • 确保 JVM 能加载本地库(如 Snappy 在 /usr/lib64/):
      <
          property>
          
        <
          name>
          hbase.unsafe.stream.capability.enforce<
          /name>
          
        <
          value>
          false<
          /value>
          
      <
          /property>
      
      
      并在 $HBASE_HOME/conf/hbase-env.sh 中确保本地库路径可被 JVM 找到,例如:
      export HBASE_OPTS="$HBASE_OPTS -Djava.library.path=/usr/lib64"
      
  • 说明:HBase 官方更推荐在列族级显式设置压缩与编码;全局项仅作为缺省值,便于统一策略。

四 在列族上启用压缩与编码

  • 创建表时指定(HBase Shell):
    hbase shell
    create 't1', {
        NAME =>
         'f1', COMPRESSION =>
         'SNAPPY', DATA_BLOCK_ENCODING =>
     'FAST_DIFF'}
    
    
  • 修改已有表(HBase Shell):
    alter 't1', {
        NAME =>
         'f1', COMPRESSION =>
         'SNAPPY', DATA_BLOCK_ENCODING =>
     'FAST_DIFF'}
        
    
  • 提示:对已有数据,压缩/编码变更会在下一次 Compaction后对新生成的 HFile 生效,旧 HFile 逐步被替换。

五 重启与验证

  • 重启 HBase 使全局配置生效(如使用 systemd 管理的集群):
    sudo systemctl restart hbase-master
    sudo systemctl restart hbase-regionserver
    
    或使用脚本:
    $HBASE_HOME/bin/stop-hbase.sh
    $HBASE_HOME/bin/start-hbase.sh
    
  • 验证:
    • 在 HBase Shell 查看表/列族属性:
      describe 't1'
      
      输出中应看到列族 f1 的 COMPRESSION => ‘SNAPPY’DATA_BLOCK_ENCODING => ‘FAST_DIFF’
    • 观察 RegionServer 日志,确认启动时加载了对应压缩库(如 Snappy 无报错)。
    • 通过 HBase Web UI 或客户端工具查看表结构与存储占用变化。

六 常见问题与建议

  • 客户端报 “ClassNotFoundException/UnsatisfiedLinkError”:多为本地库未安装或 java.library.path 未包含库目录;在 RegionServer 节点安装对应库并修正 hbase-env.sh。
  • 修改未立即生效:压缩/编码对存量 HFile 需等待 Compaction;可手动触发 major compaction 加速生效。
  • 性能与存储权衡:写多读多场景优先 SNAPPY/ZSTD;存储紧张可评估 GZIP;编码建议与压缩搭配使用(如 FAST_DIFF + SNAPPY)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: HBase压缩设置在CentOS上如何操作
本文地址: https://pptw.com/jishu/773025.html
centos weblogic如何解决权限问题 centos weblogic如何调试

游客 回复需填写必要信息