HBase集群无法读写数据

原创 2015年11月18日 16:23:00

1 问题现象

HBase集群于11.17晚无法写入数据,所有的同步至HBase的服务都无法写入HBase库。

2 问题原因

所有的写入服务都无法写入数据,排除应用本身的问题,考虑HBase集群本身出现问题。进入hbase shell,scan一下当中的表是否可以读取数据,结果命令卡住无法正常读取数据。重新启动HBase集群,查看 master节点日志,发现:
这里写图片描述
由此,可到看到hbase:meta所在region是下线的,故HBase集群当然不可读写数据。

3 解决方法

HBase集群本身提供了数据修复的工具:hbase hbck ,尝试运用该工具进行相关修复工作,最终还是无法解决hbase:meta不一致的状况。为啥无法修复?我想原因是HMaster进程虽然启动成功了,但它的启动时是报了异常的,所以优先解决HMaster无异常启动。HBase集群也提供了离线修复jar包来应对HMaster无法启动的过程。先关闭HBase集群,运用以下命令:
hbase org.apache.hadoop.hbase.util.hbck.OfflineMetaRepair
修复完成后,可以看到hbase:meta也重新分配了region,再次重启HMaster,无异常正常启动。然后HMaster一直等待HRegionserver的汇报心跳,此时启动所有Hregionserver。所有启动正常后,再用hbase hbck工具检测不一致性,还有不一致就用此工具修复。最后验证HBase集群的读写情况。

4 小结

HBase中表读写数据流程如下:
(1) HBase Client提交读写请求,首先与zookeeper交互,zookeeper中存储hbase:meta表region所在regionserver所在位置信息。
(2) 找到hbase:meta所在位置后,HBase Client直接与对应的regionserver交互,读取region中的内容。
(3) hbase:meta表中存储的内容为:每1行对应1个region,主要包含region名,起止rowkey,对应regionserver位置等。
(4) 由上就可以找到特定表所在regionserver位置,并与之交互。

版权声明:本文为博主原创文章,转载请注明:http://blog.csdn.net/oozie123

hbase集群写不进去数据的问题追踪过程

hbase从集群中有8台regionserver服务器,已稳定运行了5个多月,8月15号,发现集群中4个datanode进程死了,经查原因是内存 outofMemory了(因为这几台机器上部署了spa...

HBase 部分表无法写入数据的异常处理

HBase 无法写入数据到某张表,服务状态均正常,并且可能只是某一张表或者部分表发生无法写入问题,那么此时可能是某一个或几个 RegionServer 出了问题,使其状态变更为 PENDING_CLO...

HBase 5种写入数据方式

Version :hadoop1.2.1; hbaes0.94.16;HBase写入数据方式,可以简单分为下面几种:1. 直接使用HTable进行导入,代码如下:package hbase.curd;...

HBase数据写入测试

测试环境 测试硬件:4核i5处理器,8G内存,1T硬盘,千兆网络 测试软件:ubuntu12.10 64位,hadoop版本:0.20.205,hbase版本:0.90.5 测试设置:一个mas...
  • qiuchenl
  • qiuchenl
  • 2013年01月25日 10:39
  • 10942

hbase 读写数据

HBase提供了对HBase进行一系列的管理涉及到对表的管理、数据的操作java api。 常用的API操作有:    1、  对表的创建、删除、显示以及修改等,可以用HBaseAdmin,一...

给定A, B两个整数,不使用除法和取模运算,求A/B的商和余数

给定A, B两个整数,不使用除法和取模运算,求A/B的商和余数。 1.   最基本的算法是,从小到大遍历: for (i = 2 to A -1)          if (i * B > A)...

配置SOIL库,实现纹理加载

SOIL 是一个用于向OpenGL中加载

SceneManager.LoadScene的使用方法

SceneManager.LoadScene的使用方法
  • XYK0318
  • XYK0318
  • 2016年03月17日 09:52
  • 18915

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

C语言dup和dup2函数

功能:复制文件描述符 头文件:#include 函数原型:int dup(int oldfd)           int dup2(int oldfd,int newfd) 功能详解:dup和d...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HBase集群无法读写数据
举报原因:
原因补充:

(最多只允许输入30个字)