在 Vanilla 集群上添加 HBase¶
https://blueprints.launchpad.net/sahara/+spec/hbase-on-vanila
Apache HBase 使用 Hadoop 分布式文件系统 (HDFS) 提供大规模表格存储。本文档描述了在 Vanilla 集群上添加对 HBase 和 ZooKeeper 服务支持的内容。
问题描述¶
Sahara vanilla 插件允许用户快速配置具有许多核心服务的集群,但它不支持 HBase 和 ZooKeeper。
提议的变更¶
为了与 Vanilla 集群的分布式架构保持一致,我们仅支持完全分布式 HBase 部署。在分布式配置中,集群包含多个节点,每个节点运行一个或多个 HBase Daemon。这些包括 HBase Master 实例、多个 ZooKeeper 节点和多个 RegionServer 节点。
分布式 HBase 安装依赖于正在运行的 ZooKeeper 集群。HBase 默认情况下会为您管理一个 ZooKeeper “集群”,但您也可以独立于 HBase 管理 ZooKeeper 集群。变量 “HBASE_MANAGES_ZK” 在 “conf/hbase-env.sh” 中,默认值为 true,它告诉 HBase 是否将 ZooKeeper 集群服务器作为 HBase 的一部分启动/停止。
我们应该在 “cluster_configs” 中暴露此变量,以便用户确定 ZooKeeper 服务的创建者。
在生产环境中,建议运行一个由 3、5 或 7 台机器组成的 ZooKeeper 集群;集群成员越多,集群对主机故障的容忍度就越高。此外,运行奇数台机器。支持偶数个对等节点,但通常不使用,因为大小为偶数的集群需要按比例更多的对等节点才能形成法定人数,而奇数大小的集群需要的更少。
如果我们将 “HBASE_MANAGES_ZK” 设置为 false,Sahara 将验证节点组中的 ZooKeeper 服务数量,以保持 ZK 实例的数量为奇数。
如果我们将 “HBASE_MANAGES_ZK” 设置为 true,Sahara 将自动确定要启动 ZooKeeper 的实例。集群包含的 ZK 节点多于 1 个节点,少于 5 个节点。如果想要拥有更多的 ZK 节点,将 HBASE_MANAGES_ZK 设置为 false 会是一个不错的选择。
如果想要扩展或缩减集群,ZooKeeper 和 HBase 服务将被重启。并且在扩展或缩减之后,剩余的 ZooKeeper 节点也应保持奇数。如果只有一个 ZooKeeper 节点,ZooKeeper 服务的状态将为 “standalone”。
应该明确的一点是配置中使用的默认值
ZooKeeper 配置在 “/opt/zookeeper/conf/zoo.cfg” 中
dataDir=/var/data/zookeeper
clientPort=2181
server.1=zk-0:2888:3888
server.2=zk-1:2888:3888
HBase 配置在 “/opt/hbase/conf/hbase-site.xml” 中
hbase.tmp.dir=/var/data/hbase
hbase.rootdir=hdfs://master:9000/hbase
hbase.cluster.distributed=true
hbase.master.port=16000
hbase.master.info.port=16010
hbase.regionserver.port=16020
如果配置未更改,安全组将在此更改后打开端口 (2181, 2888, 3888, 16000, 16010, 16020)。
替代方案¶
数据模型影响¶
无
REST API 影响¶
无
其他最终用户影响¶
无
部署者影响¶
无
开发者影响¶
无
Sahara-image-elements impact¶
构建新的 Vanilla 镜像,包含 ZK 和 HBase 包
Sahara-dashboard / Horizon 影响¶
应在节点组创建和更新表单中添加一个选项。
实现¶
负责人¶
- 主要负责人
舒 颖雅
工作项¶
使用 sahara-image-elements 构建新镜像
在 sahara 中添加 ZooKeeper 到 Vanilla
在 sahara 中添加 HBase 到 Vanilla
更新 Sahara-dashboard 以在 sahara-dashboard 中选择 ZK 创建者
依赖项¶
无
测试¶
Sahara 中的单元测试覆盖率
文档影响¶
应更新 Vanilla 插件描述
参考资料¶
无