Hbase架构简介

Hbase简介

HBase 是一个高可靠性、高性能、面向列簇、可伸缩的海量Nosql数据库,支持对数据的实时增删查改。同Hadoop一样,HBase同样构建在廉价PC Server集群上,仅需使用普通的硬件配置,就能够处理成千上万的行和列所组成的海量数据。

HBase 的原型是 Google 的 BigTable 论文,受到了该论文思想的启发,目前作为 Apache
的顶级项目来开发维护,用于支持结构化的数据存储。

特点:

  • 针对海量数据:Hbase 适合存储 PB 级别的海量数据,单表可以轻松达到数十亿行。

  • 面向列簇:Hbase 是根据列簇来存储数据。

  • 易扩展:HBase存储依赖HDFS,处理能力可以通过添加机器来扩展RegionServer的处理能力。

  • 支持高并发:HBase采用分区以及负载均衡的技术,可以实现很好的读写性能。

  • 不支持SQL:同几乎所有的Nosql一样,原生不支持SQL语句。

数据模型

HBase以表的形式存储数据,表由行和列组成。列划分为若干个列族,如下图所示:
在这里插入图片描述
Table(表):一个表可以有很多行。
Row(行):hbase中一行由一个Rowkey和很多列组成,所有的行的Rowkey是二进制有序的。
Column(列):列类似关系数据库表中的属性,列是可以随意定义的,一个行中的列不限名字、不限数量。
Column Family(列簇):一个列簇包含多个列,考虑到性能的原因,一个列簇里的所有数据会被统一存储。

Cell(单元格):一个列中可以存储多个版本的数据,而每个版本就称为一个单元格。

Timestamp(时间戳):一个列中可以有多个cell,那么怎么区别这些cell呢,这里就引入了时间戳,其实也可以理解为版本。

架构

在这里插入图片描述
HMaster

  • 负责维护集群的元数据信息,如表的创建,删除,属性修改等。
  • region的管理,如region的split,合并已经region的错误转移。
  • 维护整个集群的负载均衡。

HregionServer

  • HregionServer直接对接用户的读写请求,是真正的“干活”的节点。

Zookeeper

  • 存储集群的重要元数据。
  • HMaster高可用需要借助Zookeeper。
  • 监控RegionServer的状态,当RegionServer下线时通知给Master。

HRegion

  • Region是表的一部分数据。一个Region相当于关系数据库中表的一个分区。Region是对表的横向切割。

Store

  • 除了横向切割,Hbase也对表进行了纵向切割。每个列簇的数据会被同意存储,一个列簇就是一个Store。

MemStore
写入到每个Store的数据并不是会马上写入HDFS,首先数据会被存储在MemStore,每个Store都有一个MemStore。只有当MemStore达到阈值大小或者人工强制flush时数据才会落地到HDFS上。

StoreFile
每个MemStore落地到HDFS时,每次都会生成一个StoreFile。StoreFile就是一个HFile文件。HFile是HBase特有的文件存储格式。

HLog

  • Hlog就是WAL,WAL(write ahead log)意为预写日志。它是为了解决数据可靠性。数据到达HRegion的时候是先写入WAL,然后再写入Memstore。假如RegionServer此时宕掉了,由于WAL的数据是存储在HDFS 上的,所以数据并不会丢失。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值