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源码:

  1. /**
  2. * Cache of what we found in zookeeper so we don't have to go to zk ensemble
  3. * for every query.  Synchronize access rather than use concurrent Map because
  4. * synchronization needs to span query of zk.
  5. */
  6. private final Map<String, TableState> cache =
  7. new HashMap<String, TableState>();
  8. this.cache.put(tableName, state);

把ZK中的数据缓存在本地内存中,以加速访问,减少访问时间。

为了让本地内存中的数据失效,必须重启HBase集群。

重启HBase集群。

此时,create 'usertable','f1',没有提示错误,表创建成功。

三、hbck

  1. [bigdata@tbe192168147015 ~]$ hbase hbck -h
  2. Usage: fsck [opts] {only tables}
  3. where [opts] are:
  4. -help Display help options (this)
  5. -details Display full report of all regions.
  6. -timelag {timeInSeconds}  Process only regions that  have not experienced any metadata updates in the last  {{timeInSeconds} seconds.
  7. -sleepBeforeRerun {timeInSeconds} Sleep this many seconds before checking if the fix worked if run with -fix
  8. -summary Print only summary of the tables and status.
  9. -metaonly Only check the state of ROOT and META tables.
  10. Repair options: (expert features, use with caution!)
  11. -fix              Try to fix region assignments.  This is for backwards compatiblity
  12. -fixAssignments   Try to fix region assignments.  Replaces the old -fix
  13. -fixMeta          Try to fix meta problems.  This assumes HDFS region info is good.
  14. -fixHdfsHoles     Try to fix region holes in hdfs.
  15. -fixHdfsOrphans   Try to fix region dirs with no .regioninfo file in hdfs
  16. -fixHdfsOverlaps  Try to fix region overlaps in hdfs.
  17. -fixVersionFile   Try to fix missing hbase.version file in hdfs.
  18. -maxMerge <n>     When fixing region overlaps, allow at most <n> regions to merge. (n=5 by default)
  19. -sidelineBigOverlaps  When fixing region overlaps, allow to sideline big overlaps
  20. -maxOverlapsToSideline <n>  When fixing region overlaps, allow at most <n> regions to sideline per group. (n=2 by default)
  21. -repair           Shortcut for -fixAssignments -fixMeta -fixHdfsHoles -fixHdfsOrphans -fixHdfsOverlaps -fixVersionFile -sidelineBigOverlaps
  22. -repairHoles      Shortcut for -fixAssignments -fixMeta -fixHdfsHoles -fixHdfsOrphans

[转]HBase hbck——检察HBase集群的一致性的更多相关文章

  1. HBase HA的分布式集群部署(适合3、5节点)

    本博文的主要内容有: .HBase的分布模式(3.5节点)安装    .HBase的分布模式(3.5节点)的启动 .HBase HA的分布式集群的安装 .HBase HA的分布式集群的启动    .H ...

  2. HBase的多节点集群详细启动步骤(3或5节点)(分为Zookeeper自带还是外装)

    HBase的多节点集群详细启动步骤(3或5节点)分为: 1.HBASE_MANAGES_ZK的默认值是false(zookeeper外装)(推荐) 2.HBASE_MANAGES_ZK的默认值是tru ...

  3. HBase 2.1.3 集群 web 报错InvalidProtocolBufferException 解决方法

    搭建好HBase 集群后,各种后台进程都正常,搭建手册参考: Hbase 2.1.3 集群搭建手册https://www.cndba.cn/dave/article/3322 但是通过web访问,却报 ...

  4. HBase+Phoenix整合入门--集群搭建

    环境:CentOS 6.6 64位    hbase 1.1.15  phoenix-4.7.0-HBase-1.1 一.前置环境: 已经安装配置好Hadoop 2.6和jdk 1.7 二.安装hba ...

  5. hbase 0.98.1集群安装

    本文将基于hbase 0.98.1解说其在linux集群上的安装方法,并对一些重要的设置项进行解释,本文原文链接:http://blog.csdn.net/bluishglc/article/deta ...

  6. YCSB测试HBase远程完全分布式集群

    写在前面 本文只讲一个很简单的问题,YCSB对HBase集群的测试.虽然网上有很多介绍YCSB测试HBase的文章,但都是针对本地HBase伪分布式集群的.大家都知道,稍微正式一些的压测都会要求测试客 ...

  7. HBase体系架构和集群安装

    大家好,今天分享的是HBase体系架构和HBase集群安装.承接上两篇文章<HBase简介>和<HBase数据模型>,点击回顾这2篇文章,有助于更好地理解本文. 一.HBase ...

  8. HBase混布MapReduce集群学习记录

    一.准备工作 1.1 部署环境 集群规模大概260多台,TSC10机型,机型参数如下: > 1个8核CPU(E5-2620v4) > 64G内存 > HBA,12*4T SATA,1 ...

  9. HBase的单节点集群详细启动步骤(分为Zookeeper自带还是外装)

    伪分布模式下,如(weekend110)hbase-env.sh配置文档中的HBASE_MANAGES_ZK的默认值是true,它表示HBase使用自身自带的Zookeeper实例.但是,该实例只能为 ...

随机推荐

  1. noip 模拟赛 After 17(递推+特殊的技巧)

    来源:Violet_II T1 好神的一题,我竟然没做出来QAQ 首先我们发现,答案是sigma(x[i]*x[j], i>j)+sigma(y[i]*y[j], i>j).显然只需要讨论 ...

  2. 理解WCF中的Contracts

    WCF中的Contracts WCF通过Contract来说明服务和操作,一般包含五种类型的Contract:ServiceContract,OperationContract,FaultContra ...

  3. (转)Unity笔记之编辑器(UnityEditor)

    在使用unity3d的过程中,时常会需要从场景中寻找或者调用一个对象,而Unity就提供了一个贴心的功能——拖拽.用鼠标拖一下中比写堆代码直观的多吧!但是Unity提供的远远不止这一丢丢,下面我们来简 ...

  4. opencv2.4.9+VS2010配置

    opencv2.4.9 https://pan.baidu.com/s/15b5bEY65R4CptayEYVAG4A 安装包路径:D:\文件及下载相关\文档\Tencent Files\845235 ...

  5. poj 3498(最大流+拆点)

    题目链接:http://poj.org/problem?id=3498 思路:首先设一个超级源点,将源点与各地相连,边容量为各点目前的企鹅数量,然后就是对每个冰块i进行拆点了(i,i+n),边容量为能 ...

  6. C# 中利用反射机制拷贝类的字段和属性(拷贝一个类对象的所有东西付给另一个类对象,而不是付给引用地址)

    from:https://blog.csdn.net/poxiaohai2011/article/details/27555951 //C# 中利用反射机制拷贝类的字段和属性(拷贝一个类对象的所有东西 ...

  7. 自定义字体TextView

    /** * 备注: * 作者:王莹 * 时间:2017/5/4. * ~_~想睡觉了!! * (-o-)~zZ我想睡啦- * π_π?打瞌睡 */ public class FontsTextView ...

  8. Visual Assist X助手的一些使用技巧和快捷键

    部分快捷键 Shift+Alt+F // Find References 查找引用 Shift+Alt+S // FindSynbolDialog打开查找符号对话框 Alt+G // GotoImpl ...

  9. druid

    实时分析型数据库 Druid | Interactive Analytics at Scale http://druid.io/ Druid is primarily used to store, q ...

  10. 解决 pip 安装opendr包 卡住的问题

    使用豆瓣的源(已经确认过了该源中有opendr包),pip安装opendr,结果卡在了下载完成的位置,什么提示也没有.(如下图) 既然安装包已经下载下来了又安装不上,则应该是安装代码中有什么问题,只不 ...