RegionServer要点
1.HRegionServer一般和DataNode在同一台机器上运行,实现数据的本地性,提高读写效率。
2.HRegionServer包含多个HRegion,由WAL(HLog)、BlockCache、MemStore、HFile组成。
RegionServer详解
RegionServer是HBase集群运行在每个工作节点上的服务。它是整个HBase系统的关键所在,一方面它维护了Region的状态,提供了对于Region的管理和服务;另一方面,它与Master交互,参与Master的分布式协调管理。
RegionServer组件介绍
架构图
每个组件大致作用
StoreFile:存储有序的KeyValue的文件,存储在HDFS上,
MemStore:写缓存,KeyValue在Memstore中进行排序,达到阈值之后会flush到StoreFile,每次flush生成一个新的StoreFile.
WAL: write ahead log, 预写日志,防止RegionServer故障,导致Memstore中的数据丢失.
BlockCache: 读缓存,每次新查询的数据都会缓存到BlockCache中.
每个组件的大致关系
1.每个RegionServer可以服务于多个Region,
2.每个RegionServer中有多个Store,一个WAL和一个BlockCache
3.每个Store对应一个列族,包含MemStore和StoreFile
HBase读写简述
HBase在进行读写操作的时候第一步先找Region所对应的RegionServer
Table Regions
Name | Region Server | Start Key | End Key | Locality | Requests |
---|---|---|---|---|---|
ns1:t1,,1605063437004.23fa7e7c5687921e55e05f715b9e6584. | zjj103:16030 | 1.0 | 43 |
在访问ns1库的t1表的时候,会先找到zjj103:16030 这个RegionServer ,这条右边还有一个Requests表示当前的RegionServer被请求了多少次
一个region有多个Store(列族)
在HBase写入的时候数据会先暂存到MemStore里面,达到阈值之后才会刷新到StoreFile文件里面.
WAL是保证一旦RegionServer宕机了,如果MemStore里面的数据还没来得及写入到StoreFile里面,后面可以通过WAL进行恢复没有被来得及写到StoreFile里面的数据.