HBase分布式数据库理论介绍

HBase的原型是Google的BigTable论文,可以在我的资源里下载中文版的paper。

本不想设置积分可供免费下载,可是CSDN改版后不能自定义积分了,是系统根据资源动态分配的。

这一改版实在是不人性化,市场应该是自由的,更何况这种共享的资源。

https://download.csdn.net/download/xdsxhdyy/10801955

在Hadoop生态系统中HBase扮演的角色是:解决大规模数据的离线批量处理问题

HBase的四维坐标[行键,列族,列限定符,时间戳] 来确定一个单元格。

HBase系统架构

hbase架构图
1.客户端

  • 客户端包含访问HBase的接口,在缓存中维护着已经访问过的Region位置信息,加快后续访问过程

2.ZooKeeper服务器

  • ZooKeeper是一个很好的集群管理工具,保证任何时刻总有唯一一个Master作为集群的总管,被大量用于分布式计算、提供配置维护、域名服务、分布式同步、组服务等
  • 存储所有的region寻址入口
  • 实时监控region server的线上线下信息,并实时通知master
  • 存储HBase的schema和table元数据

3.Master

  • 主服务器Master主要负责监控RegionServer,处理RegionServer故障转移,
  • 处理元数据的变更,处理region的分配或移除
  • 实现不同Region服务器之间的负载均衡
  • 通过Zookeeper发布自己的位置给客户端

4.RegionServer

  • 是HBase中最核心的模块,负责维护分配给自己的Region,并响应用户的读写请求
  • RegionServer负责切分在运行过程中变得过大的region
  • 负责存储HBase的实际数据,刷新缓存到HDFS,维护HLog。RegionServer运行于DataNode上,数量可以与DatNode数量一致

5.HFile

  • 在磁盘上保存原始数据的实际的物理文件,是实际的存储文件。

6.Store

  • HFile存储在Store中,一个Store对应HBase表中的一个列族。

7.MemStore

  • 内存存储,位于内存中,用来保存当前的数据操作。

8.Region

  • Hbase表的分片,HBase表会根据RowKey值被切分成不同的region存储在RegionServer中,在一个RegionServer中可以有多个不同的region。
  • 当table中的行不断增加,就会有越来越多的region。这样一张完整的表被保存在多个regionserver上(为了负载)。

HBase读写数据流程

  • HRegionServer保存着一张.META.的元数据信息表,读取和写入数据之前一般client会先去访问zookeeper获取-ROOT-表的位置进而找到.META.表在哪个HRegionServer上保存着,通过元数据信息表,就可以确定当前将要读写的数据所对应的RegionServer服务器和Region

  • 当用户读取数据时,Region服务器会首先访问MemStore缓存,如果找不到再去磁盘上面的StoreFile中寻找

  • 用户写入数据时,被分配到相应的Region服务器去执行
    用户数据首先被写入到MemStore(缓存)和Hlog(日志)中
    只有当操作写入Hlog之后,commit()调用才会将其返回给客户端

HBase与传统关系数据库的对比分析

1.数据类型:关系数据库采用关系模型,有丰富的数据类型和存储方式;HBase采用简单数据模型,存储未经解释的字符串
2.数据操作:关系数据库有丰富的操作,涉及多表连接。HBase只有简单的操作
3.存储模式:关系数据库是基于行模式存储;HBase是基于列存储的
4.数据索引:关系数据库针对不同列构建复杂的多个索引;HBase只有一个索引---行键
5.数据维护:关系数据库中更新是用新值换旧值;HBsae更新不会删除旧版本,而是新旧同时保留
6.可伸缩性:关系数据库很难实现横向扩展;HBase分布式数据库可灵活实现水平扩展
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值