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 写的不错
相关推荐
系统中有两张特殊表,-ROOT-和.META.,它们分别保存了用户表Region信息和.META.表的Region信息,通过Zookeeper定位到这些元数据,客户端才能找到实际数据的位置。 总的来说,HBase是大数据处理领域的重要工具,尤其...
Zookeeper在HBase中扮演着关键角色,它不仅存储了根表-ROOT-和元数据表.META.的位置信息,还负责协调HMaster的选举,确保没有单点故障。HBase中的多个HMaster通过Zookeeper的Master Election机制来确定主HMaster,主...
6. ZooKeeper:作为协调服务,负责管理ROOT表和META表,这些表存储了HBase中表的元数据信息,同时它还负责监控HBase集群中的节点状态,以及故障转移时HMaster的选举。 三、HBase数据库模型: HBase的数据模型设计为...
HBase的设计灵感来源于Google的Bigtable论文,通过模仿Bigtable的核心架构和技术特性,HBase实现了在成本低廉的硬件上构建大型结构化存储集群的能力。 #### HBase与Hadoop生态系统 在Hadoop生态系统中,HBase处于...
HMaster也维护`.ROOT.`和`.META.`表,这两张特殊表存储了所有表的元数据信息。 2. **RegionServer**:实际存储和处理数据的节点,每个RegionServer可以托管多个Region,Region是HBase数据存储的基本单位。...
4. **HFile移动**:使用HBase的`importtsv`命令或自定义工具,将HDFS上的HFile移动到HBase的`-ROOT-`和`.META.`表的region服务器上,或者直接将HFile路径添加到HBase的表中。 5. **数据加载**:一旦HFile被正确地...
- -ROOT-:保存了指向.META.表的位置。 - .META.:包含了所有用户表的Region位置信息。 - UserRegion:用户表的实际数据存储位置。 9. **防止数据丢失** - HLog:HBase通过维护WAL(Write Ahead Log)来防止...
特别的是,HBase中存在两个特殊的表:-ROOT-和.META.,分别用于存储.META.表的Region信息和用户表的Region信息,形成了自底向上的层次结构,简化了客户端对数据位置的查找过程。 #### MapReduce on HBase 在HBase...
- **HDFS(Hadoop Distributed File System)**: 作为HBase的基础存储层,提供高可用性和持久化的数据存储能力。 - **MapReduce**: 支持对HBase中的大量数据进行高效处理。 - **Zookeeper**: 提供协调服务和故障恢复...
Hadoop之HBase从入门到精通 ...HBase是一个功能强大且高效的分布式存储系统,适合大规模结构化数据存储和处理。本文仅为HBase技术的入门级介绍,读者可以继续深入学习HBase技术,掌握更多的高级应用。
* 面向列:HBase 是一个面向列的分布式存储系统,提供了灵活的数据存储和检索能力。 HBase 访问接口 ---------------- HBase 提供了多种访问接口,包括: * Native Java API:最常规和高效的访问方式,适合 ...
值得注意的是,系统中存在两个特殊表:“-ROOT-”和“.META.”,它们用于存储所有表的区域位置信息,确保数据定位的高效性。 HBase与Hadoop MapReduce的集成是其处理大数据的关键。通过MapReduce,用户可以编写复杂...
- **ZooKeeper**:维护配置信息、名字空间,提供分布式同步、组管理的中心化协调服务,存储master、regionserver、-ROOT-、.META.表的服务器地址。 - **HRegionServer**:处理来自Client的读、写、扫描请求,与...
- **传统数据库**: 支持丰富的数据类型和复杂的数据结构。 - **HBase**: 主要支持简单的字符串数据类型。 - **数据访问模式**: - **传统数据库**: 复杂的SQL查询。 - **HBase**: 主要支持基于RowKey的简单查询。...
Hbase安装部署及优化知识点详细解析: 一、Hbase概述 Hbase是建立在Apache HDFS上的NoSQL分布式...Hbase凭借其列存储的特性,为海量数据提供了可靠的存储和高效的数据处理解决方案,是处理大规模数据集的理想选择。
- 三层索引结构:Root Table、Meta Table、User Table。 - Region的大小默认最大为256M,平均为128M。 - 三层B+树扩展LSM树(日志结构合并树)结构,适合范围查询。 - Rowkey的排序基于字节序。 3. HBase的业务设计...
HBase还依赖两张特殊的表——`-ROOT-`和`.META.`来存储Region信息,实现快速的数据定位和查询。 总的来说,HBase是应对大数据挑战的关键组件,通过其列式存储、分布式处理和灵活的数据模型,为企业提供了强大的...
Masterserver相当于HBase集群的总管,负责元数据表Root和Meta的操作。 2. HRegionInterface:由RegionServer实现的接口,提供Region级别的操作,如数据存储、检索等。 3. HMasterRegionInterface:这是...