南修子学Hbase_Hbase基本架构

图1:简版Hbase架构图

图2:完整版网上流传的架构图

HMaster

HMaster的主要功能有:
把HRegion分发到某一个RegionServer。因为Hbase中一张表如果容量超过配置的上线,就会进行切片操作,一个region就会变成两个region,这时候就需要HMaster对region进行分发,Hmaster会尽可能平均的分配给所有的RegionServer。

有RegionServer宕机了,HMaster可以把这台机器上的Region迁移到active的RegionServer上。
③对HRegionServer进行监控和负载均衡。 ④通过HDFS的dfs client接口回收垃圾文件(无效日志等)
注:HMaster没有单点问题,HBase中可以启动多个HMaster,通过Zookeeper的Master
Election机制保证总有一个Master运行。
管理hbase的元数据,也就是命名空间Hbase里面的数据

HRegionServer

RegionServer其实就对应一台机器,或者说是对应一台机器上面的HRegionServer进程
负责维护HMaster分配给它的HRegion,处理对这些HRegion的IO请求,也就是说客户端直接和HRegionServer打交道。(从图中也能看出来)
负责切分正在运行过程中变得过大的HRegion,就是splitRegion操作
在这里插入图片描述
https://blog.youkuaiyun.com/u013080251/article/details/68980215

HRegion

每个HRegion由多个Store构成,每个Store保存一个列族(Columns Family),表有几个列族,则有几个Store,每个Store由一个MemStore和多个StoreFile组成,MemStore是Store在内存中的内容,写到文件后就是StoreFile。StoreFile底层是以HFile的格式保存。
Region是表获取和分布的基本元素,由每个列族的一个Store组成。对象层级图如下:
在这里插入图片描述

Region是HBase中分布式存储和负载均衡的最小单元。不同Region分布到不同RegionServer上,但并不是存储的最小单元。
Region由一个或者多个Store组成,每个store保存一个columns family,每个Strore又由一个memStore和0至多个StoreFile 组成。memStore存储在内存中, StoreFile存储在HDFS上。
HBase通过将region切分在许多机器上实现分布式。也就是说,你如果有16GB的数据,只分了2个region, 你却有20台机器,有18台就浪费了。
region数目太多就会造成性能下降,现在比以前好多了。但是对于同样大小的数据,700个region比3000个要好。
region数目太少就会妨碍可扩展性,降低并行能力。有的时候导致压力不够分散。这就是为什么,你向一个10节点的HBase集群导入200MB的数据,大部分的节点是idle的。
RegionServer中1个region和10个region索引需要的内存量没有太多的差别。

http://hbasefly.com/2017/08/27/hbase-split/?wibwbo=gvtxs3

HLog

HLog(WAL log):WAL意为write ahead log(预写日志),用来做灾难恢复使用,HLog记录数据的变更,包括序列号和实际数据,据在这个日志文件里起到一个备份的作用,所以一旦region server 宕机,就可以从log中回滚还没有持久化的数据。要注意HLog是存储在Hdfs上面的
要往hbase写数据会先往Hlog里面写,后面会写一个详细的Hbase写数据流程
首先,一个HRegionServer中就只有一个HLog。
https://blog.youkuaiyun.com/nysyxxg/article/details/51022925

HFile

HBase的数据最终是以HFile的形式存储在HDFS中的,HBase中HFile有着自己的格式。
https://blog.youkuaiyun.com/zhanglh046/article/details/78510291

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南修子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值