跳到主要内容
版本:3.1.0(预览)

Blueprint 对高可用集群的支持

HA 模型

Blueprint 放置冗余服务组件;服务本身以及 ZooKeeper 或其他协调层决定活动角色和故障转移。Blueprint 创建不会永久记录活动/备用状态。发生故障转移后,角色可能不同于初始角色。

3.1 的有效组件名称和主机端点来自已安装的 BIGTOP Stack。应使用当前 Stack 描述符,而不是复制历史 HDP 2.x 示例。相关服务定义包括 BIGTOP 资源中的 HDFS NameNode、YARN ResourceManager 和 HBase Master/RegionServer 组件。

HDFS NameNode HA

将至少两个 NAMENODE 组件放置在不同主机组或主机上,同时配置 ZKFCZOOKEEPER_SERVERJOURNALNODE。在 hdfs-site 中配置 nameservice 和两个 NameNode 地址,在 core-site 中配置 ha.zookeeper.quorum

主机相关属性应使用主机组替换。稳定格式为 %HOSTGROUP::HOST_GROUP_NAME%:PORT;Blueprint 处理器会将令牌解析为映射到该组的主机,避免 Blueprint 绑定到一组固定主机名。

初始活动/备用选择通常自动分配。如果 Stack 支持显式初始选择,相关 hadoop-env 属性为 dfs_ha_initial_namenode_activedfs_ha_initial_namenode_standby。它们只描述启动状态,故障转移可能改变状态。

YARN ResourceManager HA

放置两个 RESOURCEMANAGER 组件和 ZOOKEEPER_SERVER。配置 Stack 的 yarn.resourcemanager.ha.enabled 及带名称空间的 ResourceManager 地址属性。ZooKeeper 将第一个获取锁的实例选为活动实例,另一个以备用实例启动。Blueprint 不保证哪个物理主机会成为活动实例。

HA 创建流程

  1. 在不同主机组中定义 HA 组件,并包含服务所需的协调组件。
  2. 添加已安装 Stack 要求的所有 nameservice、地址、隔离和安全属性,在注册前验证主机组令牌和端口。
  3. 注册 Blueprint,然后在集群创建模板中映射每个 HA 主机组。
  4. 将集群模板 POST 到 /api/v1/clusters/:clusterName,并监控异步 /requests 结果。
  5. 在启动后及每次故障转移后验证服务专用的活动/备用状态;不要把 Blueprint 导出当作当前角色快照。

参考

当前主机分配和 Stack 元数据路径见固定版本的 Ambari Stack 源码HA 主机解析器