Hbase 系列-架构图

HBase� is the Hadoop database ,当你需要random、realtime read/write 访问你的大表时,特别是有数十亿基本的行和数百万的columns时,HBase比较适用。


下图是经典的架构图:


术语


  • HMaster 负责负载均衡
  • HRegionServer 一般与dataNode在同一个节点,处理本地数据。
  • Region:一张Table的数据放在一个或多个Region中。
  • Store(Column Family):一张Table有多个列族,一个列簇对应Region中的一个Store。
  • MemStore:每个store都有一个memStore,在数据写入WAL后,写入缓存,达到flush阈值时,会flush到disk。
  • StoreFile(HFile):实际存储数据的地方,在HDFS上。

一个流程示例,助攻理解


  1. 当客户端发起一个Put请求时,首先它从hbase:meta表中查出该Put数据最终需要去的HRegionServer。然后客户端将Put请求发送给相应的HRegionServer,在HRegionServer中它首先会将该Put操作写入WAL日志文件中(Flush到磁盘中)。

  2. 写完WAL日志文件后,HRegionServer根据Put中的TableName和RowKey找到对应的HRegion,并根据Column Family找到对应的HStore,并将Put写入到该HStore的MemStore中。此时写成功,并返回通知客户端。

  3. MemStore是一个In Memory Sorted Buffer,在每个HStore中都有一个MemStore,即它是一个HRegion的一个Column Family对应一个实例。它的排列顺序以RowKey、Column Family、Column的顺序以及Timestamp的倒序。

你可能感兴趣的:(Hbase 系列-架构图)