HBase 架构
在 HBase 中,表被拆分为区域并由区域服务器提供服务。区域按列族垂直划分为“商店”。存储在 HDFS 中保存为文件。下图是 HBase 的架构。
注意: 术语“存储”用于区域来解释存储结构。
HBase 具有三个主要组件:客户端库、主服务器和区域服务器。可以根据需要添加或删除区域服务器。
主服务器
主服务器 -
-
将区域分配给区域服务器并在 Apache ZooKeeper 的帮助下完成此任务。
-
处理跨区域服务器的区域负载平衡。它卸载繁忙的服务器并将区域转移到占用较少的服务器。
-
通过协商负载平衡来维护集群的状态。
-
负责架构更改和其他元数据操作,例如创建表和列族。
Regions
区域只不过是被拆分并分布在区域服务器上的表。
区域服务器
区域服务器的区域 -
- 与客户沟通,处理数据相关操作。
- 处理其下所有区域的读写请求。
- 按照区域大小阈值确定区域的大小。
当我们深入研究区域服务器时,它包含区域和存储,如下所示:
存储包含内存存储和 HFiles。 Memstore 就像一个高速缓存。输入 HBase 的任何内容最初都存储在这里。之后,数据以块的形式传输并保存在 Hfiles 中,并刷新 memstore。
动物园管理员
-
Zookeeper 是一个开源项目,提供维护配置信息、命名、提供分布式同步等服务。
-
Zookeeper 具有代表不同区域服务器的临时节点。主服务器使用这些节点来发现可用的服务器。
-
除了可用性之外,这些节点还用于跟踪服务器故障或网络分区。
-
客户端通过 zookeeper 与区域服务器通信。
-
在伪和独立模式下,HBase 本身将负责 zookeeper。