大数据Hadoop玩转大数据

RegionServer详解

2016-12-30  本文已影响3149人  和心数据

HRegionServer是HBase中最主要的组件,负责table数据的实际读写,管理Region。在分布式集群中,HRegionServer一般跟DataNode在同一个节点上,目的是实现数据的本地性,提高读写效率。

0.94之后的HRegionServer:图片来自Map-R网站 0.94之前的HRegionServer HBase结构

1 RegionServer中的组件

1.1 WAL:Write Ahead Log

1.1.1 主要特点

1.1.2 多WAL实例

<property>   
  <name>hbase.wal.provider</name>   
  <value>multiwal</value> 
</property>

1.1.3 WAL Splitting :分组

1.1.4 WAL Replay :重播

可查看 3.4 WAL Repaly 流程

1.2 MemStore

1.3 BlockCache

1.3.1 HBase 'Block'

详细信息请看 BlockCache资料

1.4 Region

详细信息请看Region详解

2 RegionServer的主要功能

3 RegionServer的主要流程

3.1 首次读写流程

首次读写流程,图片来自Map-R网站

3.2 写流程

写流程(一),图片来自Map-R 写流程(二),图片来自Map-R

3.3 读流程

  1. 首先扫描BlockCache(读缓存)中寻找row cell,若没有则执行2
  2. 扫描MemStore(写缓存)中寻找row cell,若没有则执行3
  3. HBase会使用BlockCache索引和bloom filters来加载那包含目标row cells的HFile到内存
读流程,图片来自Map-R

3.4 WAL Splitting 流程

  1. /hbase/WALs/<host>,<port>,<startcode> 目录进行重命名
  1. 读取WAL中的Edits信息根据region将属于不同region的edits写到对应的/hbase/<table_name>/<region_id>/recovered.edits/.temp(临时文件),当splitting完成后,临时文件名称会修改为写入该文件的第一个log信息的序列号
  2. 在Splitting完成后,涉及到的Region会被分配新的RegionServer,那么在新的RegionServer打开Region时会检查recovered.edits目录下是否有edits文件,如果有则读取edits写入到MemStore中,写入完成后刷新到HFile中并删除edits文件。

3.4 WAL Repaly 流程

WAL Replay,图片来自Map-R

参考资料

BlockCache
Apache HBase ™ Reference Guide
An In-Depth Look at the HBase Architecture
深入分析RegionServer

若有侵权,请联系我

上一篇 下一篇

猜你喜欢

热点阅读