HBASE 架构与行列数据库对比

 行列存储对比

 
优点1.便于按行查询数据,OLTP往往是此场景
2.便于行级插入、删除、修改
3.易保证行级一致性
1.便于按列使用数据,如对列分组、排序、聚合等,OLAP很多是这样
2.列数据同类型,便于压缩
3.表设计灵活,易扩展列
缺点1.当只需查询某几个列时,还是会读整行数据
2.扩展列代价往往较高
1.不便于按行使用数据
2.很难保证行级一致性
优化思想读取过程尽量减少不需要的数据提高读写效率
优化措施1.设计表时尽量减少冗余列
2.内存中累积写入到阈值再批量写入
1.多线程方式并行读取不同列文件
2.行级一致性,可通过加入RDBMS中回滚机制、校验码等
3.内存中累积写入到阈值再批量写入
应用场景OLTPOLAP

3 HBase架构

HBase架构

3.1 Client

Client有访问Hbase的接口,会去meta表查询目标region所在位置(此信息会放入缓存),并连接对应RegionServer进行数据读写。

当master rebalance region时,Client会重新进行查找。

3.2 Zookeeper

  1. HMaster和RegionSerer都注册到ZK上,使HMaster可感知RegionServer上下线。
  2. 选举,保证HMaster HA。
  3. 保存.META.表所在RegionServer位置

3.3 HMaster

  1. 监控RegionServe状态,并为之分配Region,以维护整个集群的负载均衡
  2. 通过HMasterInterface接口维护集群的元数据信息,管理用户对table的增删改查操作
  3. Region Failover:发现失效的Region,就到正常的RegionServer上恢复该Region
  4. RegionSever Failover:由HMaster对其上的region进行迁移

3.4 HRegionServer

3.4.1 主要职责

  1. 处理用户读写请求,并和底层HDFS的交互。我们说RegionServer拥有某个region意思是这个region读写、flush之类的操作都是由当前regionserver管理的。如果该RegionServer本地没有HDFS DataNode 底层数据就要从其他DataNode节点远程读写。
  2. 负责Region变大以后的split
  3. 负责Storefile的合并工作
  • Region属于某个表水平拆分的结果(初始一个Region),每个表的Region分部到多个RegionServer。

  • Region上按列族划分为多个Store

  • 每个Store有一个MemStore,当有读写请求时先请求MemStore

  • 每个Store又有多个StoreFile

  • HFiles是数据的实际存储格式,他是二进制文件。StoreFile对HFile进行了封装。HBase的数据在底层文件中时以KeyValue键值对的形式存储的,HBase没有数据类型,HFile中存储的是字节,这些字节按字典序排列。

  • BlockCache

3.5 HDFS

为HBase提供最终的底层数据存储服务,多副本保证高可用性 .

  • HBase表的HDFS目录结构如下
/hbase
    /data
        /<Namespace>                    (集群里的Namespaces)
            /<Table>                    (该集群的Tables)
                /<Region>               (该table的Regions)
                    /<ColumnFamily>     (该Region的列族)
                        /<StoreFile>    (该列族的StoreFiles)
  • HLog的HDFS目录结构如下
/hbase
    /WALs
        /<RegionServer>    (RegionServers)
            /<WAL>         (WAL files for the RegionServer)

3.6 Region

3.6.1 概述

一个Region水平切分的示例:
Region水平切分

  • 一个RegionServer上存在多个Region和一个Hlog实例。
  • Region属于某个表水平拆分的结果(初始一个Region),每个表的Region分部到多个RegionServer。
  • Region上按列族划分为多个Store
  • 每个Store有一个MemStore,当有读写请求时先请求MemStore。MemStore内部是根据RowKeyColumnVersion排序
  • 每个Store又有多个StoreFile

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值