当前位置: 首页 > news >正文

HBase 创建不分裂的表 ( 禁止 Table Split )

注意:由于 HBase 版本众多,配置表的语法在不同版本上会有差异,本文介绍的配置方法是在 1.4.9 版本上测试的,使用 HBase 2.0+ 的版本需要核实并修改相关配置方法!

有时候,出于特殊需要,我们希望对 HBase 表进行预分区后,禁止表再自动 Split,具体做法就是设置表的 SPLIT_POLICY 配置项,将分裂策略设置为 DisabledRegionSplitPolicy。以下是一个示例,建表时进行了预分区,设置了 510 个 Region,并显式地配置切分策略为 DisabledRegionSplitPolicy

TABLE_NAME="usertable"
REGIN_SPLITS=510
cat << EOF | sudo -u hbase hbase shell
create '${TABLE_NAME}', 'cf', {METADATA => {'SPLIT_POLICY' => 'org.apache.hadoop.hbase.regionserver.DisabledRegionSplitPolicy'}}, {SPLITS => (2..${REGIN_SPLITS}).map {|i| "user#{1000+(i-1)*(9999-1000)/${REGIN_SPLITS}}"}}
describe '${TABLE_NAME}'
EOF

要特别注意的是:在旧的 HBase 版本上,例如本文使用的 1.4.9,必须配置为 METADATA => xxx ,而不是使用 CONFIGURATION => xxx,虽然使用后者并不报错,但修改是无效的!

还有一个特别重要问题,测试表明:在 EMR 5.23.0 版本上,修改 hbase.regionserver.region.split.policyorg.apache.hadoop.hbase.regionserver.DisabledRegionSplitPolicy 对单表无效!虽然这很诡异,但测试下来确实无效!似乎在表级别上配置才有效。

总得来说,如果能在表级别上单独配置属性是最好的,这样产不会影响到其他表。


以下是其他相关的配置和说明:

HBase 默认的切分策略是 IncreasingToUpperBoundRegionSplitPolicy,该策略在 Region 小于 10 GB 时有一套自己的切分规则,超过 10 GB 后才会遵循 ConstantSizeRegionSplitPolicy

hbase.hregion.max.filesize 设为一个极大值并把 hbase.regionserver.region.split.policy 设为 org.apache.hadoop.hbase.regionserver.ConstantSizeRegionSplitPolicy 同样可以实现禁止 split 的目的,但是,和上面提到的情况一样,在 EMR 5.23.0 版本上,修改这两项配置对单表无效,同样只能修改表级别的属性。

http://www.lryc.cn/news/269942.html

相关文章:

  • docker入门概念详解
  • C++程序设计实践报告【格式】
  • 浅谈数据仓库运营
  • 系列六、Consul
  • Java集合/泛型篇----第一篇
  • 集合使用注意事项
  • 什么是 JavaScript 中的 WeakMap
  • nodejs+vue+ElementUi农产品团购销售系统zto2c
  • nacos入门篇001-安装与启动
  • WordPress主题大前端DUX v8.3源码下载
  • RabbitMQ之快速入门、上手
  • GBASE南大通用-GBase 8s数据库日志模式及切换
  • 侵入式和非侵入式微服务框架的比较
  • Go语言程序设计-第5章--函数
  • 数据被锁?被.mkp 勒索病毒攻击后的拯救行动
  • Fine-Tuning Language Models from Human Preferences
  • 提升数据库性能的关键指南-Oracle AWR报告
  • 云计算IaaS、PaaS和SaaS之
  • 解锁大数据世界的钥匙——Hadoop HDFS安装与使用指南
  • 写在2023岁末:敏锐地审视量子计算的当下
  • C/C++学习笔记十三 C++中的重载运算符
  • Java 实现自动获取法定节假日
  • 湘潭大学-2023年下学期-c语言-作业0x0a-综合1
  • 网络协议-BIO实战和NIO编程
  • Word 将页面方向更改为横向或纵向
  • 关键字:abstract关键字
  • 从PDF中提取图片
  • 推荐:一个不错的介绍Apache Doris的PPT
  • 【Python_PySide2学习笔记(二十二)】进度对话框QProgressDialog类的基本用法
  • 使用rust读取usb设备ACR122U的nfc卡片id