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

网友投稿 674 2022-09-07

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

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每台机器管理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。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:「运维有小邓」搜索日志数据以作为网络安全情报
下一篇:Python爬虫实战,DecryptLogin模块,Python模拟登录抓取京东商品数据并实现数据可视
相关文章

 发表评论

暂时没有评论,来抢沙发吧~