RegionServer作用与组件
• 响应client的读写请求,进行I/O操作(直接绕过HMaster)
• 与HDFS交互,管理table数据
• 当Region的大小到达阀值时切分Region
• 管理一个或者多个region

BlockCache、WAL、Region
BlockCache
• 读缓存,数据被读取之后仍然缓存在内存中
• 有LruBlockCache(效率较高,GC压力大)和BucketCache(效率较低,没有GC压力)两种BlockCache,默
认为LruBlockCache
• 每个RegionServer中只有一个BlockCache实例
Block
- HBase读写中的最小单元
- 有四种类型的block:DATA、INDEX、BLOOM和META
-- DATA:存储用户数据
-- INDEX:用于提高读取速度,为DATA BLOCK中的cell建立索引
-- BLOOM:用于提高读取速度,用bloom filter过滤掉不包含需求数据的block
-- META:存储HFile本身数据和元数据
WAL:Write Ahead Log
• 为一个文件
• 0.94之前叫做HLog,存储在/hbase/.logs/目录中
• 0.94之后存储在HDFS上的/hbase/WALs/{HRegionServer_name}中
• 记录RegionServer上的所有编辑信息(Puts/Deletes操作,属于哪个Region),在写到memstore之前
• 理论上一个RegionServer上只有一个WAL实例,数据操作为串行,造成性能瓶颈
多WAL实例
HBase1.0 之后,通过使用底层HDFS的多管道实现了多WAL并行写入,提高了吞吐量
并行化是通过对多个Region进行分区实现的,如果只有一个Region,那么该方案无效
通过在hbase-site.xml中配置,然后重启RegionServer
用于RegionServer失效时,通过Replay恢复RegionServer上memstore中尚未持久化的数据
Region
Region是表获取和分布的基本元素,由每个列族的一个Store组成,稍后单独再表
网友评论