HBase的系统架构

    技术2022-07-11  132

    HBase的系统架构

    Client 访问Hbase的入口,有多种连接方式向HBase的服务器发送命令在客户端记录服务器的缓存信息,留待下一次的使用 Zookeeper 监控集群中HMaster的运行情况,保证集群在任何时候只有一个主Master当我们创建表的时候,表的结构信息会存放在Zookeeper中 防止放在HMaster上节点故障,丢失数据让主从master共享数据更快的访问数据 HMaser管理HRegionServer,zookeeper监听HRegionServer上线或者下线Zookeeper保存了Region的地址 HMaster 接受客户端的请求-DDL监控RegionServer,了解RegionServer的当前节点状态接受DDL请求之后,会选择一个空闲(内存,空间)的节点执行表的创建当发现HRegionServer掉线后,会将其上的region切换到其他的HRegionServer HRegionServer HRegionServer负责管理当前节点的Region一个HRegionServer有可能存在多个Region监控Region的大小,达到阈值(10G),将Region进行相对等分 切分数据的时候,以保证数据完整性为前提 新分的Region交给另外的HRegionServer维护负责维护与客户端的IO请求 HLog(WAL日志) write ahead log 提前写入日志HLog隶属于HRegionServerHRegionServer中的所有HRegion共享这个HLog当达到阈值的时候,会优先写出日志,然后将mem中的数据写出到Storefile写出之后再Hlog中记录一个检查点,新增加到内存的时候都在这个日志之后HLOG最终也会被写出到DFS上 HRegion 初始情况下,一个表对应一个Region,随着数据增多,region有可能被切分 Region的预分区:在建表时就提前创建N个Region这些Region会被分配至不同的HRegionServer即使表的数据没有达到10G的阈值也会有多个HRegionServer提供服务 一个表对应多个Region,但是一个Region只对应一个表数据存放到表的时候会按照rowkey的字典序排列那么切分Region的时候,新的Region也是有序的 Store 一个Region由多个Store组成一个Store对应一个列族Store由memstore和StoreFile组成 memstore:1StoreFile:N 当数据存放到数据库的时候,数据应该存放到 内存:快,掉电易失硬盘:持久化,慢做任何操作之前,先存放日志将数据写入到内存中,然后找准时机将数据持久化到硬盘阈值(内存的占比)(日志的条数) MemStore 基于内存的数据存储当新增数据的时候先写入到日志,然后写入到内存这样会提高数据插入速度 StoreFile 就属于将MemStore中的数据写出到DFS随着时间的推移,StoreFile的数量会越来越多当一个数据被修改的时候,并不会直接操作原来的StoreFile,只是对这个记录做一个标识当StoreFile达到一定数量的时候,会进行合并客户端进行数据检索时,优先查找MemStore,然后才去StoreFile
    Processed: 0.014, SQL: 9