一、HBase 写数据流程:(读比写慢)
1.Client 发送请求 meta 表所在的RegionServer 给 Zookeeper(/hbase/meta-region-server)
2.Zookeeper 返回 meta:hadoop102 给Client(meta表里存的是 用户或者系统表的位置)
3.Client 请求meta 给 hadoop102
4.hadoop102 返回 meta,获取 RS 给Client
5.Client 缓存 Meta cache
6.Client 发送 Put 请求给 hadoop103
7.hadoop103 写入 wal(预写日志) 后写入 MemStore(内存)(源码过程)
8.hadoop103 发送 ack(写完了) 给Client
二、HBase 读数据流程:
1.client 发送 请求 meta 表所在的 RegionServer 到 Zookeeper(/hbase/meta-region-server)
2.Zookeeper 发送 meta:hadoop102 到 client
3.client 发送 请求meta 给hadoop102
4.hadoop102 返回 meta,获取 RS 给client
5.client 缓存 Meta cache
6.client 发送Get请求 到hadoop103
7.读取 Storefile(磁盘) 并将其放进 BlockCache(存放磁盘文件读取出来的数据),读取 MemStore(内存) 将读取出的这两个文件合并(merge)比较时间戳然后返回读取的数据
注意:读写流程可以不需要 master