`

hbase root meta结构和存储数据

 
阅读更多

 

 

 

0 hbase 的 ROOT  META两个表介绍:

 

ROOT  META两个表是hbase的内置表,从存储结构和操作方法来说,他们和其他hbase表没有区别,

区别在于存储的东西不同,用于存储region的分布情况和每个region的详细信息。

 

 

1 这两个表的结构如下:

 



 

 

2  root表和meta表和真实region结构如下:

 



 

 

3 root表数据:

 

 



 

 

4 meta行记录:

 



 

 

5 查找某一行记录流程:

 

a) 代码位置:

整个路由过程的主要代码在org.apache.hadoop.hbase.client.HConnectionManager.TableServers中:

private HRegionLocation locateRegion(final byte[] tableName,  
        final byte[] row, boolean useCache) throws IOException {  
    if (tableName == null || tableName.length == 0) {  
        throw new IllegalArgumentException("table name cannot be null or zero length");  
    }  
    if (Bytes.equals(tableName, ROOT_TABLE_NAME)) {  
        synchronized (rootRegionLock) {  
            // This block guards against two threads trying to find the root  
            // region at the same time. One will go do the find while the  
            // second waits. The second thread will not do find.  
            if (!useCache || rootRegionLocation == null) {  
                this.rootRegionLocation = locateRootRegion();  
            }  
            return this.rootRegionLocation;  
        }  
    } else if (Bytes.equals(tableName, META_TABLE_NAME)) {  
        return locateRegionInMeta(ROOT_TABLE_NAME, tableName, row, useCache, metaRegionLock);  
    } else {  
        // Region not in the cache – have to go to the meta RS  
        return locateRegionInMeta(META_TABLE_NAME, tableName, row, useCache, userRegionLock);  
    }  
}  

 

  比如要查询Table2中RowKey是RK10000的数据:

获取Table2,RowKey为RK10000的RegionServer => 获取.META.,RowKey为Table2,RK10000, 99999999999999的RegionServer => 
获取-ROOT-,RowKey为.META.,Table2,RK10000,99999999999999,99999999999999的RegionServer => 获取-ROOT-的RegionServer => 
从ZooKeeper得到-ROOT-的RegionServer => 从-ROOT-表中查到RowKey最接近(小于) .META.,Table2,RK10000,99999999999999,99999999999999的一条Row,
并得到.META.的RegionServer => 从.META.表中查到RowKey最接近(小于)Table2,RK10000, 99999999999999的一条Row,
并得到Table2的RegionServer => 从Table2中查到RK10000的Row 

 

 到此为止Client完成了路由RegionServer的整个过程,在整个过程中使用了添加“99999999999999”后缀并查找最接近(小于)RowKey的方法。对于这个方法大家可以仔细揣摩一下,并不是很难理解。

最后要提醒大家注意两件事情:

1. 在整个路由过程中并没有涉及到MasterServer,也就是说HBase日常的数据操作并不需要MasterServer,不会造成MasterServer的负担。

2. Client端并不会每次数据操作都做这整个路由过程,很多数据都会被Cache起来

 

6 查看 hbase meta里数据写法:

hbase(main):012:0>scan 'hbase:meta' 

 

 

7 hbase  meta  root表记录字段数据总结:

 

rowkey:  tablename+startkey+timestamp

regioninfo: startkey+endkey+family-column

 

 

参考链接: 

http://blog.csdn.net/chlaws/article/details/16918913

http://www.aboutyun.com/thread-9100-1-2.html   写的不错

 

 

 

 

 

  • 大小: 23.3 KB
  • 大小: 61.6 KB
  • 大小: 19.7 KB
  • 大小: 30.4 KB
分享到:
评论

相关推荐

    HBase技术介绍

    系统中有两张特殊表,-ROOT-和.META.,它们分别保存了用户表Region信息和.META.表的Region信息,通过Zookeeper定位到这些元数据,客户端才能找到实际数据的位置。 总的来说,HBase是大数据处理领域的重要工具,尤其...

    hbase安装与hbase架构说明

    Zookeeper在HBase中扮演着关键角色,它不仅存储了根表-ROOT-和元数据表.META.的位置信息,还负责协调HMaster的选举,确保没有单点故障。HBase中的多个HMaster通过Zookeeper的Master Election机制来确定主HMaster,主...

    搭建HBase完全分布式数据库

    6. ZooKeeper:作为协调服务,负责管理ROOT表和META表,这些表存储了HBase中表的元数据信息,同时它还负责监控HBase集群中的节点状态,以及故障转移时HMaster的选举。 三、HBase数据库模型: HBase的数据模型设计为...

    Hadoop之Hbase从入门到精通

    HBase的设计灵感来源于Google的Bigtable论文,通过模仿Bigtable的核心架构和技术特性,HBase实现了在成本低廉的硬件上构建大型结构化存储集群的能力。 #### HBase与Hadoop生态系统 在Hadoop生态系统中,HBase处于...

    Hbase与zookeeper文档

    HMaster也维护`.ROOT.`和`.META.`表,这两张特殊表存储了所有表的元数据信息。 2. **RegionServer**:实际存储和处理数据的节点,每个RegionServer可以托管多个Region,Region是HBase数据存储的基本单位。...

    MR程序Bulkload数据到hbase

    4. **HFile移动**:使用HBase的`importtsv`命令或自定义工具,将HDFS上的HFile移动到HBase的`-ROOT-`和`.META.`表的region服务器上,或者直接将HFile路径添加到HBase的表中。 5. **数据加载**:一旦HFile被正确地...

    大数据HBASE考题材料

    - -ROOT-:保存了指向.META.表的位置。 - .META.:包含了所有用户表的Region位置信息。 - UserRegion:用户表的实际数据存储位置。 9. **防止数据丢失** - HLog:HBase通过维护WAL(Write Ahead Log)来防止...

    Hbase技术介绍

    特别的是,HBase中存在两个特殊的表:-ROOT-和.META.,分别用于存储.META.表的Region信息和用户表的Region信息,形成了自底向上的层次结构,简化了客户端对数据位置的查找过程。 #### MapReduce on HBase 在HBase...

    HBase技术介绍.docx

    - **HDFS(Hadoop Distributed File System)**: 作为HBase的基础存储层,提供高可用性和持久化的数据存储能力。 - **MapReduce**: 支持对HBase中的大量数据进行高效处理。 - **Zookeeper**: 提供协调服务和故障恢复...

    Hadoop之Hbase从入门到精通.doc

    Hadoop之HBase从入门到精通 ...HBase是一个功能强大且高效的分布式存储系统,适合大规模结构化数据存储和处理。本文仅为HBase技术的入门级介绍,读者可以继续深入学习HBase技术,掌握更多的高级应用。

    Hadoop之Hbase从入门到精通 .doc

    * 面向列:HBase 是一个面向列的分布式存储系统,提供了灵活的数据存储和检索能力。 HBase 访问接口 ---------------- HBase 提供了多种访问接口,包括: * Native Java API:最常规和高效的访问方式,适合 ...

    大数据云计算技术系列 Hadoop之Hbase从入门到精通(共243页).pdf

    值得注意的是,系统中存在两个特殊表:“-ROOT-”和“.META.”,它们用于存储所有表的区域位置信息,确保数据定位的高效性。 HBase与Hadoop MapReduce的集成是其处理大数据的关键。通过MapReduce,用户可以编写复杂...

    Hbase架构简介、实践

    - **ZooKeeper**:维护配置信息、名字空间,提供分布式同步、组管理的中心化协调服务,存储master、regionserver、-ROOT-、.META.表的服务器地址。 - **HRegionServer**:处理来自Client的读、写、扫描请求,与...

    hbase从入门到编程 - 文档.pdf

    - **传统数据库**: 支持丰富的数据类型和复杂的数据结构。 - **HBase**: 主要支持简单的字符串数据类型。 - **数据访问模式**: - **传统数据库**: 复杂的SQL查询。 - **HBase**: 主要支持基于RowKey的简单查询。...

    05-Hbase安装部署及优化.pdf

    Hbase安装部署及优化知识点详细解析: 一、Hbase概述 Hbase是建立在Apache HDFS上的NoSQL分布式...Hbase凭借其列存储的特性,为海量数据提供了可靠的存储和高效的数据处理解决方案,是处理大规模数据集的理想选择。

    阿里的HBase业务和容灾实践

    - 三层索引结构:Root Table、Meta Table、User Table。 - Region的大小默认最大为256M,平均为128M。 - 三层B+树扩展LSM树(日志结构合并树)结构,适合范围查询。 - Rowkey的排序基于字节序。 3. HBase的业务设计...

    Hadoop之HBase简介

    HBase还依赖两张特殊的表——`-ROOT-`和`.META.`来存储Region信息,实现快速的数据定位和查询。 总的来说,HBase是应对大数据挑战的关键组件,通过其列式存储、分布式处理和灵活的数据模型,为企业提供了强大的...

    HBase源码分析

    Masterserver相当于HBase集群的总管,负责元数据表Root和Meta的操作。 2. HRegionInterface:由RegionServer实现的接口,提供Region级别的操作,如数据存储、检索等。 3. HMasterRegionInterface:这是...

Global site tag (gtag.js) - Google Analytics