Hbase的架构和数据模型

  • 简介:hbase是一个高性能,面向列,高纬度,高可靠的分布式实时性数据库。是一个nosql数据库,数据都存在hdfs上。

1. Hbase的数据模型

  • rowkey

    • 是唯一确定的一行数据。
    • rowkey最大不能超过64KB。
    • 按照字典排序。
    • 注意:hbase表的设计本质上就是rowkey的设计,合理的rowkey可以防止热点等问题。
  • 列簇和列

    • 列族再创建表的时候就需要定义create tablename ,columnfamliyname
    • 一个列族的数据放在hdfs的同一个目录下,一个列族下可以有很多列。
    • 列是动态添加的,每一行的列名都可以不一样。
  • 版本号(时间戳)

    • 一般默认把时间戳作为版本号。
    • 每个单元格中可以有多个版本号。
    • 取数据的时候会取当前最新版本号的数据。
  • 储存格式:底层储存的格式为字节数组。

2.Hbase的架构

  • Zookeeper

    • 保存着table的元数据。
    • 是region的寻址入口。
    • 实时监控regionserver的上下线信息,并实时通知给master。
    • 再集群运行的时候保证只有一台Master在运行。
  • Master

    • 管理用户的ddl操作(关于表的操作)。
    • 负责RegionServer的负载均衡。
    • 为RegionServer分配region。
    • 如果有regionserver失效,则把该台机器上的数据拉取到别的机器去。
  • Regionserver

    • 负责维护region,处理对这些region的IO请求。
    • regionserver负责切分再运行过程中变得过大的region。
  • Region

    • 一张表创建的时候是一个region,随着表中数据越来越多,region会被切分,分配到不同的regionserver上,随着table的行不断增多,就会有越来越多的region,这样一张完整的表会被保存再多个regionserver上了。
  • store

    • 一个region是由多个store组成的,一个store代表一个列族。
    • store包括位于内存中的memstore和storefile,当文件写入的时候,会写入到memstore,当达到一定的阀值的时候会进行溢写,会溢写成一个storefile,storefile会以hfile的形式保存在hdfs上。
    • 当文件的数量和文件的大小增长到一定的阀值的时候,会进行合并(小合并和大合并),再合并的过程中会将之前执行的删除等操作正式执行,形成更大的storefile。
    • 当一个region所有storefile的大小和数量超过一定阈值后,会把当前的region分割为两个,并由hmaster分配到相应的regionserver服务器,实现负载均衡。
    • 客户端再检索数据的时候会先去memstore上去查找(然后去blockcache),如果没有找到,则会去storefile里去查找。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值