HBase基本架构
架构角色:
(1)Master
Master 是所有 RegionServer 的管理者,负责监控集群中所有的 RegionServer 实例。主要作用如下:
管理元数据表格 hbase:meta,接收用户对表格创建修改删除的命令并执行;对于表的操作:create, delete, alter
监控 region 是否需要进行负载均衡,故障转移和 region 的拆分;对于 RegionServer的操作:分配 regions 到每个 RegionServer。
(2)Region Server
Region Server 为 Region 的管理者,主要作用如下:
对于数据的操作:负责数据 cell 的处理,例如写入数据 put,查询数据 get 、delete等
对于 Region 的操作,拆分合并 region 的实际执行者,有 master 监控,有 regionServer 执行,splitRegion、compactRegion。
(3)Zookeeper
HBase 通过 Zookeeper 来做 master 的高可用、RegionServer 的监控、记录 RegionServer 的部署信息、并且存储有 meta 表的位置信息。
HBase 对于数据的读写操作时直接访问 Zookeeper 的。
(4)HDFS
HDFS是Hadoop生态下的分布式文件系统,提供最终的底层数据存储服务,同时为 HBase 提供高容错的支持。
(5)WAL预写日志处理器
把 master 需要执行的任务记录到预写日志 WAL 中,如果 master 宕机,让 backupMaster
读取日志继续干。
(6)MemStore
写缓存,由于 HFile 中的数据要求是有序的,所以数据是先存储在 MemStore 中,排好序后,等到达刷写时机才会刷写到 HFile,每次刷写都会形成一个新的 HFile。