HBase 部分表无法写入数据的异常处理
来源:互联网 发布:fl软件下载 编辑:程序博客网 时间:2024/06/07 12:35
HBase 无法写入数据到某张表,服务状态均正常,并且可能只是某一张表或者部分表发生无法写入问题,那么此时可能是某一个或几个 RegionServer 出了问题,使其状态变更为 PENDING_CLOSE
,从而无法写入数据,但是它们的服务状态可能仍然显示为正常。
注:这其中的一种可能的情况,不能证明所有的无法写入的问题均来自于此。
1. 检查 Regions in Transition
以
cloudera manager
为例
登录cloudera manager
-> HBase
-> Master
-> Master (活动)
-> HBase WEB UI
, 进入Master-status
页面。
往下拉,找到Regions in Transition
节点(正常则没有),如果看到如下信息(server 信息已被屏蔽):
那么说明有一个 Region 处于 PENDING_CLOSE
状态,如果不能写入的表处于这个 Region 上,那么则可能导致数据无法正常写入(写入的 key 处于这个 region)。
Region-In-Transition 说的是 Region 变迁机制,实际上是指在一次特定操作行为中 Region 状态的变迁,其状态包括:OPEN -> PENDING_CLOSE -> CLOSING -> CLOSED。
摘抄于 http://hbasefly.com/2016/09/08/hbase-rit/,更多 Region-In-Trasition 相关内容请阅读原文。
2. 重启 Region
解决的最简单的办法就是重启了,毕竟网管大法好。
依次进入cloudera manager
-> HBase
-> RegionServer
,在右侧的列表中找到出问题的 RegionServer(主机名与上图中 server 相等),点击 RegionServer
进入 Region 管理页面,然后重启该 Region(因涉及到公司服务器相关信息,所以就不放截图了)。
3. RegionServer 检查
按照第1步再次进入Master-status
页面,往下拉,找到Tasks
节点,可以看到如下信息:
这是在完成第2步重启 Region 后的任务信息,继续下拉,发现无法找到 Regions in Transition
节点(这里仅有一个 RegionServer 除了问题,所以正常后便消失了),此时说明 RegionServer 恢复正常。
4. 数据一致性检查
Resion 发生问题后,最担心的莫过于数据是否仍然保持一致性,此时可登录对应集群的任一服务器,输入如下命令:
sudo -u hbase hbase hbck
输出末尾信息如下(server 名称被屏蔽):
··· 省略 Deployed on: xxxx05.xxxx.xxxx,60020,1493260775900Table dba_test is okay. Number of regions: 5 Deployed on: xxxx04.xxxx.xxxx,60020,1493260776802 xxxx05.xxxx.xxxx,60020,1493260776083 xxxx06.xxxx.xxxx,60020,1493260776047 xxxx08.xxxx.xxxx,60020,14932607762780 inconsistencies detected.
从最后一行的输出可看到,没有存在数据不一致的情况。
5. 完成
尝试重新写入数据,一切正常。
6. 参考资料
- DBA 的现场指导
- http://hbasefly.com/2016/09/08/hbase-rit/
- HBase 部分表无法写入数据的异常处理
- mapreduce写入HBase,数据异常
- Hbase的数据写入
- hbase修复--数据无法写入到表中。
- HBase写入数据的过程
- 向oracle写入blob数据的异常处理
- IO流部分;对文本写入读出的操作,并对异常作出处理
- hbase大规模数据写入的优化历程
- hbase大规模数据写入的优化历程
- hbase大规模数据写入的优化历程
- hbase表数据的写入流程:(根据rowkey进行写入)
- HBase数据写入测试
- HBase数据写入测试
- Hbase 数据写入
- 文件的写入、定位和异常处理
- Hbase:namespace异常处理,hbase异常处理
- log4cplus无法写入中文的处理方法
- log4cplus无法写入中文的处理方法
- fzu 2238 Daxia & Wzc's problem
- 1095求和问题
- Android实现密码隐藏显示
- xgboost 相比GBDT有什么区别
- 线性回归
- HBase 部分表无法写入数据的异常处理
- easyui 如何同时左右显示两个datagrid
- 21. Python脚本学习笔记二十一图形化界面
- 一些测试错题
- ajax,json学习笔记(五)总结
- UVA
- 22. Python脚本学习笔记二十二数据库支持
- 相机聚焦,相机截屏
- 机器学习十大算法原理总结