HBase - 架构

在 HBase 中,表被划分为区域并由区域服务器提供服务。区域按列族垂直划分为"存储"。存储以文件形式保存在 HDFS 中。下面显示的是 HBase 的架构。

注意:术语"存储"用于区域以解释存储结构。

HBase 架构

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

主服务器

主服务器 -

  • 将区域分配给区域服务器,并借助 Apache ZooKeeper 完成此任务。

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

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

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

区域

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

区域服务器

区域服务器具有以下区域 -

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

当我们深入了解区域服务器时,它包含区域并存储为如下所示:

Regional Server

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

Zookeeper

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

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

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

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

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