Hbase写数据大概流程

Hbase写数据大概流程
**1.**发起put请求,put的时候连接zookeeper客户端,ZK进行校验(Master是否存在,是否能写)

2.然后返回一个meta元数据位置,就知道meta元数据信息在哪个机器上

**3.**请求这个机器,拿到meta表,下载到本地缓存存储,(缓存起来增加效率,不用每次都得拿)

**4.**然后开始解析,解析put的数据应该存储在哪个机器的哪个Region上,找到位置后就请求这个机器RS要写数据,一边往Region对应的store所对应的内存中写,一个列族一个store,一个store对应一个Memstore,一边往日志里写,保证内存和日志的事务性(保证这一组逻辑操作要么全部成功要么全部失败,保证安全性)

**5.**当写入内存的数据达到一定大小,开始flush写,flush时有一个storefile(Hfile)直接就写在了对应的表的Region的名字的下面,有一个列族名称,列族名称有对应的file,写到这里面来,到此为止,写数据流程就完成了