app开发者平台在数字化时代的重要性与发展趋势解析
674
2022-09-07
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~