hbase 一致性修复

程序报错

检查hbase 一致性

hbase hbck -details "user_tags"

异常情况

正常情况

 

修复

修复前需先停止表的读写功能

停用表:disbale 'user_tags'
启用表:enable 'user_tags'

hbase hbase hbck -repair "user_tags"

问题1:修复使用的账号、hdfs 上文件的权限不对

解决:

1. 查看文件权限是否有误

2. 更改执行语句的用户,以及修改文件权限

3. 需要切换成有权限账号执行

4. 如果 su - hbase 切换不成功 可使用 sudo -u hbase hbase hbck -repair "user_tags"

 

 

问题2:使用 repair 修复依旧不成功

使用repair修复后,发现还存在不一致情况,查看日志出现以下报错

解决:hbase hbck -fixEmptyMetaCells

可参考:https://github.com/mattshma/bigdata/issues/41

HBase的热点问题通常是由于某个Region Server上的某个Region负载过重而导致的。修复一个热点问题需要从以下几个方面入手: 1. 找出负载过重的Region 可以通过HBase的Web UI或者HBase shell命令来查看每个Region的负载情况。一般来说,负载过重的Region会有很高的读写请求数量。 2. 将负载过重的Region迁移到其他Region Server上 可以通过HBase shell命令来手动迁移Region。首先需要找到目标Region Server,然后将负载过重的Region迁移到该Region Server上。 3. 均衡Region分布 可以通过HBase shell命令来启用Region均衡功能,让HBase自动将Region分布均衡到各个Region Server上。 下面是一个示例,演示如何手动迁移一个负载过重的Region: 1. 查看Region的负载情况 ``` hbase shell hbase(main):001:0> status 'databasetable' ``` 2. 找到负载过重的Region 在输出结果中查找请求数量最高的Region。 3. 手动迁移Region ``` hbase shell hbase(main):001:0> move 'regionname', 'servername' ``` 其中,`regionname`是需要迁移的Region的名称,`servername`是目标Region Server的名称。 4. 检查Region负载情况 ``` hbase shell hbase(main):001:0> status 'databasetable' ``` 确保已经成功将负载过重的Region迁移到其他Region Server上。 需要注意的是,手动迁移Region可能会导致数据的不一致性。如果需要保证数据的一致性,可以使用HBase的自动均衡功能来进行Region的迁移。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值