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有大量的小文件