[转]HBase hbck——检察HBase集群的一致性
Hbase提供了hbck命令来检查各种不一致问题。hbck的名字仿效了HDFS的fsck命令,后者是一个用于检查HDFS中不一致问题的工具。下面这段非常易懂的介绍出自于hbck的源程序。
检查数据在Master及RegionServer的内存中状态与数据在HDFS中的状态之间的一致性。
HBase的hbck不仅能够检查不一致问题,而且还能够修复不一致问题。
在生产环境中,应当经常运行hbck,以便及早发现不一致问题并更容易地解决问题。
一、问题
首先,在HBase上创建一张表usertable。
然后,在HDFS上直接删除usertable表的目录/hbase/usertable来删除表的数据(错误的做法)。
二、解决方法
1.hbase hbck
Status:OK,表示没有发现不一致问题。
Status:INCONSISTENT,表示有不一致问题。
2.hbase hbck -fixAssignments
Try to fix region assignments. Replaces the old -fix
[zk: 192.168.147.15:2181(CONNECTED) 3] ls /hbase/unassigned
3.hbase hbck -fixMeta
Try to fix meta problems. This assumes HDFS region info is good.
hbase(main):007:0> scan '.META.'
4.hbase(main):015:0> create 'usertable','f1'
ERROR: Table already exists: usertable!
[zk: 192.168.147.15:2181(CONNECTED) 4] ls /hbase/table
[usertable]
[zk: 192.168.147.15:2181(CONNECTED) 5] get /hbase/table/usertable
ENABLING
[zk: 192.168.147.15:2181(CONNECTED) 6] rmr /hbase/table/usertable
[zk: 192.168.147.15:2181(CONNECTED) 7] get /hbase/table/usertable
Node does not exist: /hbase/table/usertable
此时,create 'usertable','f1',依然提示同样的错误。
查看ZKTable源码:
- /**
- * Cache of what we found in zookeeper so we don't have to go to zk ensemble
- * for every query. Synchronize access rather than use concurrent Map because
- * synchronization needs to span query of zk.
- */
- private final Map<String, TableState> cache =
- new HashMap<String, TableState>();
- this.cache.put(tableName, state);
把ZK中的数据缓存在本地内存中,以加速访问,减少访问时间。
为了让本地内存中的数据失效,必须重启HBase集群。
重启HBase集群。
此时,create 'usertable','f1',没有提示错误,表创建成功。
三、hbck
- [bigdata@tbe192168147015 ~]$ hbase hbck -h
- Usage: fsck [opts] {only tables}
- where [opts] are:
- -help Display help options (this)
- -details Display full report of all regions.
- -timelag {timeInSeconds} Process only regions that have not experienced any metadata updates in the last {{timeInSeconds} seconds.
- -sleepBeforeRerun {timeInSeconds} Sleep this many seconds before checking if the fix worked if run with -fix
- -summary Print only summary of the tables and status.
- -metaonly Only check the state of ROOT and META tables.
- Repair options: (expert features, use with caution!)
- -fix Try to fix region assignments. This is for backwards compatiblity
- -fixAssignments Try to fix region assignments. Replaces the old -fix
- -fixMeta Try to fix meta problems. This assumes HDFS region info is good.
- -fixHdfsHoles Try to fix region holes in hdfs.
- -fixHdfsOrphans Try to fix region dirs with no .regioninfo file in hdfs
- -fixHdfsOverlaps Try to fix region overlaps in hdfs.
- -fixVersionFile Try to fix missing hbase.version file in hdfs.
- -maxMerge <n> When fixing region overlaps, allow at most <n> regions to merge. (n=5 by default)
- -sidelineBigOverlaps When fixing region overlaps, allow to sideline big overlaps
- -maxOverlapsToSideline <n> When fixing region overlaps, allow at most <n> regions to sideline per group. (n=2 by default)
- -repair Shortcut for -fixAssignments -fixMeta -fixHdfsHoles -fixHdfsOrphans -fixHdfsOverlaps -fixVersionFile -sidelineBigOverlaps
- -repairHoles Shortcut for -fixAssignments -fixMeta -fixHdfsHoles -fixHdfsOrphans
[转]HBase hbck——检察HBase集群的一致性的更多相关文章
- HBase HA的分布式集群部署(适合3、5节点)
本博文的主要内容有: .HBase的分布模式(3.5节点)安装 .HBase的分布模式(3.5节点)的启动 .HBase HA的分布式集群的安装 .HBase HA的分布式集群的启动 .H ...
- HBase的多节点集群详细启动步骤(3或5节点)(分为Zookeeper自带还是外装)
HBase的多节点集群详细启动步骤(3或5节点)分为: 1.HBASE_MANAGES_ZK的默认值是false(zookeeper外装)(推荐) 2.HBASE_MANAGES_ZK的默认值是tru ...
- HBase 2.1.3 集群 web 报错InvalidProtocolBufferException 解决方法
搭建好HBase 集群后,各种后台进程都正常,搭建手册参考: Hbase 2.1.3 集群搭建手册https://www.cndba.cn/dave/article/3322 但是通过web访问,却报 ...
- HBase+Phoenix整合入门--集群搭建
环境:CentOS 6.6 64位 hbase 1.1.15 phoenix-4.7.0-HBase-1.1 一.前置环境: 已经安装配置好Hadoop 2.6和jdk 1.7 二.安装hba ...
- hbase 0.98.1集群安装
本文将基于hbase 0.98.1解说其在linux集群上的安装方法,并对一些重要的设置项进行解释,本文原文链接:http://blog.csdn.net/bluishglc/article/deta ...
- YCSB测试HBase远程完全分布式集群
写在前面 本文只讲一个很简单的问题,YCSB对HBase集群的测试.虽然网上有很多介绍YCSB测试HBase的文章,但都是针对本地HBase伪分布式集群的.大家都知道,稍微正式一些的压测都会要求测试客 ...
- HBase体系架构和集群安装
大家好,今天分享的是HBase体系架构和HBase集群安装.承接上两篇文章<HBase简介>和<HBase数据模型>,点击回顾这2篇文章,有助于更好地理解本文. 一.HBase ...
- HBase混布MapReduce集群学习记录
一.准备工作 1.1 部署环境 集群规模大概260多台,TSC10机型,机型参数如下: > 1个8核CPU(E5-2620v4) > 64G内存 > HBA,12*4T SATA,1 ...
- HBase的单节点集群详细启动步骤(分为Zookeeper自带还是外装)
伪分布模式下,如(weekend110)hbase-env.sh配置文档中的HBASE_MANAGES_ZK的默认值是true,它表示HBase使用自身自带的Zookeeper实例.但是,该实例只能为 ...
随机推荐
- 2018 ACM ICPC 南京赛区 酱油记
Day 1: 早上6点起床打车去车站,似乎好久没有这么早起床过了,困到不行,在火车上睡啊睡就睡到了南京.南航离南京南站很近,地铁一站就到了,在学校里看到了体验坐直升机的活动,感觉很强.报道完之后去吃了 ...
- 用用匿名函数和闭包加apply强制待定函数调用时使用特定上下文
<button id="test">点我</button> <script> var button={ clicked:false, click ...
- 卡夫卡(kafka)
1.Kafka独特设计在什么地方?2.Kafka如何搭建及创建topic.发送消息.消费消息?3.如何书写Kafka程序?4.数据传输的事务定义有哪三种?5.Kafka判断一个节点是否活着有哪两个条件 ...
- 将几何画板x轴坐标值换成弧度制的方法
大家在学习数学的过程中,都会遇到函数,这个时候大家都会遇到函数图像.对于函数图像我们一般都会通过先建立坐标系,然后让图像呈现在坐标系中.函数的种类有很多,三角函数就是其中之一,在绘制三角函数图像时,我 ...
- python数据类型及运算符
python 的数据类型:数字.字符串.元组.列表.字典 type(a) 查看a的类型 数字: 整形int:-2 **32 ~+2**32 次方 长整形 a=123L 浮点float 复数型 - ...
- excel导出工具类
package com.jianwu.util.excel; import com.google.common.collect.Lists;import com.jianwu.exception.Mo ...
- @Override must override a superclass method 有关问题解决
1.Java开发环境时 如果在使用Eclipse开发Java项目时,在使用 @Override 出现以下错误: The method *** of type *** must override a s ...
- Angular入门(三) 引入boostrap4
1.cnpm install ngx-bootstrap bootstrap --save ※可能缺少jquery cnpm i jquery 2. 打开 angular-cli.json (项目 ...
- 【CSS选择器】理解汇总和记录
1.选择器中符号含义汇总(这部分包含了对选择器的通用理解): 1.1.多元素组合符号:(共6个,一个是CSS3的)(适用所有元素:ID组合,类组合,属性组合,标签组合,伪类组合,以及以上所有混合组合) ...
- MySQL 1067
今天在云服务器上装mysql的时候,启动突然报了一个“1067 进程意外终止”的错误,这个错误之前是遇到过的,之前因为my.ini配置basedir路径的时候没有正确配置导致了这个错误,但是今天又出现 ...