(1)通过元数据表定位目标数据所在RegionServer;
(2)发送请求到该RegionServer。同时这些元数据会被缓存在客户端本地,以方便之后的请求访问。(若数据分片导致发生迁移,需要重新请求最新的元数据并缓存到本地)
元数据表是什么?
hbase:meta,元数据表中存储了哪些信息:
一张表有哪些reigon、
region分别分配到哪些regionserve上、
每个reigon的startkey和stopkey的大小
2、ZookeeperZK主要用于协调管理分布式应用程序,功能如下:
(1)实现Master高可用;Master故障,选举新的Master;
(2)管理系统核心元数据;如管理当前正常工作的RegionServer集合,保存元数据表meta所在的RegionServer。
(3)参与RegionServer宕机恢复;通过心跳检测RegionServer是否宕机,若宕机,通知Master处理;
(4)实现分布式锁;防止多个用户对表同时进行管理,造成表状态不一致。
3、Master(1)处理用户的各种管理请求:建表、修改表、权限操作、切分表、合并数据分片;
(2)管理集群中所有的RegionServer,如RegionServer中Region的负载均衡、RegionServer的宕机恢复以及Region的迁移;
(3)清理过期的日志和文件:Master会隔一段时间检查HDFS中HLog是否过期、HFile是否删除,过期后删除;
4、RegionServer组成部分:
(1)WAL(HLog):两个核心作用,数据的高可靠性、实现主从复制;
(2)BlockCache:读缓存,客户端从磁盘读取数据之后通常会将数据缓存到系统内存中,后续访问同一行数据可以直接从内存中获得,对于带有大量热点读的业务请求来说,缓存机制会带来极大的性能提升。 BlockCache缓存对象是一系列Block块,一个Block默认为64K,由一系列物理上相邻的多个KV数据组成。同时利用了空间局部性和时间局部性。实现方法主要有LRUBlockCahce、BucketCache。
(3)Region: 数据表的一个分片,当数据表大小超过一定阈值就会“水平切分”,分裂为两个region。region中包含store,store的个数取决于的列簇的个数。



