1) 定义
Hbase是在HDFS上开发的面向列的分布式数据库
能够简单的通过增加节点来达到线性扩展,传统的关系型数据库不可以,Hbase不是关系型数据库,它不支持SQL,面向列的存储器
表的键是有序的;
2) 实现
Hbase和hadooop,MapReduce采用了相同的模型,用一个Master节点协调管理一个或多个RegisonServer从属机;
Hbase依赖于Zookeeper。在启动一个客户端到HBase集群的连接时,客户端必须至少拿到集群所传递的ZooKeeper整体的位置。这样,客户端通过访问ZooKeeper,了解集群的属性,如服务器的位置;
3)数据读取机制
HBase中有特殊的目录表: -ROOT- 和 .META. 它们维护着当前集群上所有区域的列表、状态和位置;
-ROOT- : 包含.META. 表的区域列表
.META. : 包含所有用户空间区域(user-space region)的列表
表中的项使用区域名作为键,区域名所属的表名、区域的起始行、区域创建的时间以及整体的哈希值组成,这样,要查找一个特定行所在的区域只要在目录表中找到第一个键大于或等于给定行键即可;
过程:新连接到ZooKeeper集群上的客户端首先查找-ROOT-的位置。然后客户端通过-ROOT-获取所请求行所在范围所属.META.区域的位置。客户端接着查找.META.区域来获取用户空间区域所在节点及其位置。这样,客户端就可以直接和管理那个区域的RegisonServer进行交互。
RegionServer数据错误恢复机制: page (436)