HBase架构 http://hbase.apache.org/book.html#_architecture

1.Master
HMaster是Master Server的实现,HMaster负责监控集群里所有RegionServer,HMaster也是管理所有元数据,一般HMaster和HDFS的NameNode同在一台机器上运行。
一个最普遍的问题就是如果HMaster宕机了怎么办,因为HBase的客户端是直接和RegionServer通信的,所以如果HMaster宕机,整个集群仍会在一个“稳定的状态”运行。而且元数据在HBase的表里,不在HMaster的内存中,然而HMaster要控制比如RegionServer宕机和数据切分,所以HMaster要尽快重启。
2.Region和Store
Region在HBase的情况如图所示
HBase
通常HBase每台机器管理20-200个每个5-20G的region。
一个Store由一个MemStore加上0到数个StoreFile组成。
3.RegionServer
HRegionServer是ResionServer的实现,负责管理数据region,一般和HDFS的DataNode在同台机器运行
4.HBase的缓存机制
HBase有两种缓存机制,LruBlockCache和BucketCache,LruBlockCache内存使用都在Java的heap上,BucketCache是使用的off-heap方式的内存,从BucketCache取数据会比从LruBlockCache里取要慢,然而BucketCache会减少Java垃圾回收的时间。
LruBlockCache是一个LRU式的缓存,数据被访问的次数越多,该数据块在缓存停留的时间越长。
5.RegionServer的数据切分的实现
当RegionServer接收写请求的时候,写过来的数据会在一个命名为memstore的内存结构积累,当memstore满了,就以store files的形式写到硬盘,当store files文件积累到一定程度,RegionServer就会把它们一起打包成更少更大的文件,这样之后,这个region的数据足够大了,RegionServer就会把它切分。
虽然切分region是在RegionServer本地进行的,但是RegionServer也会在切分开始和结束的时候通知HMaster并更新HMaster的元信息数据,以便客户端能够知晓新的region。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值