`

hbase hbck流程

阅读更多

 

HBaseFsck类的hbase hbck流程;hbck是一个很重的管理工具,他会访问所有rs,扫描整个meta表,以及读取所有table region里的regioninfo,所以不要频繁使用hbck,会给hbase带来压力

 

 /**
   * This repair method requires the cluster to be online since it contacts
   * region servers and the masters.  It makes each region's state in HDFS, in
   * hbase:meta, and deployments consistent.
   *
   * @return If > 0 , number of errors detected, if < 0 there was an unrecoverable
   * error.  If 0, we have a clean hbase.
   */
  public int onlineConsistencyRepair() throws IOException, KeeperException,
    InterruptedException {
    clearState();

    // get regions according to what is online on each RegionServer
    //加载每个regionserver上的region,将regioninfo放入map中,regioninfo中没有metainfo
    loadDeployedRegions();
    // check whether hbase:meta is deployed and online
    //加载meta表的regioninfo,并检查meta表的regioninfo
    recordMetaRegion();
    // Check if hbase:meta is found only once and in the right place
    //检查meta表,有且只有一个region
    if (!checkMetaRegion()) {
      String errorMsg = "hbase:meta table is not consistent. ";
      if (shouldFixAssignments()) {
        errorMsg += "HBCK will try fixing it. Rerun once hbase:meta is back to consistent state.";
      } else {
        errorMsg += "Run HBCK with proper fix options to fix hbase:meta inconsistency.";
      }
      errors.reportError(errorMsg + " Exiting...");
      return -2;
    }
    // Not going with further consistency check for tables when hbase:meta itself is not consistent.
    LOG.info("Loading regionsinfo from the hbase:meta table");
    //扫描meta表,将regioninfo放入map中,添加metainfo信息
    boolean success = loadMetaEntries();
    if (!success) return -1;

    // Empty cells in hbase:meta?
    reportEmptyMetaCells();

    // Check if we have to cleanup empty REGIONINFO_QUALIFIER rows from hbase:meta
    if (shouldFixEmptyMetaCells()) {
      fixEmptyMetaCells();
    }

    // get a list of all tables that have not changed recently.
    if (!checkMetaOnly) {
      reportTablesInFlux();
    }

    // load regiondirs and regioninfos from HDFS
    if (shouldCheckHdfs()) {//唯一一个默认是true的
      loadHdfsRegionDirs();//获得所有hbase table region dir,将regioninfo hbckinfo上添加hdfsentry对象,表示region在hdfs上的信息
      loadHdfsRegionInfos();//获得所有hbase table region hfile,检查region是否存在(meta region存在,hdfs region不存在)
    }

    // Get disabled tables from ZooKeeper
    loadDisabledTables();

    // fix the orphan tables
    fixOrphanTables();

    // Check and fix consistency
    checkAndFixConsistency();//默认流程,检查meta和hdfs上的region丢失

    // Check integrity (does not fix)
    checkIntegrity();//默认流程,检查region漏洞
    return errors.getErrorList().size();
  }

 

分享到:
评论
1 楼 qindongliang1922 2016-02-16  
楼主对hbase的掌握的不错啊, 

相关推荐

    HBase hbck 2.0 jar包下载

    该文件为hbase hbck2 jar;适用于hbase 2.x维护,hbase 1.x不适用;对于HBase跨集群HD集群迁移,当HDFS文件迁移后,使用HBCK客户端,完成HBase元数据修复。当前版本:hbase-hbck2-1.3.0.jarhbase hbck -j /opt/...

    hbase2.x-hbck2 jar包及测试命令

    在HBase 2.x版本中,HBCK2(HBase FileSystem Check Tool 2)是一个重要的工具,用于检查和修复HBase表和Region的不一致性。HBCK2是HBase维护和故障排查的重要组成部分,尤其在处理数据丢失、Region分裂不正确或者元...

    hbase hbck2 jar

    hbase hbck2 jar; 完整打包;...使用命令:hbase hbck -j hbase-hbck2-1.3.0-SNAPSHOT.jar fixMeta,最后两个参数分别代表 hbck2 jar包路径,维护命令(hbase-hbck2-1.3.0-SNAPSHOT.jar fixMeta)

    hbase hbck2修复工具hbase-operator-tools-1.0.0.1.0.0.0-618-bin.tar.gz

    hbase hbck2修复工具hbase-operator-tools-1.0.0.1.0.0.0-618-bin.tar.gz,hbase1版本的hbck已经不支持修复命令,hbase2.1版本需要用这个新版的工具

    hbase-hbck2-1.1.0-SNAPSHOT.jar

    hbase-hbck2-1.1.0-SNAPSHOT.jar

    hbase-hbck2-1.2.0-SNAPSHOT.jar

    HBCK是HBase1.x中的命令,到了HBase2.x中,HBCK命令不适用,且它的写功能(-fix)已删除; HBCK2已经被剥离出HBase成为了一个单独的项目,如果你想要使用这个工具,需要根据自己HBase的版本,编译源码。其GitHub地址...

    hbase-hbck2-1.0.0.jar

    Hbase修复工具 示例情景: Q:缺失hbase.version文件 A:加上选项 -fixVersionFile 解决 Q:如果一个region即不在META表中,又不在hdfs上面,但是在regionserver的online region集合中 A:加上选项 -...

    hbase-hbck2-1.2.0,支持hbase[2.0.3, 2.0.5,2.1.1, 2.2.0, 3.0.0]版本

    hbase 2.x以后取消了hbase hbck,需要使用hbase hbck2,我编译的这个版本可以支持hbase[2.0.3, 2.0.5, 2.1.1, 2.2.0, 3.0.0],具体怎么使用,可以参考 https://bbs.huaweicloud.com/blogs/353333,或者留言问我哈。

    hbase 修复工具,hbck 编译好

    hbase 修复工具,hbck 编译好

    hbase和hadoop数据块损坏处理

    HBase hbck 工具是一个非常有用的工具,可以检查 HBase 集群的健康状态。HBase.RegionServer 可能会因为机器硬件、网络、时间同步、GC 等原因挂掉,导致 HBase 冲突问题。hbck 工具可以检查 HBase 集群的健康状态,...

    hbase-hbck2-1.2.0

    处理hbase异常工具

    HBase2.x之RIT问题解决.docx

    在HBase 1.x系列中,RIT问题通常可以通过hbase hbck –repair命令完成修复。但是在HBase 2.x系列中,该命令还没有支持,所以暂时无法通过这种命令完成修复。 方案三:执行assign或unassign命令 根据RIT状态执行...

    hbase-exporter:HBase Prometheus导出器

    hbase-exporterHBase Prometheus导出器收集指标并中继JMX指标以供Prometheus使用由于JMX中一些重要的指标缺失或为空,因此我们另外分析了HBase主界面,例如“过渡中的过时区域” 解析“ hbase hbck”命令的输出以...

    hadoop+hbase+zookeeper集群配置流程及文件

    3. 初始化HBase:执行`hbase hbck -fix`检查和修复HBase元数据。 4. 启动HBase:通过`start-hbase.sh`命令启动Master和RegionServer。 Zookeeper3.4.12是一个分布式协调服务,用于管理Hadoop和HBase的元数据。配置...

    hbase-0.94.1手动数据迁移.docx

    在HBase的bin目录下执行`./hbase hbck -fixMeta`命令,目的是修复可能因迁移导致的元数据不一致问题。元数据包括关于表、Region和分配信息的详细记录。 5. **重新分配Region**: 迁移后,可能需要重新分配Region以...

    基于HBase的大数据解决方案.pdf

    HBCK提供了多种检查命令,例如"./bin/hbase hbck"、"./bin/hbase hbck –details"等。HBCK也提供了多种修复命令,例如"-fixAssignments"、"-fixMeta"等。 HBCK局部低危修复 HBCK局部低危修复用于修复HBase集群中的...

    1-5+HBase+在网易的探索实践.pdf

    HBCK是HBase的健康检查工具,用于检测和修复HBase集群的一致性和完整性问题。它主要检查以下方面: 1. **Region一致性**:确保每个region都正确地分配并部署到唯一的RegionServer上,且在内存、hbase:meta表和...

    hbase2.x hbck2

    hbase

    HBase 应用平台 balancer 功能

    例如,使用`hbase hbck -balance`命令可以强制执行一次负载均衡。同时,管理员也可以通过HBase的Web UI或JMX接口来监控和控制balancer的状态。 总之,HBase的`balancer`功能是保证集群高效运行的关键组件。它通过...

Global site tag (gtag.js) - Google Analytics