HBase之架构
Posted 数据仓库
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HBase之架构相关的知识,希望对你有一定的参考价值。
点击蓝字关注我吧
【本文详细介绍了HBase的基本概念、存储架构和物理模型等内容,欢迎读者朋友们阅读、转发和收藏!】
1 基本概念
Hbase 是一个高可靠、高性能、面向列、可伸缩的分布式存储系统,利用 hbase 技术可在廉价 PC Server 上搭建 大规模结构化存储集群。HBase 是 Google Bigtable 的开源实现,与 Google Bigtable 利用 GFS 作为其文件存储系统类似, HBase 利用 Hadoop HDFS 作为其文件存储系统;Google 运行 MapReduce 来处理 Bigtable 中的海量数据, HBase 同样利用 hadoop MapReduce 来处理 HBase 中的海量数据;Google Bigtable 利用 Chubby 作为协同服务, HBase 利用 Zookeeper 作为对应。
2 Hbase 存储架构
HBase 采用 Master/Slave 架构搭建集群,它隶属于 Hadoop 生态系统,由以下类型节点组成:HMaster 节点、 HRegionServer 节点、 ZooKeeper 集群,而在底层,它将数据存储于 HDFS 中,因而涉及到 HDFS 的 NameNode 、 DataNode 等。
2.1 HMaster
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 ,实现其负载均衡。
2 、管理和分配 HRegion ,比如在 HRegion split 时分配新的 HRegion ;在 HRegionServer 退出时迁移其内的 HRegion 到其他 HRegionServer 上。
3 、实现 DDL 操作( Data Definition Language , namespace 和 table 的增删改, column familiy 的增删改等)。
4 、管理 namespace 和 table 的元数据(实际存储在 HDFS 上)。
5 、权限控制( ACL )。
2.2 HRegionServer
1 、存放和管理本地 HRegion 。
2 、读写 HDFS ,管理 Table 中的数据。
3 、 Client 直接通过 HRegionServer 读写数据(从 HMaster 中获取元数据,找到 RowKey 所在的 HRegion/HRegionServer 后)。
2.3 ZooKeeper 集群
1 、存放整个 HBase 集群的元数据以及集群的状态信息。
2 、实现 HMaster 主从节点的 failover 。
2.4 Client
HBase Client 通过 RPC 方式和 HMaster 、 HRegionServer 通信;一个 HRegionServer 可以存放 1000 个 HRegion ;底层 Table 数据存储于 HDFS 中,而 HRegion 所处理的数据尽量和数据所在的 DataNode 在一起,实现数据的本地化;数据本地化并不是总能实现,比如在 HRegion 移动 ( 如因 Split) 时,需要等下一次 Compact 才能继续回到本地化。
2.5 HRegion
HBase 使用 RowKey 将表水平切割成多个 HRegion ,从 HMaster 的角度,每个 HRegion 都纪录了它的 StartKey 和 EndKey (第一个 HRegion 的 StartKey 为空,最后一个 HRegion 的 EndKey 为空),由于 RowKey 是排序的,因而 Client 可以通过 HMaster 快速的定位每个 RowKey 在哪个 HRegion 中。HRegion 由 HMaster 分配到相应的 HRegionServer 中,然后由 HRegionServer 负责 HRegion 的启动和管理,和 Client 的通信,负责数据的读 ( 使用 HDFS) 。每个 HRegionServer 可以同时管理 1000 个左右的 HRegion 。
3 Hbase 物理模型
Table 在行的方向上分割为多个 HRegion ,每个 HRegion 分散在不同的 RegionServer 中。
每个 HRegion 由多个 Store 构成,每个 Store 由一个 memStore 和 0 或多个 StoreFile 组成,每个 Store 保存一个 Columns Family 。StoreFile 以 HFile 格式存储在 HDFS 中。
4 Hbase 部署形态
安装 HBase 有两种方式:单机安装和分布式安装。
单机版本 HBase 需要在 Hadoop 环境运行,因此安装 HBase 的前提是必须安装 Hadoop 环境;分布式部署需要提前安装好 zookeeper 集群。
我知道你在看哟
以上是关于HBase之架构的主要内容,如果未能解决你的问题,请参考以下文章
图文详解深入理解 Hbase 架构 Deep Into HBase Architecture
大数据技术之HBaseHBase简介HBase快速入门HBase进阶