HBase架构解析

概述

Hbase是存大数据的,之前也用过,一直没好好的梳理下整个原理,通过网上搜索和阿里大学的免费课程,总结了一下,希望对大家有所帮助,理论都是无聊的,希望大家能耐下心来一起成长。

架构说明

client就是你的代码,顺序是这样的:
1、先访问zookeeper,获取region Server地址。
2、Client再去访问Rregion Server,这里要注意client要和Region server的网络一定要通,还有一点如果Region Server是域名,你那在client上也要做个host解析。

Hbase架构

各个组件的说明

Client

1、访问HBase的接口,通过缓存加快HBase访问。

Zookeeper

1、Zookeeper中只有保存一个hbase master。
2、Zookeeper中存储所有hbase Region Server 寻址入口(此处入口其实指的是.META.表的存放位置信息),不是真正的Region地址。真正的地址存放在.META.表中。
3、Zookeeper中存放hbase中的schema和table原数据。
4、Zookeeper监控Region server存活,并通知hbase master。

HBase Master

1、为Region server分配Region。
2、负责Region server的负载均衡。
3、发现失效的Region server并重新分配其上的Region。
4、管理用户对table的增删改操作。

RegionServer

1、Region server维护Region,处理对这些Region的IO请求。
2、Region server负责切分在运行过程中变得过大的Region。

Region

1、HBase自动把表水平划分成多个区域(region),每个Region会保存一个表里面某段连续的数据;每个表一开始只有一个Region,随着数据不断插入表,Region不断增大,当增大到一个阀值的时候,Region就会等分会两个新的Region(裂变);
2、当table中的行不断增多,就会越来越多的Region。这样一张完整的表被保存在多个Region Server上。
3、数据写入mem Store时也会相同写入Hlog,防止断电恢复。
4、Region是HBase中分布式存储和负载均衡的最小单元。最小单元就表示不同的HRegion可以分布在不同的HRegion server上。
5、Region由一个或者多个Store组成,每个Store保存一个columns family。
6、每个Strore又由一个memStore和0至多个StoreFile组成。如图:StoreFile以Hfile格式保存在HFDS上。
在这里插入图片描述

Store

1、Store分为Memstore(先写入)与storefile(再存入)。
2、一个region由多个store组成,一个store对应一个CF(列族)。
3、内存中的memstore中的数据达到某个阀值,Region server会启动flash c ache进程将memstore中的数据写入storefile,每次写入形成单独的一个storefile。
4、当storefile文件的数量增长到一定阀值后,系统会进行合并(minor、major compaction),在合并过程中会进行版本合并和删除工作(majar),形成更大的storefile。
5、当一个region所有storefile的大小和数量超过一定阀值后,会把当前的region分割为两个,并由hmaster分配到相应的regionserver服务器,实现负载均衡。
6、客户端检索数据,现在memstore找,找不到再找storefile。

表和文件系统的关系

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值