HBase 架构


在 HBase 中,表被拆分为区域并由区域服务器提供服务。区域按列族垂直划分为“商店”。存储在 HDFS 中保存为文件。下图是 HBase 的架构。

注意: 术语“存储”用于区域来解释存储结构。

HBase Architecture

HBase 具有三个主要组件:客户端库、主服务器和区域服务器。可以根据需要添加或删除区域服务器。

主服务器


主服务器 -

  • 将区域分配给区域服务器并在 Apache ZooKeeper 的帮助下完成此任务。

  • 处理跨区域服务器的区域负载平衡。它卸载繁忙的服务器并将区域转移到占用较少的服务器。

  • 通过协商负载平衡来维护集群的状态。

  • 负责架构更改和其他元数据操作,例如创建表和列族。

Regions


区域只不过是被拆分并分布在区域服务器上的表。

区域服务器

区域服务器的区域 -

  • 与客户沟通,处理数据相关操作。
  • 处理其下所有区域的读写请求。
  • 按照区域大小阈值确定区域的大小。

当我们深入研究区域服务器时,它包含区域和存储,如下所示:

Regional Server

存储包含内存存储和 HFiles。 Memstore 就像一个高速缓存。输入 HBase 的任何内容最初都存储在这里。之后,数据以块的形式传输并保存在 Hfiles 中,并刷新 memstore。

动物园管理员


  • Zookeeper 是一个开源项目,提供维护配置信息、命名、提供分布式同步等服务。

  • Zookeeper 具有代表不同区域服务器的临时节点。主服务器使用这些节点来发现可用的服务器。

  • 除了可用性之外,这些节点还用于跟踪服务器故障或网络分区。

  • 客户端通过 zookeeper 与区域服务器通信。

  • 在伪和独立模式下,HBase 本身将负责 zookeeper。