Hbase(二)架构与表模型

参考文章
深入HBase架构解析(一)

架构

在这里插入图片描述

Zookeeper

Hbase是内置的有zookeeper的,主节点中的 meta table中存储了集群中所有用户HRegion的位置信息,而ZooKeeper的节点中(/hbase/meta-region-server)存储的则直接是这个Meta Table的位置。

启动多个HMaster节点,选举出主节点,其余节点保持热备。Zookeepr负责维护集群的memberlist, 哪台服务器在线,哪台服务器宕机都由zookeeper探测和管理.

所有Region server都尝试连接Zookeeper, 并在这个session中建立一个临时节点(Ephemeral node). HBase的master节点监控这些临时节点的是否存在, 可以发现新加入region server和判断已经存在的region server宕机.

为了高可用需求, HBase的master也有多个, 这些master节点也同时向Zookeeper注册临时节点(Ephemeral Node). Zookeeper把第一个成功注册的master节点设置成active状态, 而其他master node处于inactive状态.

HMaster节点

主节点:主要负责region的分配以及管理从节点。

HMaster没有单点故障问题,可以启动多个HMaster,通过ZooKeeper的Master Election机制保证同时只有一个HMaster处于Active状态,其他的HMaster则处于热备份状态。一般情况下会启动两个HMaster,非Active的HMaster会定期的和Active HMaster通信以获取其最新状态,从而保证它是实时更新的,因而如果启动了多个HMaster反而增加了Active HMaster的负担。前文已经介绍过了HMaster的主要用于HRegion的分配和管理,DDL(Data Definition Language,既Table的新建、删除、修改等)的实现等,既它主要有两方面的职责:

  1. 协调HRegionServer
    • 启动时HRegion的分配,以及负载均衡和修复时HRegion的重新分配。
      监控集群中所有HRegionServer的状态(通过Heartbeat和监听ZooKeeper中的状态)。
      Admin职能
      创建、删除、修改Table的定义

HBase使用RowKey将表水平切割成多个HRegion,从HMaster的角度,每个HRegion都纪录了它的StartKey和EndKey(第一个HRegion的StartKey为空,最后一个HRegion的EndKey为空),由于RowKey是排序的,因而Client可以通过HMaster快速的定位每个RowKey在哪个HRegion中。

HRegionServer节点

  1. 存放和管理本地HRegion
  2. 读写HDFS,管理Table中的数据。
  3. 从HMaster中获取元数据,找到RowKey所在的HRegion/HRegionServer后。Client直接通过HRegionServer读写数据。
  4. HRegionServer一般和DataNode在同一台机器上运行,实现数据的本地性。HRegionServer包含多个HRegion,由WAL(HLog)、BlockCache、MemStore、HFile(storeFile合并而成)组成。

Region

一个memoryStore,内存空间,128M + 多个storeFile文件,内存中数据Flush到文件中来。

一个Region中只可能存在一张表的数据。

表模型

在这里插入图片描述

在这里插入图片描述
每个表最小包含两个元素。 列族与列

列族与列

每个列必然归属于某一个列族,每个列族下面可以有很多列。

每个列族主要用于维护数据的访问。一般一张表之中不要设置太多的列族。太多的列族将影响数据的读取速度。

rowkey行键

类似于mysql中的主键,不同的rowkey代表不同行。

Timestamp时间戳

Timestamp 则是每个值的版本号标识。默认情况下,timestamp 的值是更新数据时的当前时间戳,由系统自动更新

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值