1.现象:

昨晚集群夯住,内存不够,导致HBase RegionServer挂了!
紧跟着CDH HBase Master(active)节点是红色的,显示信息:HBase Regions In Transition Over Threshold
这时我知道又遇见HBase RIT了。

2.常见解决方法:

2.1 重启HBase,尝试了2次后,发现HBase Master(active)节点是依旧红色的

虽然我们可以连接HBase,但是查询速度(dbeaver工具+Phoenix)上是非常慢的,
还抛错一个错误: Cache of region boundaries are out of date.

2.2 在master节点:使用hbase进程所在的用户

su - hbase
hbase hbck -fixAssignments 
用于修复region assignments错误,观察发现越来越多的RIT的Regions,及时终止命令
也尝试了一下 hbase hbck、hbase hbck -repair,日志刷了很久也没解决。

2.3 查看master节点日志,发现如下日志
2018-08-21 09:50:47,924 INFO org.apache.hadoop.hbase.master.SplitLogManager: total tasks = 1 unassigned = 0 tasks={/hbase/splitWAL/WALs%2Fhadoop49%2C60020%2C1534734073978-splitting%2Fhadoop49%252C60020%252C1534734073978.null0.1534762936638=last_update = 1534816154977 last_version = 22 cur_worker_name = hadoop47,60020,1534815723497 status = in_progress incarnation = 2 resubmits = 2 batch = installed = 1 done = 0 error = 0}

由于日志刷的很快,加上是info级别,刚开始真心没注意!
后来通过分析HBase master web界面,发现:

  • a.RIT的regions都是在hadoop49机器

  • b.master的log日志也是显示hadoop49机器的splitting log,

    一直在in_progress状态
    (观察差不多10分钟,一直再刷info级别且此状态)

3.暴力解决:

3.1 直接使用hdfs命令先找到日志,再rm删除(移除到回收站)
hadoop36:hdfs:/var/lib/hadoop-hdfs:>hdfs dfs -ls hdfs://nameservice1/hbase/WALs/*splitting
Found 1 items
-rw-r--r--   3 hbase hbase   21132987 2018-08-20 19:02 hdfs://nameservice1/hbase/WALs/hadoop49,60020,1534734073978-splitting/hadoop49%2C60020%2C1534734073978.null0.1534762936638
hadoop36:hdfs:/var/lib/hadoop-hdfs:>
hadoop36:hdfs:/var/lib/hadoop-hdfs:>
hadoop36:hdfs:/var/lib/hadoop-hdfs:>hdfs dfs -rm hdfs://nameservice1/hbase/WALs/hadoop49,60020,1534734073978-splitting/hadoop49%2C60020%2C1534734073978.null0.1534762936638
18/08/21 12:46:15 INFO fs.TrashPolicyDefault: Moved: 'hdfs://nameservice1/hbase/WALs/hadoop49,60020,1534734073978-splitting/hadoop49%2C60020%2C1534734073978.null0.1534762936638' to trash at: hdfs://nameservice1/user/hdfs/.Trash/Current/hbase/WALs/hadoop49,60020,1534734073978-splitting/hadoop49%2C60020%2C1534734073978.null0.1534762936638
hadoop36:hdfs:/var/lib/hadoop-hdfs:>
3.2 重启HBase,等待一会,一切正常,保证HBase对外提供服务。
3.3 因为我们删除的是HLOG文件,必然会丢失数据,故使用MCP实时中间件,web界面定制数据重刷job(昨晚19:00~21:00故障范围时间),恢复数据。



©著作权归作者所有:来自51CTO博客作者mb5fdb0a6739180的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 深入理解 Apache Spark Delta Lake 的事务日志
  2. SumSwap节点预售开启,新的DEX挑战者即将踏上征程
  3. 腾讯云Elasticsearch集群规划及性能优化实践
  4. 腾讯云ClickHouse如何实现自动化的数据均衡?
  5. 单链表LRU
  6. 回顾·基于Impala平台打造交互查询系统
  7. Druid原理及产险实践
  8. EGG Network公链生态应用 EFTalk阿凡提
  9. 盘点2019年晋升为Apache TLP以及进去Apache孵化器的大数据相关项

随机推荐

  1. 多表连接查询
  2. C#使用SqlBulkCopy将DataTable写入数据库
  3. 找到另一个列至少有两个不同值的id
  4. 一条牛B的SQL抵了我300多行的程序代码
  5. hibernate查询不出结果,sql已打印,请指教
  6. 又要请教在SQL中建表时的表名不能用纯数
  7. C# 往SQL数据库插入listbox的值
  8. mysql获取自增id最大值四种方法
  9. 超时时间已到.错误及Max Pool Size设置
  10. VS连接MySQL·:Unable to connect to