1、HBase数据写入流程
1、客户端访问Zookeeeper,从Meta表中得到写入数据对应的Region信息和相应的Region服务器。
2、客户端访问相应的Region服务器,把数据分别写入HLog和MemStore。MemStore数据容量有限,当达到一个阈值后,则把数据写入磁盘文件StoreFile中,在HLog文件中写入一个标记,表示MemStore缓存中的数据已被写入StoreFile中。如果Memtore中的数据丢失,则可以从HLog上恢复。
3、当多个StoreFile文件达到阈值后,会触发Store.compact()将多个StoreFile文件合并为一个大文件。
2、HBase数据读取流程
1、客户端先访问Zookeeper,从Meta表读取Region信息对应的服务器。
2、客户端向对应Region服务器发送读取数据的请求,Region接受请求后,先从MemStore查找数据;如果没有,再到StoreFile上读取数据,然后将数据返回给客户端。