一、HBase的体系结构:主从架构
1、主节点:HMaster 管理员
作用:
1、为Hregionserver分配region:区域
2、负责Hregionserver的负载均衡
3、发现失效的Hregionserver并重新分配其上的region
4、接收客户端的请求:对HBase表进行增删改查等操作
2、从节点:Hregionserver
作用:
1、保存region,处理用户对region的IO请求(增删改查)
2、向HDFS中读写数据
Hregionserver越多,HBase/hadoop的实时查询存储能力越大,查询速度越快
把HBase抽象成一个图书馆,Hregionserver抽象成书架
HBase和Hadoop属于横向扩展的开源组件
3、Zookeeper:分布式应用程序协调服务
作用:
1、保存HBase集群结构信息:HMaster、Hregionserver,表的信息(-ROOT-:保存所有Meta表的信息 .META.:保存region的元信息) region的元信息
2、实现HBase集群的HA(High Availability:高可用性)功能
二、HBase架构原理:
1、对比HDFS和HBase:
HBase:
数据最终保存在Datanode中(表:目录 记录:Hfile文件) 实时查询/随机访问功能
数据元信息保存在Zookeeper中
HDFS:
文件保存在Datanode中 永久存储文件
文件元信息保存在Namenode中
2、客户端通信机制:
1)客户端通过RPC(Remote Process C远程过程调用协议)与HMaster和Hregionserver通信
2)客户端与HMaster通信进行管理类的操作
3)客户端与Hregionserver通信进行数据读写操作
注:相同行键为一条记录,一个行键/一条记录为一个region
3、解析HBase架构原理图:
Region:区域
store:仓库 多个store组成一个region,一个store保存一个列族
storefile:仓库文件 一个memstore和多个storefile组成一个store 一个storefile保存一个Hfile
memstore:内存仓库 保存最新一批数据的更新操作 128M阈值 溢写形成storefile 多个storefile最终会合并成一个storefile
storefile大小大于256M region会自动分裂 另一个region由HMaster分配给其他regionserver,实现负载均衡
storefile文件小于<128M
Datanode保存的Block storefile—->Hfile保存在HDFS中