HBase读写流程

1.简述hbase读写流程

1.1 读流程

  • 客户端与zk进行连接;从zk找到meta表的region的位置,即meta表的数据存储在某个HReginServer上;客户端与这个HRegionServer建立连接,然后读取meta表中的数据;
  • 根据要查询的namespace、表名、rowkey信息。找到对应的的region信息
  • 找到相应的HRegionServer
  • 找到对应的region
  • 先从memstore里面查找数据,如果没有再到BlockCache上读取
  • 如果BlockCache上也没有找到再到StoreFile上仅从读取
  • 从StoreFile中读取数据到数据后,先写入到BlockCache中然后再返回给客户端

1.2 写流程

  • client与zk建立链接,从zookeeper中找到meta表中region的位置,然后读取meta表中的数据
  • meta表中存储了用户表的region信息,根据要查询的namespace、表名、rowkey信息。找到写入数据对应的的region信息
  • 找到对应的HRegionServer然后发送写请求
  • 把数据写入到HLog和memstore中
  • memstore中的数据到达阀值后会把数据刷写到磁盘,生成一个storeFile,即一个HFile
  • 当达到一定条件后,会把小的HFile合并成大的HFile,避免hdfs有大量的小文件
posted @ 2019-11-23 23:25  JamesVie  阅读(294)  评论(0编辑  收藏  举报