分享

hbase预分区表能调整吗?

lanyangkj 发表于 2016-5-12 15:06:42 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 6 40262
有这样一个业务场景,因为前期难以评估,初期分了20个区,但随着数据积累,发现某些分区压根没数据是一种浪费,而某些分区面临多次分裂的危险。是否可以再次重新调整分区结构。合并或者拆分原分区??请高手回答!!谢谢

已有(6)人评论

跳转到指定楼层
lanyangkj 发表于 2016-5-12 16:09:05
但我看hbase shell 中的alter命令就没有支持 ,splits 再分区的功能?
回复

使用道具 举报

NEOGX 发表于 2016-5-12 16:43:08
hbase的分区有startkey和endkey来确定的,一旦分区确定,个人认为这是不能修改的。庆幸的是一旦预分区用完,就会自动分裂了。
另外变通的方法,就是重新创建一个表,然后将数据导入新建表中。


参考
HBase Rowkey的散列与预分区设计
http://www.aboutyun.com/forum.php?mod=viewthread&tid=8909


回复

使用道具 举报

lanyangkj 发表于 2016-5-13 10:47:22
NEOGX 发表于 2016-5-12 16:43
hbase的分区有startkey和endkey来确定的,一旦分区确定,个人认为这是不能修改的。庆幸的是一旦预分区用完 ...

谢谢您的回答,其实再次分裂是分区设计时不合理的表现。毕竟自动分裂会产生一定时间负载过高甚至停止服务的危险,具体有一定不可控风险。不过您说的,在新建一个合理的表把数据导入进去,应该属于运维手段,但不知道大数据的拷贝效率怎么样?
回复

使用道具 举报

jixianqiuxue 发表于 2016-5-13 11:33:51
lanyangkj 发表于 2016-5-13 10:47
谢谢您的回答,其实再次分裂是分区设计时不合理的表现。毕竟自动分裂会产生一定时间负载过高甚至停止服务 ...

导表方式很多种,效率方面应该直接复制文件比较快一些,但是能否按照分区来还不清楚。楼主只有自己尝试下了。持续关注中。下面给楼主提供几种方式和参考资料
HBase 5种写入数据方式
http://www.aboutyun.com/forum.php?mod=viewthread&tid=7448


hbase数据迁移的3种方式总结

http://www.aboutyun.com/forum.php?mod=viewthread&tid=18212

HBase 数据导入功能实现方式解释

http://www.aboutyun.com/forum.php?mod=viewthread&tid=17016


回复

使用道具 举报

nextuser 发表于 2018-4-9 18:27:48

如果已经创建好,数据已经填充。这个在修改分区,基本不可能了。重新建表,然后将旧表数据导入。
当然你也可以尝试下面方法:
1.修改hbase.hregion.max.filesize的大小,然后采用负载均衡
2.增多预分区,也就是创建表后,在采用预分区的方式,看能否创建成功。
这是个人想出来的办法。如果不死心,可以试试。



参考这个帖子Hbase 分区问题
http://www.aboutyun.com/forum.php?mod=viewthread&tid=13033


回复

使用道具 举报

pig2 发表于 2018-4-9 19:19:00
本帖最后由 pig2 于 2018-4-9 22:19 编辑

HBase-1.2版本以后,增加功能Normalizer,可以通过编程或则hbase shell的方式,合并小的region。
shell的方式如下
[mw_shl_code=bash,true]hbase(main):001:0> normalizer_enabled
true
0 row(s) in 0.4870 seconds

hbase(main):002:0> normalizer_switch false
true
0 row(s) in 0.0640 seconds

hbase(main):003:0> normalizer_enabled
false
0 row(s) in 0.0120 seconds

hbase(main):004:0> normalizer_switch true
false
0 row(s) in 0.0200 seconds

hbase(main):005:0> normalizer_enabled
true
0 row(s) in 0.0090 seconds[/mw_shl_code]

相关api



https://hbase.apache.org/devapid ... gionNormalizer.html

更多内容推荐参考
hbase Normalizer解决预分区错误,在不动数据的情况下完美解决1
http://www.aboutyun.com/forum.php?mod=viewthread&tid=24292


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条