写流程:
1:Client先访问zookeeper,得到对应的RegionServer地址
2:Client对RegionServer发起写请求,RegionServer接受数据写入内存
3:当MemStore的大小达到一定的值后,flush到StoreFile并存储到HDFS
Region是hbase存储数据的基本单元,数据都存储在Region中,每一个Region只存储一个columnFamily(列族)的数据,而且只是这个列族的一部分,当Region的大小达到某个阈值之后,会根据rowkey的排序,划分为多个Region,每个Region中包含多个Store对象,每个Store对象包含一个memStore和一个或多个Store File,memStore是数据在内存的实体,并且一般是有序的,当有数据写入的时候,回先写入到memStore中,当memStore的大小达到上限之后,Store会创建StoreFile,StoreFile便是Hfile的一层封装。
Hbase保证内存中的数据不会丢失,是使用HLog,HLog是WAL(预写日志)的一种实现,RegionServer将更新操作记录到memStore,然后更新到HLog中,只有当更新到HLog中成功后,这条记录才算真正成功的写入,当memStore数据丢失,可以使用HLog找回,注意,一般的WAL是先写入日志再写入内存,但是Hbase是先写入内存后写入日志
4-Hbase读数据流程