HBase 架构



在 HBase 中,表被分割成多个区域,并由区域服务器提供服务。区域根据列族垂直划分成“存储”。存储以文件的形式保存在 HDFS 中。下图显示了 HBase 的架构。

注意:为了解释存储结构,“存储”一词在此处用于表示区域。

HBase Architecture

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

主服务器 (MasterServer)

主服务器:

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

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

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

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

区域 (Regions)

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

区域服务器 (Region server)

区域服务器拥有以下区域:

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

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

Regional Server

存储包含内存存储和 HFile。Memstore 就像缓存内存一样。任何输入 HBase 的内容都先存储在此处。之后,数据会被传输并保存到 HFile 中作为块,并且 Memstore 会被刷新。

ZooKeeper

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

  • ZooKeeper 具有表示不同区域服务器的短暂节点。主服务器使用这些节点来发现可用的服务器。

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

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

  • 在伪分布式和单机模式下,HBase 本身将负责 ZooKeeper。

广告