TT Bigdata TT Bigdata
首页
  • 产品中心

    • 当前版本
    • 版本矩阵与下载
    • 免费开源大数据平台怎么选
  • 安装与使用

    • Ambari Plus 安装
      • 安装前准备
        • 实施总览
        • Step0—源码包下载与目录准备
        • Step1—系统源与基础工具准备
        • Step2—集群免密登录
        • Step3—主机名解析同步
        • Step4—Chrony 时间同步
        • Step5—Nginx 本地 Yum 文件服务
        • Step6—JDK 双环境准备
        • Step7—MySQL 驱动与本地仓库
        • Step8—MariaDB 初始化
        • Step9—AmbariServer 初始化
        • 必须 ambari plus 数据库初始化文件
      • 安装部署
        • 初始化集群
    • 组件安装
      • 组件安装总览
      • Solr 安装
      • Ranger 安装
      • Knox 安装
      • HDFS 安装
      • YARN 安装
      • MapReduce2 安装
      • Tez 安装
      • Hive 安装
      • Sqoop 安装
      • HBase 安装
      • Kafka 安装
      • Flink 安装
      • Spark 安装
      • Hue 安装
      • Livy 安装
      • Zeppelin 安装
      • DolphinScheduler 安装
      • Doris 安装
      • Celeborn 安装
      • Ozone 安装
      • Impala 安装
      • Trino 安装
      • Paimon 安装
      • Hudi 安装
      • Atlas 安装
      • Superset 安装
      • Alluxio 安装
    • 开启高可用
      • 开启高可用总览
      • Ambari Server 开启 HA
      • Ambari Server 成员维护、统一入口与故障接替
      • HDFS 开启 HA
      • YARN 开启 HA
      • Ranger 开启 HA
      • Knox 开启 HA
      • 高可用巡检、重启与故障演练
    • 权限与安全专题
      • 权限与安全总览
      • Kerberos
        • Kerberos 专题
        • 【托管】MIT KDC 单节点接入与验证
        • 【托管】MIT KDC 高可用部署与验证
        • 【外置】MIT KDC 接入与验证
        • 【共用】Principal、Keytab 与账号审计
        • 【共用】LDAP 用户与 Kerberos 身份同步
        • 【共用】外部应用 Kerberos 接入与组件验证
        • 【运维】KDC 备份、密钥轮换与故障恢复
        • Kerberos 停用与回退
        • 附录:托管 MIT KDC 环境准备
        • 附录:原生安装 MIT KDC 实验环境
      • LDAP
        • LDAP 专题
        • 【托管】OpenLDAP 接入与验证
        • 【托管】用户、用户组与授权验证
        • 【托管】OpenLDAP 高可用部署
        • 【外置】LDAP 接入与验证
        • 【外置】用户、用户组与授权验证
        • 【AD】Active Directory 接入与验证
        • 【AD】用户、用户组与授权验证
        • 附录:托管 OpenLDAP 环境准备
        • 附录:【外置】OpenLDAP 原生安装环境
        • 附录:Active Directory 实验环境
    • Ambari Plus Monitor
      • IoTDB 安装与部署
      • 必须 ambari plus monitor 数据库初始化文件
      • Monitor 安装
      • 监控与告警使用
    • 常见问题
      • 安装使用常见问题
  • 发布与支持

    • 更新日志
    • 服务说明
    • 优惠政策
    • 合作共建
    • 蓝图愿景
    • 历史版本
      • 更新日志 · v3.0.2
      • 更新日志 · v3.0.1
      • 更新日志 · v2.2.3
      • 更新日志 · v2.2.2
      • 更新日志 · v2.2.1
      • 更新日志 · v2.2.0
      • 更新日志 · v2.1.0
      • 更新日志 · v2.0.0
      • 更新日志 · v1.0.7
      • 更新日志 · v1.0.6
      • 更新日志 · v1.0.5
      • 更新日志 · v1.0.4
      • 更新日志 · v1.0.3
      • 更新日志 · v1.0.2
      • 更新日志 · v1.0.1
      • 更新日志 · v1.0.0
  • 会员与访问

    • 专属内容解锁
  • Ambari 安装

    • 常规安装
      • 适用于Ambari3.0.0-kylin V10-aarch64
        • Step0—源码包下载
        • Step1—基础环境准备
        • Step2—免密登录配置
        • Step3—安装JDK-Bisheng
        • Step5—Nginx安装
        • Step6—本地yum源配置
        • Step7—Mariadb初始化
        • Step8—AmbariServer初始化
        • Step9—Ambari Web UI 初始化安装
        • [快速安装]—脚本极速部署
      • 适用于Ambari3.0.0-kylin V10-x86_64
        • Step0—源码包下载
        • Step1—基础环境准备
        • Step2—免密登录配置
        • Step3—安装JDK17与JDK1.8
        • Step5—Nginx安装
        • Step6—本地yum源配置
        • Step7—Mariadb初始化
        • Step8—AmbariServer初始化
        • Step9—Ambari Web UI 初始化安装
        • [快速安装]—脚本极速部署
      • 适用于Ambari3.0.0-ubuntu22.04
        • Step0—源码包下载
        • Step1—基础环境准备
        • Step3—安装JDK17与JDK1.8
        • Step4—时间同步(Chrony)
        • Step5—Nginx安装
        • Step6—本地apt源
        • Step7—Mariadb初始化
        • Step8—AmbariServer初始化
        • Step9—Ambari Web UI 初始化安装
        • [快速安装]—脚本极速部署
      • 适用于Ambari3.0.0-el7
        • Step0—源码包下载
        • Step3—安装JDK17(Ambari 3.0专用)
        • Step8—AmbariServer初始化
        • Step9—Ambari Web UI 初始化安装
        • [快速安装]—脚本极速部署
      • 适用于Ambari3.0.0-el8
        • Step0—源码包下载
        • Step1—基础环境准备
        • Step3—安装JDK17与JDK1.8
        • Step7—Mariadb初始化
        • Step8—AmbariServer初始化
        • Step9—Ambari Web UI 初始化安装
        • [快速安装]—脚本极速部署
      • 适用于Ambari2.8.0-el7
        • Step1—基础环境准备
        • Step2—免密登陆认证
        • Step3—安装JDK
        • Step4—时间同步(Chrony)
        • Step5—Nginx安装
        • Step6—本地yum源配置
        • Step7—Mariadb初始化
        • Step8—AmbariServer初始化
        • Step9—Ambari Web Ui 初始化安装
    • 一键部署
      • Ambari快速部署—3.0.0
        • 【Kylin V10 aarch64】强力卸载脚本
        • 【Kylin V10 aarch64】自动安装脚本
        • 【Kylin V10 x86_64】强力卸载脚本
        • 【Kylin V10 x86_64】自动安装脚本
        • 【Ubuntu22】强力卸载脚本
        • 【Ubuntu22】自动安装脚本
        • 【Rocky8.10】强力卸载脚本
        • 【Rocky8.10】自动安装脚本
        • 【Centos7.9】自动安装脚本
      • Ambari快速部署—2.8.0
        • 【Centos7.9】自动安装脚本
        • 【Centos7.9】强力卸载脚本
      • 数据库环境
        • PostgreSQL 快速安装脚本
      • JDK环境
        • 安装JDK1.8
        • 安装JDK 17
        • 安装JDK1.8-aarch64
        • 安装JDK 17-aarch64
      • MAVEN环境
        • 安装Maven3.8.4
        • 安装Maven3.9.9
      • GRADLE环境
        • 安装Gradle5.6.4
      • CONDA环境
        • 安装Miniconda2
        • 编译Ambari2.8.0——Miniconda3
      • R环境
        • 【Kylin V10 x86_64】安装R 4.4.2
        • 【Ubuntu22】安装R 4.4.2
        • 【Rocky8.10】安装R 4.4.2
        • 【CentOS7】安装R 4.4.2
  • 组件安装

    • 安装指导
    • 魔改分享
      • Phoenix-JDK17下编译的二进制包适用于Datagrip
        • Q: 高版本 DataGrip 无法使用 Phoenix 驱动
        • A: Phoenix - JDK17 制作&下载
    • 最小化安装(简单)
      • Zookeeper 安装
      • Hadoop 安装
      • Yarn安装
      • Hive 安装
      • Spark 安装
      • HBase 安装
      • Kafka 安装
      • Sqoop 安装
      • Flink 安装
      • DolphinScheduler 安装
      • Zeppelin 安装
      • Redis 安装
      • Doris安装
      • Celeborn安装
      • Ozone安装
      • Impala安装
      • Cloudbeaver 安装
      • Ambari Metrics安装
      • Solr安装
      • Ranger 安装
      • Trino安装
      • Paimon安装
      • Hudi安装
      • Atlas 安装
      • Superset 安装
      • Livy 安装
      • Alluxio 安装
      • Hue 安装
      • Knox 安装
    • 进阶安装技巧(需开启Kerberos)
      • Ambari Metrics 进阶安装技巧
      • Atlas 进阶安装技巧
    • 高可用安装(有难度)
      • Zookeeper
      • Hadoop-Namenode
      • Yarn-ResourceManager
      • Hive
      • Hbase
      • Kafka
      • DolphinScheduler
      • Redis
      • Doris
      • Celeborn
      • Ozone
      • Ranger
  • Kerberos 旧版专题

    • 实战 Kerberos
    • 自建 Kerberos
      • KDC服务初始化安装
        • KDC服务初始化安装(RHEL篇)
        • KDC服务初始化安装(Ubuntu篇)
      • 开启Kerberos认证
        • Ambari 中开启 Kerberos 认证流程详解
        • [不看会报错]-Atlas开启准备工作
        • [不看会报错]-Zeppelin开启准备工作
        • [不看会报错]-Impala开启准备工作
        • [不看会报错]-Trino开启准备工作
      • 关闭Kerberos认证
        • Ambari 中关闭 Kerberos 认证流程详解
    • FreeIPA 认证
      • FreeIPA服务端初始化
        • FreeIPA Server 安装指导
      • FreeIPA客户端初始化及Ambari开启IPA认证
        • [Step1]-FreeIPA Client 安装与入域实战
        • [Step2]-FreeIPA 初始化核心用户
        • [Step3]-Ambari 中开启 Kerberos 认证流程详解
        • [Step3-1]-krb5-conf template调整
      • 部分踩坑-问题发现
        • Ambari Server 启动失败:no valid keystore
        • FreeIPA Client 导致 Ambari 权限异常问题排查
      • 部分踩坑-完美解决
        • Ambari Server 启动失败:no valid keystore
      • 辅助测试
        • FreeIPA Client 调试安装速记
        • Ambari Server 证书调试安装速记
    • 其他优化技巧
      • Atlas-Ranger-StringUtils缺失
      • Atlas-Ranger-commons-compress缺失
    • 部分组件踩坑合集
      • Test Kerberos Client报错:Failed to kinit
      • KERBEROS SERVICE CHECK 报错
      • Ambari开启Kerberos认证加密类型错误
      • [开启Kerberos]-Solr启动失败处理
      • [开启Kerberos]-Kafka启动失败处理
      • [开启Kerberos]-Atlas启动-Hbase权限异常
      • [开启Kerberos]-Atlas启动-Solr权限异常
      • [开启Kerberos]-Atlas启动-Kafka权限异常
      • [开启Kerberos]-Hive服务检查异常处理
      • [开启Kerberos]-Trino启动-配置文件处理
      • [开启Kerberos]-Trino启动-缺失PEM证书处理
      • [开启Kerberos]-Trino启动-连接Hive失败
      • [关闭 Kerberos]-Kafka 注销异常
      • [关闭 Kerberos]-Hive 注销异常
      • Kerberos 客户端模板渲染异常处理(临时处理)
      • Kafka 启动兼容 Kerberos 源码级修改
      • Kerberos 客户端模板渲染异常处理(源码修改)
    • 实战技巧
      • Knox 接入 Trino web-ui 解决方案
      • [开启Kerberos]-Trino启动-配置模板
      • [Knox适配]-Trino-474-转发规则魔改
    • 其他技巧
      • Ambari Security 开启步骤
  • Ranger 旧版专题

    • 实战 Ranger
    • Ranger HA 旧发行版
      • 环境准备
        • [Step1] Haproxy 规划与环境安装
      • Kerberos准备
        • [Step2] 统一访问域名的 Kerberos 票据生成
        • [Step3] 调整 Kerberos Client 配置
      • 安装指导
        • [Step4] Ambari页面开启 Ranger Admin 高可用
        • [Step5] 对齐 Ranger HA 的凭证处理
    • Ranger HA ttr-release
      • [Step2] Ranger Admin HA 自动化安装
    • FreeIPA 与 LDAP
      • [Step1] Ambari 安装 Ranger 并配置 FreeIPA + LDAP
      • [Step2] 制作 Ranger Usersync 证书并应用组件
      • [Step3] 制作 Ranger Admin 证书并应用组件
      • [Step4]Ranger HDFS Repository 创建失败修复
      • [Step5]Ranger HBase Repository 创建失败修复
    • 踩坑汇总
      • 调用 Ranger API 返回 403 问题
      • Ranger Admin LDAP 认证报 Bad credentials 分析
    • 解决方案
      • Ranger Admin LDAP 认证报 Bad credentials 处理
      • Ranger HA 虚拟域名 Principal 缺失修复
      • Ranger Usersync 证书快速导入脚本(LDAPS)
      • Ranger Admin 证书快速导入脚本
      • Ranger HDFS Repository 快速处理
      • Ranger HBase / Yarn Repository 快速处理
  • 开发环境

    • Ambari-Env
      • 环境准备
      • 开始使用
    • 工具与镜像
      • Maven镜像加速
      • Gradle镜像加速
      • Node.js 多版本共存方案
      • Npm镜像加速
      • Bower镜像加速
      • R环境安装+一键安装脚本
      • PostgreSQL 快速安装
  • Ambari 编译

    • Ambari 源码编译
    • 前端开发
    • 后端开发
    • Ambari Web本地启动
  • Bigtop 编译

    • 官方组件编译
    • 扩展组件编译
    • 工具与镜像
      • Ivy配置私有镜像仓库
      • APT仓库增量更新
      • Temurin JDK 23快速安装
  • Ambari 深度专题

    • Ambari Server 原理
    • Ambari Metrics 解读
    • Ambari Plus 思考
  • Bigtop 方法论

    • Bigtop 深度专题
  • 自定义集成

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 各组件代码
    • 通用代码模板
  • 报错解决

    • Ambari 报错
      • Ambari Views
        • MDEP-187 从根因到修复
        • Loading node labels问题解决
      • Ambari
        • phantomjs下载失败问题
        • 编译问题:GCC 安装与配置
        • bower CERT_HAS_EXPIRED 错误问题
        • Ambari-admin包出现bower install错误
        • Cannot run program "rpmbuild"
        • Python: No such file or directory
        • Yarn解压报错EOFException排查与解决
        • Rpm-maven-plugin与shebang兼容性报错
        • Rpm-maven-plugin 最佳实践
        • Bower install拉取失败解决
        • 缺少 python3 报错解决
        • Python(>=2.6) but is not installed
        • SSL_ERROR_SYSCALL 的修复方法
      • Ambari-infra
        • org.apache.commons.io does not exist
        • maven-compiler-plugin:3.3:compile
        • java.security.InvalidAlgorithmParameterException
        • ambari-infra-solr-plugin依赖报错解决方案
      • Ambari-metrics
        • psutil 缺失与 archive_util 导入错误
        • Ambari-Metrics Monitor 启动失败
        • Ambari-Metrics Monitor 启动失败
        • Ambari-Metrics Monitor 启动失败
        • Ambari-Metrics Monitor 启动失败
    • Bigtop 报错
      • Hadoop
        • /usr/bin/env: python3: No such file or directory 问题
        • error [email protected]: The engine "node" is incompatible with this module 错误
        • CMake 3.1 or higher is required. You are running version 2.8.12.2 错误
        • fuse is needed by hadoop_3_2_0-3.3.4-1.el7.x86_64 错误
        • Cyrus SASL/GSASL 缺失解决
        • Protobuf PROTOC LIBRARY NOTFOUND
        • EVP CIPHER CTX block size 报错
        • TIRPC_INCLUDE_DIRS NOTFOUND解决
        • 缺失 redhat-rpm-config 报错
      • Spark
        • evaluate,httr2,knitr 包不存在解决办法
        • Pandoc 缺失导致 SparkR 构建失败
      • Trino
        • Trino requires Temurin or Oracle JDK for development
        • GLIBC 与 GLIBCXX 版本过低
      • Hudi
        • javax.annotation.Nullable 缺失
        • 缺失 everit-json-schema 依赖
      • Paimon
        • 缺失 Jindo 依赖
      • Livy
        • apache-incubator-disclaimer-resource-bundle 缺失
      • Flink
        • .git can't be found during `prepare`
        • Angular CLI requires Node >=14.15
        • npm run ci-check 报错退出码 3
        • TypeScript 类型声明错误
      • Atlas
        • Atlas 集成 JanusGraph 启动时报 Solr6Index 实例化失败解决
      • Superset
        • urllib3 v2 only supports OpenSSL 1.1.1+
      • Jsvc
        • jsvc 依赖缺失导致 rpm 构建失败
      • Zookeeper
        • ZooKeeper 构建(缺少 hostname 命令)
        • cppunit-devel 依赖缺失解决方案
      • Hive
        • org.apache.logging.slf4j.Log4j.Marker is not public 解决方案
      • Sqoop
        • xmlto is needed by 解决方法
        • lsb_release、rsync 缺失导致构建中断
        • asciidoc 警告与 relnotes.py 语法不兼容分析
      • Cloudbeaver
        • SelectExpressionItem cannot be resolved 报错分析
      • Bigtop-select
        • bigtop-select 打包缺 compat 报错修复
        • bigtop-select 打包缺 control 文件报错修复
      • Knox
        • xmlsectool 依赖缺失问题解析
        • webhdfs-test 依赖收敛冲突问题处理
        • Invalid keystore format 问题处理
        • Knox is not allowed to impersonate admin
        • X-Forwarded-For 406 错误的原因与处理
      • Hue
        • Hue 访问 Hadoop 权限问题
        • Hue 访问 Yarn 权限问题
        • Hue 访问 Impala 时间格式问题
        • requests-kerberos 兼容性问题
        • libmariadb.so.3 缺失导致 syncdb 失败
        • 生产环境下解决方案——Hue/query_api.py
  • 系统适配

    • Kylin V10系列
      • 通用部分
        • not set for current OS
          • 解读-不支持操作系统解读
          • 解决-增加系统支持范围(一)
          • 解决-增加系统支持范围(二)
          • 解决-增加系统支持范围(三)
          • 解决-增加系统支持范围(四)
        • 解决-TLS1.3导致依赖下载失败终极办法
    • Rocky系列
      • 案例-Ambari重启失败
        • 解读-Ambari3.0.0重启失败问题
        • 解决-追加日志锚点
        • 解决-进一步分析与改造[一]
        • 解决-进一步分析与改造[二]
      • 案例-数据库连接问题
        • 解读-安装完毕后出现Unable to load version data from server
      • 案例-日志级别控制问题
        • 解读-Ambari3.0.0无法调整日志输出级别
        • 解决-临时处理日志级别不生效
        • 解决-源码级处理日志不生效
      • 案例-找不到snappy-devel
        • 解决-HDFS报snappy-devel包缺失现象
      • 案例-编译高级功能
        • 解读-开启Hadoop下ISAL-L和PMDK功能
        • 解决-ISAL-L和PMDK功能完整环境包
    • Ubuntu系列
      • 案例-首次编译环境处理
        • 解决-dpkg-buildpackage依赖缺失
        • 解决-devscripts依赖缺失
        • 首次编译-环境初始化
      • 案例-Bigtop适配Debian
        • 解读-bigtop-select支持deb
        • 解决-Step1-解除限制拥抱deb
        • 解决-Step2-补全代码结构
      • 案例-安装中遇到的问题
        • 解读-APT私有镜像验证失败剖析
        • 解决-快速处理APT私有镜像验证失败问题
      • 案例-编译高级功能
        • 解读-开启Hadoop下ISAL-L和PMDK功能
        • 解决-ISAL-L和PMDK功能完整环境包
    • Centos系列
    • OpenEuler系列
  • 监控与调优

    • Ambari-Metrics插件
    • Infinity插件
      • 准备工作
        • Ambari-Metrics插件失效原因
        • Infinity 插件选择与安装小技巧
        • Grafana9.3.2+Infinity2.3.1
          • Grafana快速安装Infinity插件
        • Grafana11.5.2+Infinity3.4.1
          • Grafana快速安装Infinity插件
      • 创建最简DEMO
        • Grafana9.3.2+Infinity2.3.1
          • 快速创建一个简单demo
          • Panel JSON 配置示例
        • Grafana11.5.2+Infinity3.4.1
          • 快速创建一个简单demo
          • Panel JSON 配置示例
    • 组件配置调优
      • HDFS
        • [0001]访问 HDFS Web UI Logs Unauthorized 失败
        • [0001]>>>>>>Hadoop管理员配置优化
      • RANGER
        • [0002]Ranger 审计日志时间与系统时间不一致调整
        • [0002]>>>>>日期统一规则调优
        • [0001]Resource lookup fail 线程池超时优化
        • [0001]>>>>>>线程池与超时参数调优
    • 组件调优指南
    • 1v1指导调优
  • BUG临时处理

    • 版本-v2.2.2-以前
      • [22213]Ambari 3.0.0 滚动重启只执行一台主机修复
      • [22213]解决办法
      • [22212]Ambari 3.0.0 左侧服务菜单滚动条缺失修复
      • [22212]解决办法
      • [22211]Atlas 缺失 __AtlasUserProfile
      • [22211]解决办法
      • [22210]Atlas Hook 无权限访问 Kafka Topic
      • [22210]解决办法
      • [22209]Ranger Kafka Lookup 缺少 JAAS 配置
      • [22209]解决办法
      • [22208]Atlas Hook 消费 Kafka 报错
      • [22208]解决办法
      • [22207]Hue 内访问 SparkSql 失败
      • [22207]解决办法
      • [22206]Ranger 调用 Knox Topologies 失败
      • [22206]解决办法
      • [22205]Ranger Admin 轮刷ZK 缺失 JAAS
      • [22205]解决办法
      • [22204]KNOX policymgr-ssl 启动告警
      • [22204]解决办法
      • [22203]Hue 服务启动后秒退
      • [22203]解决办法
      • [22202]Hue 启动失败: hadoop 用户不存在
      • [22202]解决办法
      • [22201]Hive 使用 Tez 引擎插入数据失败
      • [22201]解决办法
    • 版本-v2.1.0-以前
      • Sqlline 启动卡死问题处理
  • 实验室

    • VIEW插件
      • CAPACITY-SCHEDULER-VIEW
        • Ambari CAPACITY-SCHEDULER 插件安装详解
      • FILE-VIEW
        • Ambari FILE-VIEW 插件安装详解
    • JIRA速查
    • 虚拟环境思路
GitHub (opens new window)
JaneTTR

JaneTTR

数据酿造智慧,每一滴都是沉淀!
首页
  • 产品中心

    • 当前版本
    • 版本矩阵与下载
    • 免费开源大数据平台怎么选
  • 安装与使用

    • Ambari Plus 安装
      • 安装前准备
        • 实施总览
        • Step0—源码包下载与目录准备
        • Step1—系统源与基础工具准备
        • Step2—集群免密登录
        • Step3—主机名解析同步
        • Step4—Chrony 时间同步
        • Step5—Nginx 本地 Yum 文件服务
        • Step6—JDK 双环境准备
        • Step7—MySQL 驱动与本地仓库
        • Step8—MariaDB 初始化
        • Step9—AmbariServer 初始化
        • 必须 ambari plus 数据库初始化文件
      • 安装部署
        • 初始化集群
    • 组件安装
      • 组件安装总览
      • Solr 安装
      • Ranger 安装
      • Knox 安装
      • HDFS 安装
      • YARN 安装
      • MapReduce2 安装
      • Tez 安装
      • Hive 安装
      • Sqoop 安装
      • HBase 安装
      • Kafka 安装
      • Flink 安装
      • Spark 安装
      • Hue 安装
      • Livy 安装
      • Zeppelin 安装
      • DolphinScheduler 安装
      • Doris 安装
      • Celeborn 安装
      • Ozone 安装
      • Impala 安装
      • Trino 安装
      • Paimon 安装
      • Hudi 安装
      • Atlas 安装
      • Superset 安装
      • Alluxio 安装
    • 开启高可用
      • 开启高可用总览
      • Ambari Server 开启 HA
      • Ambari Server 成员维护、统一入口与故障接替
      • HDFS 开启 HA
      • YARN 开启 HA
      • Ranger 开启 HA
      • Knox 开启 HA
      • 高可用巡检、重启与故障演练
    • 权限与安全专题
      • 权限与安全总览
      • Kerberos
        • Kerberos 专题
        • 【托管】MIT KDC 单节点接入与验证
        • 【托管】MIT KDC 高可用部署与验证
        • 【外置】MIT KDC 接入与验证
        • 【共用】Principal、Keytab 与账号审计
        • 【共用】LDAP 用户与 Kerberos 身份同步
        • 【共用】外部应用 Kerberos 接入与组件验证
        • 【运维】KDC 备份、密钥轮换与故障恢复
        • Kerberos 停用与回退
        • 附录:托管 MIT KDC 环境准备
        • 附录:原生安装 MIT KDC 实验环境
      • LDAP
        • LDAP 专题
        • 【托管】OpenLDAP 接入与验证
        • 【托管】用户、用户组与授权验证
        • 【托管】OpenLDAP 高可用部署
        • 【外置】LDAP 接入与验证
        • 【外置】用户、用户组与授权验证
        • 【AD】Active Directory 接入与验证
        • 【AD】用户、用户组与授权验证
        • 附录:托管 OpenLDAP 环境准备
        • 附录:【外置】OpenLDAP 原生安装环境
        • 附录:Active Directory 实验环境
    • Ambari Plus Monitor
      • IoTDB 安装与部署
      • 必须 ambari plus monitor 数据库初始化文件
      • Monitor 安装
      • 监控与告警使用
    • 常见问题
      • 安装使用常见问题
  • 发布与支持

    • 更新日志
    • 服务说明
    • 优惠政策
    • 合作共建
    • 蓝图愿景
    • 历史版本
      • 更新日志 · v3.0.2
      • 更新日志 · v3.0.1
      • 更新日志 · v2.2.3
      • 更新日志 · v2.2.2
      • 更新日志 · v2.2.1
      • 更新日志 · v2.2.0
      • 更新日志 · v2.1.0
      • 更新日志 · v2.0.0
      • 更新日志 · v1.0.7
      • 更新日志 · v1.0.6
      • 更新日志 · v1.0.5
      • 更新日志 · v1.0.4
      • 更新日志 · v1.0.3
      • 更新日志 · v1.0.2
      • 更新日志 · v1.0.1
      • 更新日志 · v1.0.0
  • 会员与访问

    • 专属内容解锁
  • Ambari 安装

    • 常规安装
      • 适用于Ambari3.0.0-kylin V10-aarch64
        • Step0—源码包下载
        • Step1—基础环境准备
        • Step2—免密登录配置
        • Step3—安装JDK-Bisheng
        • Step5—Nginx安装
        • Step6—本地yum源配置
        • Step7—Mariadb初始化
        • Step8—AmbariServer初始化
        • Step9—Ambari Web UI 初始化安装
        • [快速安装]—脚本极速部署
      • 适用于Ambari3.0.0-kylin V10-x86_64
        • Step0—源码包下载
        • Step1—基础环境准备
        • Step2—免密登录配置
        • Step3—安装JDK17与JDK1.8
        • Step5—Nginx安装
        • Step6—本地yum源配置
        • Step7—Mariadb初始化
        • Step8—AmbariServer初始化
        • Step9—Ambari Web UI 初始化安装
        • [快速安装]—脚本极速部署
      • 适用于Ambari3.0.0-ubuntu22.04
        • Step0—源码包下载
        • Step1—基础环境准备
        • Step3—安装JDK17与JDK1.8
        • Step4—时间同步(Chrony)
        • Step5—Nginx安装
        • Step6—本地apt源
        • Step7—Mariadb初始化
        • Step8—AmbariServer初始化
        • Step9—Ambari Web UI 初始化安装
        • [快速安装]—脚本极速部署
      • 适用于Ambari3.0.0-el7
        • Step0—源码包下载
        • Step3—安装JDK17(Ambari 3.0专用)
        • Step8—AmbariServer初始化
        • Step9—Ambari Web UI 初始化安装
        • [快速安装]—脚本极速部署
      • 适用于Ambari3.0.0-el8
        • Step0—源码包下载
        • Step1—基础环境准备
        • Step3—安装JDK17与JDK1.8
        • Step7—Mariadb初始化
        • Step8—AmbariServer初始化
        • Step9—Ambari Web UI 初始化安装
        • [快速安装]—脚本极速部署
      • 适用于Ambari2.8.0-el7
        • Step1—基础环境准备
        • Step2—免密登陆认证
        • Step3—安装JDK
        • Step4—时间同步(Chrony)
        • Step5—Nginx安装
        • Step6—本地yum源配置
        • Step7—Mariadb初始化
        • Step8—AmbariServer初始化
        • Step9—Ambari Web Ui 初始化安装
    • 一键部署
      • Ambari快速部署—3.0.0
        • 【Kylin V10 aarch64】强力卸载脚本
        • 【Kylin V10 aarch64】自动安装脚本
        • 【Kylin V10 x86_64】强力卸载脚本
        • 【Kylin V10 x86_64】自动安装脚本
        • 【Ubuntu22】强力卸载脚本
        • 【Ubuntu22】自动安装脚本
        • 【Rocky8.10】强力卸载脚本
        • 【Rocky8.10】自动安装脚本
        • 【Centos7.9】自动安装脚本
      • Ambari快速部署—2.8.0
        • 【Centos7.9】自动安装脚本
        • 【Centos7.9】强力卸载脚本
      • 数据库环境
        • PostgreSQL 快速安装脚本
      • JDK环境
        • 安装JDK1.8
        • 安装JDK 17
        • 安装JDK1.8-aarch64
        • 安装JDK 17-aarch64
      • MAVEN环境
        • 安装Maven3.8.4
        • 安装Maven3.9.9
      • GRADLE环境
        • 安装Gradle5.6.4
      • CONDA环境
        • 安装Miniconda2
        • 编译Ambari2.8.0——Miniconda3
      • R环境
        • 【Kylin V10 x86_64】安装R 4.4.2
        • 【Ubuntu22】安装R 4.4.2
        • 【Rocky8.10】安装R 4.4.2
        • 【CentOS7】安装R 4.4.2
  • 组件安装

    • 安装指导
    • 魔改分享
      • Phoenix-JDK17下编译的二进制包适用于Datagrip
        • Q: 高版本 DataGrip 无法使用 Phoenix 驱动
        • A: Phoenix - JDK17 制作&下载
    • 最小化安装(简单)
      • Zookeeper 安装
      • Hadoop 安装
      • Yarn安装
      • Hive 安装
      • Spark 安装
      • HBase 安装
      • Kafka 安装
      • Sqoop 安装
      • Flink 安装
      • DolphinScheduler 安装
      • Zeppelin 安装
      • Redis 安装
      • Doris安装
      • Celeborn安装
      • Ozone安装
      • Impala安装
      • Cloudbeaver 安装
      • Ambari Metrics安装
      • Solr安装
      • Ranger 安装
      • Trino安装
      • Paimon安装
      • Hudi安装
      • Atlas 安装
      • Superset 安装
      • Livy 安装
      • Alluxio 安装
      • Hue 安装
      • Knox 安装
    • 进阶安装技巧(需开启Kerberos)
      • Ambari Metrics 进阶安装技巧
      • Atlas 进阶安装技巧
    • 高可用安装(有难度)
      • Zookeeper
      • Hadoop-Namenode
      • Yarn-ResourceManager
      • Hive
      • Hbase
      • Kafka
      • DolphinScheduler
      • Redis
      • Doris
      • Celeborn
      • Ozone
      • Ranger
  • Kerberos 旧版专题

    • 实战 Kerberos
    • 自建 Kerberos
      • KDC服务初始化安装
        • KDC服务初始化安装(RHEL篇)
        • KDC服务初始化安装(Ubuntu篇)
      • 开启Kerberos认证
        • Ambari 中开启 Kerberos 认证流程详解
        • [不看会报错]-Atlas开启准备工作
        • [不看会报错]-Zeppelin开启准备工作
        • [不看会报错]-Impala开启准备工作
        • [不看会报错]-Trino开启准备工作
      • 关闭Kerberos认证
        • Ambari 中关闭 Kerberos 认证流程详解
    • FreeIPA 认证
      • FreeIPA服务端初始化
        • FreeIPA Server 安装指导
      • FreeIPA客户端初始化及Ambari开启IPA认证
        • [Step1]-FreeIPA Client 安装与入域实战
        • [Step2]-FreeIPA 初始化核心用户
        • [Step3]-Ambari 中开启 Kerberos 认证流程详解
        • [Step3-1]-krb5-conf template调整
      • 部分踩坑-问题发现
        • Ambari Server 启动失败:no valid keystore
        • FreeIPA Client 导致 Ambari 权限异常问题排查
      • 部分踩坑-完美解决
        • Ambari Server 启动失败:no valid keystore
      • 辅助测试
        • FreeIPA Client 调试安装速记
        • Ambari Server 证书调试安装速记
    • 其他优化技巧
      • Atlas-Ranger-StringUtils缺失
      • Atlas-Ranger-commons-compress缺失
    • 部分组件踩坑合集
      • Test Kerberos Client报错:Failed to kinit
      • KERBEROS SERVICE CHECK 报错
      • Ambari开启Kerberos认证加密类型错误
      • [开启Kerberos]-Solr启动失败处理
      • [开启Kerberos]-Kafka启动失败处理
      • [开启Kerberos]-Atlas启动-Hbase权限异常
      • [开启Kerberos]-Atlas启动-Solr权限异常
      • [开启Kerberos]-Atlas启动-Kafka权限异常
      • [开启Kerberos]-Hive服务检查异常处理
      • [开启Kerberos]-Trino启动-配置文件处理
      • [开启Kerberos]-Trino启动-缺失PEM证书处理
      • [开启Kerberos]-Trino启动-连接Hive失败
      • [关闭 Kerberos]-Kafka 注销异常
      • [关闭 Kerberos]-Hive 注销异常
      • Kerberos 客户端模板渲染异常处理(临时处理)
      • Kafka 启动兼容 Kerberos 源码级修改
      • Kerberos 客户端模板渲染异常处理(源码修改)
    • 实战技巧
      • Knox 接入 Trino web-ui 解决方案
      • [开启Kerberos]-Trino启动-配置模板
      • [Knox适配]-Trino-474-转发规则魔改
    • 其他技巧
      • Ambari Security 开启步骤
  • Ranger 旧版专题

    • 实战 Ranger
    • Ranger HA 旧发行版
      • 环境准备
        • [Step1] Haproxy 规划与环境安装
      • Kerberos准备
        • [Step2] 统一访问域名的 Kerberos 票据生成
        • [Step3] 调整 Kerberos Client 配置
      • 安装指导
        • [Step4] Ambari页面开启 Ranger Admin 高可用
        • [Step5] 对齐 Ranger HA 的凭证处理
    • Ranger HA ttr-release
      • [Step2] Ranger Admin HA 自动化安装
    • FreeIPA 与 LDAP
      • [Step1] Ambari 安装 Ranger 并配置 FreeIPA + LDAP
      • [Step2] 制作 Ranger Usersync 证书并应用组件
      • [Step3] 制作 Ranger Admin 证书并应用组件
      • [Step4]Ranger HDFS Repository 创建失败修复
      • [Step5]Ranger HBase Repository 创建失败修复
    • 踩坑汇总
      • 调用 Ranger API 返回 403 问题
      • Ranger Admin LDAP 认证报 Bad credentials 分析
    • 解决方案
      • Ranger Admin LDAP 认证报 Bad credentials 处理
      • Ranger HA 虚拟域名 Principal 缺失修复
      • Ranger Usersync 证书快速导入脚本(LDAPS)
      • Ranger Admin 证书快速导入脚本
      • Ranger HDFS Repository 快速处理
      • Ranger HBase / Yarn Repository 快速处理
  • 开发环境

    • Ambari-Env
      • 环境准备
      • 开始使用
    • 工具与镜像
      • Maven镜像加速
      • Gradle镜像加速
      • Node.js 多版本共存方案
      • Npm镜像加速
      • Bower镜像加速
      • R环境安装+一键安装脚本
      • PostgreSQL 快速安装
  • Ambari 编译

    • Ambari 源码编译
    • 前端开发
    • 后端开发
    • Ambari Web本地启动
  • Bigtop 编译

    • 官方组件编译
    • 扩展组件编译
    • 工具与镜像
      • Ivy配置私有镜像仓库
      • APT仓库增量更新
      • Temurin JDK 23快速安装
  • Ambari 深度专题

    • Ambari Server 原理
    • Ambari Metrics 解读
    • Ambari Plus 思考
  • Bigtop 方法论

    • Bigtop 深度专题
  • 自定义集成

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 各组件代码
    • 通用代码模板
  • 报错解决

    • Ambari 报错
      • Ambari Views
        • MDEP-187 从根因到修复
        • Loading node labels问题解决
      • Ambari
        • phantomjs下载失败问题
        • 编译问题:GCC 安装与配置
        • bower CERT_HAS_EXPIRED 错误问题
        • Ambari-admin包出现bower install错误
        • Cannot run program "rpmbuild"
        • Python: No such file or directory
        • Yarn解压报错EOFException排查与解决
        • Rpm-maven-plugin与shebang兼容性报错
        • Rpm-maven-plugin 最佳实践
        • Bower install拉取失败解决
        • 缺少 python3 报错解决
        • Python(>=2.6) but is not installed
        • SSL_ERROR_SYSCALL 的修复方法
      • Ambari-infra
        • org.apache.commons.io does not exist
        • maven-compiler-plugin:3.3:compile
        • java.security.InvalidAlgorithmParameterException
        • ambari-infra-solr-plugin依赖报错解决方案
      • Ambari-metrics
        • psutil 缺失与 archive_util 导入错误
        • Ambari-Metrics Monitor 启动失败
        • Ambari-Metrics Monitor 启动失败
        • Ambari-Metrics Monitor 启动失败
        • Ambari-Metrics Monitor 启动失败
    • Bigtop 报错
      • Hadoop
        • /usr/bin/env: python3: No such file or directory 问题
        • error [email protected]: The engine "node" is incompatible with this module 错误
        • CMake 3.1 or higher is required. You are running version 2.8.12.2 错误
        • fuse is needed by hadoop_3_2_0-3.3.4-1.el7.x86_64 错误
        • Cyrus SASL/GSASL 缺失解决
        • Protobuf PROTOC LIBRARY NOTFOUND
        • EVP CIPHER CTX block size 报错
        • TIRPC_INCLUDE_DIRS NOTFOUND解决
        • 缺失 redhat-rpm-config 报错
      • Spark
        • evaluate,httr2,knitr 包不存在解决办法
        • Pandoc 缺失导致 SparkR 构建失败
      • Trino
        • Trino requires Temurin or Oracle JDK for development
        • GLIBC 与 GLIBCXX 版本过低
      • Hudi
        • javax.annotation.Nullable 缺失
        • 缺失 everit-json-schema 依赖
      • Paimon
        • 缺失 Jindo 依赖
      • Livy
        • apache-incubator-disclaimer-resource-bundle 缺失
      • Flink
        • .git can't be found during `prepare`
        • Angular CLI requires Node >=14.15
        • npm run ci-check 报错退出码 3
        • TypeScript 类型声明错误
      • Atlas
        • Atlas 集成 JanusGraph 启动时报 Solr6Index 实例化失败解决
      • Superset
        • urllib3 v2 only supports OpenSSL 1.1.1+
      • Jsvc
        • jsvc 依赖缺失导致 rpm 构建失败
      • Zookeeper
        • ZooKeeper 构建(缺少 hostname 命令)
        • cppunit-devel 依赖缺失解决方案
      • Hive
        • org.apache.logging.slf4j.Log4j.Marker is not public 解决方案
      • Sqoop
        • xmlto is needed by 解决方法
        • lsb_release、rsync 缺失导致构建中断
        • asciidoc 警告与 relnotes.py 语法不兼容分析
      • Cloudbeaver
        • SelectExpressionItem cannot be resolved 报错分析
      • Bigtop-select
        • bigtop-select 打包缺 compat 报错修复
        • bigtop-select 打包缺 control 文件报错修复
      • Knox
        • xmlsectool 依赖缺失问题解析
        • webhdfs-test 依赖收敛冲突问题处理
        • Invalid keystore format 问题处理
        • Knox is not allowed to impersonate admin
        • X-Forwarded-For 406 错误的原因与处理
      • Hue
        • Hue 访问 Hadoop 权限问题
        • Hue 访问 Yarn 权限问题
        • Hue 访问 Impala 时间格式问题
        • requests-kerberos 兼容性问题
        • libmariadb.so.3 缺失导致 syncdb 失败
        • 生产环境下解决方案——Hue/query_api.py
  • 系统适配

    • Kylin V10系列
      • 通用部分
        • not set for current OS
          • 解读-不支持操作系统解读
          • 解决-增加系统支持范围(一)
          • 解决-增加系统支持范围(二)
          • 解决-增加系统支持范围(三)
          • 解决-增加系统支持范围(四)
        • 解决-TLS1.3导致依赖下载失败终极办法
    • Rocky系列
      • 案例-Ambari重启失败
        • 解读-Ambari3.0.0重启失败问题
        • 解决-追加日志锚点
        • 解决-进一步分析与改造[一]
        • 解决-进一步分析与改造[二]
      • 案例-数据库连接问题
        • 解读-安装完毕后出现Unable to load version data from server
      • 案例-日志级别控制问题
        • 解读-Ambari3.0.0无法调整日志输出级别
        • 解决-临时处理日志级别不生效
        • 解决-源码级处理日志不生效
      • 案例-找不到snappy-devel
        • 解决-HDFS报snappy-devel包缺失现象
      • 案例-编译高级功能
        • 解读-开启Hadoop下ISAL-L和PMDK功能
        • 解决-ISAL-L和PMDK功能完整环境包
    • Ubuntu系列
      • 案例-首次编译环境处理
        • 解决-dpkg-buildpackage依赖缺失
        • 解决-devscripts依赖缺失
        • 首次编译-环境初始化
      • 案例-Bigtop适配Debian
        • 解读-bigtop-select支持deb
        • 解决-Step1-解除限制拥抱deb
        • 解决-Step2-补全代码结构
      • 案例-安装中遇到的问题
        • 解读-APT私有镜像验证失败剖析
        • 解决-快速处理APT私有镜像验证失败问题
      • 案例-编译高级功能
        • 解读-开启Hadoop下ISAL-L和PMDK功能
        • 解决-ISAL-L和PMDK功能完整环境包
    • Centos系列
    • OpenEuler系列
  • 监控与调优

    • Ambari-Metrics插件
    • Infinity插件
      • 准备工作
        • Ambari-Metrics插件失效原因
        • Infinity 插件选择与安装小技巧
        • Grafana9.3.2+Infinity2.3.1
          • Grafana快速安装Infinity插件
        • Grafana11.5.2+Infinity3.4.1
          • Grafana快速安装Infinity插件
      • 创建最简DEMO
        • Grafana9.3.2+Infinity2.3.1
          • 快速创建一个简单demo
          • Panel JSON 配置示例
        • Grafana11.5.2+Infinity3.4.1
          • 快速创建一个简单demo
          • Panel JSON 配置示例
    • 组件配置调优
      • HDFS
        • [0001]访问 HDFS Web UI Logs Unauthorized 失败
        • [0001]>>>>>>Hadoop管理员配置优化
      • RANGER
        • [0002]Ranger 审计日志时间与系统时间不一致调整
        • [0002]>>>>>日期统一规则调优
        • [0001]Resource lookup fail 线程池超时优化
        • [0001]>>>>>>线程池与超时参数调优
    • 组件调优指南
    • 1v1指导调优
  • BUG临时处理

    • 版本-v2.2.2-以前
      • [22213]Ambari 3.0.0 滚动重启只执行一台主机修复
      • [22213]解决办法
      • [22212]Ambari 3.0.0 左侧服务菜单滚动条缺失修复
      • [22212]解决办法
      • [22211]Atlas 缺失 __AtlasUserProfile
      • [22211]解决办法
      • [22210]Atlas Hook 无权限访问 Kafka Topic
      • [22210]解决办法
      • [22209]Ranger Kafka Lookup 缺少 JAAS 配置
      • [22209]解决办法
      • [22208]Atlas Hook 消费 Kafka 报错
      • [22208]解决办法
      • [22207]Hue 内访问 SparkSql 失败
      • [22207]解决办法
      • [22206]Ranger 调用 Knox Topologies 失败
      • [22206]解决办法
      • [22205]Ranger Admin 轮刷ZK 缺失 JAAS
      • [22205]解决办法
      • [22204]KNOX policymgr-ssl 启动告警
      • [22204]解决办法
      • [22203]Hue 服务启动后秒退
      • [22203]解决办法
      • [22202]Hue 启动失败: hadoop 用户不存在
      • [22202]解决办法
      • [22201]Hive 使用 Tez 引擎插入数据失败
      • [22201]解决办法
    • 版本-v2.1.0-以前
      • Sqlline 启动卡死问题处理
  • 实验室

    • VIEW插件
      • CAPACITY-SCHEDULER-VIEW
        • Ambari CAPACITY-SCHEDULER 插件安装详解
      • FILE-VIEW
        • Ambari FILE-VIEW 插件安装详解
    • JIRA速查
    • 虚拟环境思路
GitHub (opens new window)
  • Ambari 深度专题

  • Bigtop 方法论

  • 自定义集成

  • Ambari Server 与 Web

  • Ambari Metrics

  • Ambari Plus 思考

    • Ambari Server HA
      • 控制面不能只靠一台机器
      • 一把租约如何守住唯一 Active
      • 从一次启用操作追到主备就绪
      • 把 Ambari Server HA 稳稳地跑起来
        • 目标拓扑与示例主机
        • 开始前的准备清单
          • 版本和软件仓库
          • FQDN、时间与网络
          • 外部数据库
          • 目标主机容量与 Agent
          • 控制面必须处于安静状态
        • 从页面进入启用向导
        • 第一步:选择备用节点
        • 第二步:确认配置计划
        • 第三步:处理环境检查
        • 第四步:启动自动配置
          • 页面短暂失联时怎么办
          • 某一步失败时从哪里查
        • 第五步:完成页只是验收起点
        • 用 API 核对角色、Term 和 Ready
        • 核对 Agent 已进入候选模式
        • 接入 HAProxy 或已有负载均衡
        • 做一次真正的故障接管演练
          • 演练前记录
          • 停止当前 Active
          • 恢复原节点
          • 故障验收表
        • 常见问题与恢复方向
          • 两台 Server 都存活,但页面说没有可用 Active
          • Standby liveness 正常,readiness 返回 503
          • Agent 在切换后持续离线
          • 页面一直停在后台任务执行中
          • 恢复节点回来后抢占了 Active
          • 想把备用节点移除
        • 日常运维要持续看什么
        • 最后的判断标准
  • Redis集成实战

  • 通用代码模板

  • 各组件代码

  • 技术专题
  • Ambari Plus 思考
  • Ambari Server HA
JaneTTR
2026-08-17
目录

把 Ambari Server HA 稳稳地跑起来

适用范围 3.0.3+

本文面向带有“Ambari Server 高可用”管理页面的 Ambari Plus 3.0.3 及后续兼容版本。不同小版本的按钮文字可能略有变化,但准备条件、主备建立顺序和验收原则不变。

Ambari Server HA 启用与验收操作台

向导负责把第二台 Server 建起来;真正的完成还包括唯一 Active、Agent 候选、统一入口和故障接管都通过核验。

开始前

固化版本、FQDN、数据库、容量、Agent 与维护窗口,先把阻塞项处理干净。

执行中

始终跟随原 Operation;页面短暂失联时恢复读取,不重复提交开启请求。

完成后

页面、API、Agent、负载均衡和真实切换五个视角交叉验证,不只看完成页。

config:
  target: _self
data:
  - name: 开始前
    desc: 固化版本、FQDN、数据库、容量、Agent 与维护窗口,先把阻塞项处理干净。
    bgColor: '#eef6ff'
    textColor: '#1f4e79'
  - name: 执行中
    desc: 始终跟随原 Operation;页面短暂失联时恢复读取,不重复提交开启请求。
    bgColor: '#fff8e8'
    textColor: '#79520b'
  - name: 完成后
    desc: 页面、API、Agent、负载均衡和真实切换五个视角交叉验证,不只看完成页。
    bgColor: '#eefaf4'
    textColor: '#176b4d'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

这一篇从一个已经运行的单节点 Ambari Server 出发,增加第二台 Server,并把页面入口、环境准备、执行阶段、结果验证和故障演练完整走一遍。

我建议先在测试环境按相同主机名、数据库和入口模式演练,再进入生产维护窗口。开启过程会安装远端 Server、准备双向 TLS,并按批次调整 Agent 的 Server 候选;第一次启用双向 TLS 时,当前 Ambari Server 也可能发生一次受控重启。

# 目标拓扑与示例主机

全文使用下面这组 FQDN。替换成自己的主机名时,要保证所有节点的解析结果一致。

主机或入口 规划角色 说明
hadoop1.test.com 初始 Server,启用后为 Active 当前正在管理集群的 Ambari Server
hadoop3.test.com 新增 Standby 已安装、在线且健康的 Ambari Agent 主机
ambari.test.com 可选统一入口 HAProxy、硬件负载均衡或已有网关提供的稳定地址
db.test.com Ambari 外部数据库入口 两台 Server 使用同一地址、同一库和同一账号

如果暂时没有统一入口,可以先选择“直连端点”模式,让页面和 Agent 认识两台 Server;正式生产环境通常还会在前面接入负载均衡,使浏览器和自动化调用方只使用 ambari.test.com。

# 开始前的准备清单

# 版本和软件仓库

两台 Server 必须安装同一个 release identity 对应的软件包,不能只保证“都是 3.0.3”。先在当前 Server 核对版本和包来源,并确认离线仓库能向目标主机提供完全一致的包。

    rpm -q ambari-server
    rpm -qi ambari-server | sed -n '1,20p'
    
    1
    2
    dpkg-query -W -f='${Package} ${Version}\n' ambari-server
    apt-cache policy ambari-server
    
    1
    2
    // Make sure to add code blocks to your code group

    目标主机此时只需要有健康的 Ambari Agent。不要提前手工启动第二个 Ambari Server,向导会在校验软件包、下发配置和关闭选举的前提下完成安装与首次启动。

    # FQDN、时间与网络

    在两台 Server、数据库节点和至少一台普通 Agent 主机上交叉检查解析:

    hostname -f
    getent hosts hadoop1.test.com
    getent hosts hadoop3.test.com
    getent hosts db.test.com
    
    1
    2
    3
    4

    再确认时间同步正常:

    timedatectl status
    chronyc tracking
    chronyc sources -v
    
    1
    2
    3

    防火墙需要放行现有 Ambari Server/Agent 通信端口、目标 Server 管理端口、两台 Server 到数据库的端口,以及环境使用的 Agent mTLS 通道。端口应以当前安装版本和安全配置为准,不要只照搬其他环境的规则。

    # 外部数据库

    数据库地址不能是 localhost、127.0.0.1 或只在当前 Server 本机可达的 Unix Socket。分别从两台候选 Server 验证:

    • FQDN 解析到稳定的数据库入口;
    • 数据库端口可达;
    • Ambari 数据库账号具备原有权限;
    • 数据库本身有备份和恢复方案;
    • 连接池和数据库容量可以承担节点切换后的重连。

    Server HA 不替数据库兜底

    如果共享数据库不可用,两台 Server 都无法安全确认 Lease 和任务状态。Server HA 会让无法确认租约的节点进入围栏状态,而不会拿本地缓存继续写。

    # 目标主机容量与 Agent

    页面默认会检查目标主机至少有 4096 MiB 可用内存、2048 MiB 可用磁盘,并确认 Ambari Agent 在线。下面的命令可以提前排除最常见的问题:

    free -m
    df -h /var /var/lib /var/log
    systemctl status ambari-agent --no-pager
    
    1
    2
    3

    目标节点还要满足这些条件:

    • 不是当前 Ambari Server;
    • 没有残留的旧 Ambari Server 进程、数据库配置或 systemd 覆盖;
    • 与当前 Server 使用兼容的操作系统、JDK 和软件源;
    • 能通过 Agent 正常执行主机命令;
    • 主机上的安全策略不会阻止目标目录、端口和证书权限。

    # 控制面必须处于安静状态

    开启前暂停新的安装、升级、扩容、批量重启和安全配置变更,并等待已有任务结束。页面会检查当前 Server 是否可写、是否存在运行中的控制任务,以及其他高可用操作是否持有变更锁。

    我还会在维护窗口开始前保存三份基线:

    1. Ambari 数据库备份及恢复说明;
    2. 当前 Server 与 Agent 的配置备份;
    3. 集群服务、主机和未完成 Request 的快照记录。

    备份的意义不是让人随时手工覆盖运行配置,而是在正式回退或故障分析时有可信基线。

    # 从页面进入启用向导

    使用具备管理权限的账号登录 Ambari Plus,依次进入:

    系统设置 → 高可用管理 → Ambari Server → 开启 Server 高可用

    如果没有看到入口,先确认版本是否包含 Server HA 能力,以及当前账号是否具备高可用管理权限。不要通过手工拼接 URL 绕过版本或权限检查。

    Ambari Server HA 选择备用节点

    上图展示了向导的第一个业务步骤:选择备用节点。页面会列出具备 Agent 基础条件的候选,但“出现在列表中”不等于所有预检查已经通过,后面仍会核对容量、版本、数据库、安全和运行任务。

    # 第一步:选择备用节点

    在候选列表中选择 hadoop3.test.com。我会重点核对以下信息:

    • 当前服务节点明确显示为 hadoop1.test.com;
    • 备用节点不是数据库或统一入口的单点承载主机;
    • 目标 Agent 最近心跳正常,没有待处理的重启或升级;
    • 目标主机故障域尽量与当前 Server 分开,例如不同物理机或可用区;
    • 目标主机的 CPU、内存和磁盘能够承接 Active 负载。

    如果页面显示多个候选,优先选择故障域独立、网络路径稳定、运维权限清楚的节点,不要只按空闲内存排序。

    # 第二步:确认配置计划

    进入确认页后,页面会把即将使用的主备、数据库、入口和安全决策汇总出来。至少检查:

    配置项 应看到的结果
    当前 Server hadoop1.test.com
    新 Standby hadoop3.test.com
    Server 版本 两端目标 release identity 完全一致
    数据库 指向同一个外部数据库入口
    入口模式 DIRECT_ENDPOINTS 或 EXTERNAL_LB 与实际部署一致
    Agent 候选 包含当前 Server 和 Standby,顺序与计划一致
    TLS Agent 启用证书校验,mTLS 材料来源可确认
    故障接管 自动接管策略与维护窗口选择一致

    DIRECT_ENDPOINTS 适合先建立主备或已有调用方能自行发现 Active 的场景;EXTERNAL_LB 适合通过稳定域名统一访问。选择后者时,要确保负载均衡已经能够以 /readiness 判断节点,而不是只做 TCP 探活。

    # 第三步:处理环境检查

    环境检查会把问题分为阻塞项和提示项。阻塞项必须先处理,常见结果如下:

    检查结果 常见原因 处理建议
    当前 Server 不可写 当前节点不是 Active Ready,或数据库异常 先恢复唯一 Active 与数据库,不要继续启用
    版本身份不一致 目标仓库包来自其他构建或版本 修正仓库并重新检查,禁止混装
    数据库不是共享入口 使用 localhost、本机地址或目标节点不可达 先迁移/修正外部数据库配置并验证两端连接
    目标 Agent 不健康 Agent 停止、证书或心跳异常 恢复 Agent,确认主机页状态稳定
    资源不足 可用内存或磁盘低于基线 清理空间或更换目标节点
    存在运行任务 安装、升级、启停等 Request 未结束 等待完成或按原任务处理失败,不要强行清锁
    mTLS 不满足要求 证书过期、自定义材料不可安全复用 修复正式证书链或由平台重新准备材料

    不要为了通过检查修改数据库里的状态

    运行任务、变更锁、HA epoch 和 Operation 都是恢复判断的一部分。直接删除记录可能暂时让按钮变亮,却会破坏幂等和回退依据。应从页面展示的首个失败步骤开始处理。

    修复外部条件后重新执行环境检查。计划内容如果发生变化,例如更换了目标主机或入口模式,应该重新确认整份计划。

    # 第四步:启动自动配置

    确认执行后,页面会创建一笔后台 Operation。浏览器可以离开再回来,但不要重复点击开启。执行过程中通常会依次看到:

    1. 锁定本次高可用变更;
    2. 准备当前 Server 与 Agent 的双向 TLS;
    3. 对目标主机进行远端预检查;
    4. 安装同版本 Ambari Server,并保持停止;
    5. 安全下发数据库、主密钥和允许复用的证书材料;
    6. 以关闭选举的方式启动 Standby;
    7. 当前 Active 提交新的 HA epoch;
    8. 分两阶段写入并激活 Agent 候选配置;
    9. 开启 Standby 选举;
    10. 验证唯一 Active、Standby 和接管准备度。

    有些阶段的超时时间会达到数分钟,例如 Standby 启动、Agent 重启和故障验收。只要页面仍显示后台任务在执行,就让服务端继续;刷新页面不会加快进度,重复创建操作反而会被变更锁拒绝。

    # 页面短暂失联时怎么办

    若恰好发生 Server 重启或角色切换,页面可能进入“正在恢复管理连接”。这时正确的行为是:

    • 暂停新的写操作;
    • 等待新的 Active readiness 成功;
    • 使用原 Operation 标识继续读取进度;
    • 超过恢复窗口后再查看两台 Server 和数据库状态。

    不要在另一个浏览器窗口重新提交一遍,也不要让外部代理自动重试写请求。

    # 某一步失败时从哪里查

    先在页面展开首个失败阶段,记录业务错误、目标主机和时间点。再按阶段检查对应对象:

    阶段 优先检查
    mTLS 准备 当前 Server 是否恢复、证书有效期与信任链、Agent 证书校验
    远端预检查 目标 Agent、系统环境、仓库、磁盘和权限
    软件安装 目标包版本、包管理器日志、残留 systemd 服务
    安全引导 目标 Server 是否停止、清单/哈希/权限、mTLS 通道
    Standby 启动 Server 日志、数据库连接、HA 配置、liveness 与角色
    Agent 切换 失败主机批次、候选配置标记、Agent 重启结果
    选举或验收 Lease、Term、epoch、唯一 Active 和 readiness

    页面提供“继续”时,应继续原 Operation;只有计划明确失效或页面要求重新规划时,才创建新操作。

    # 第五步:完成页只是验收起点

    页面完成后进入 Ambari Server 高可用概览。下面这张图来自一套已经形成主备的环境:当前服务节点为 hadoop1.test.com,备用节点为 hadoop3.test.com,故障接管显示“已准备”。

    Ambari Server HA 运行概览

    概览页至少要同时确认:

    • 当前服务节点与备用节点都明确可见;
    • Server 节点总数为 2;
    • 只有一个节点标记为当前服务节点;
    • 备用节点运行正常;
    • 自动接管策略符合预期;
    • 页面没有遗留的失败或待恢复后台任务。

    但这仍然是控制台视角。正式验收还要从 API、Agent、入口和真实故障四个方向交叉验证。

    # 用 API 核对角色、Term 和 Ready

    下面的命令使用占位域名和端口。-u '<admin-user>' 会交互式询问密码,不要把密码直接写进命令历史。

    curl --fail --silent --show-error \
      --cacert /path/to/ambari-ca.pem \
      -u '<admin-user>' \
      'https://hadoop1.test.com:<server-port>/api/v2/control-plane/ha/agent-status' \
      | jq
    
    1
    2
    3
    4
    5

    对两台节点分别执行,并记录这些字段:

    • role:一台 Active,一台 Standby;
    • ready:只有当前 Active 对业务就绪;
    • term:两台观察到同一个最新 Term;
    • epoch:与本轮 HA 配置一致;
    • instanceId:两个节点身份不同且稳定。

    再分别验证 liveness 和 readiness:

    curl --cacert /path/to/ambari-ca.pem -o /dev/null -sS -w 'liveness=%{http_code}\n' \
      'https://hadoop1.test.com:<server-port>/api/v2/control-plane/ha/liveness'
    
    curl --cacert /path/to/ambari-ca.pem -o /dev/null -sS -w 'readiness=%{http_code}\n' \
      'https://hadoop1.test.com:<server-port>/api/v2/control-plane/ha/readiness'
    
    1
    2
    3
    4
    5

    预期结果是:两台 Server 的 liveness 都成功,只有 Active Ready 的 readiness 返回成功;Standby 的 readiness 明确拒绝。如果两台 readiness 都成功,应立即停止继续写操作并按脑裂风险处理。

    # 核对 Agent 已进入候选模式

    在几台不同机架、不同服务类型的 Agent 上抽查 /etc/ambari-agent/conf/ambari-agent.ini:

    sudo sed -n '/^\[server\]/,/^\[/p' /etc/ambari-agent/conf/ambari-agent.ini
    sudo sed -n '/^\[security\]/,/^\[/p' /etc/ambari-agent/conf/ambari-agent.ini
    systemctl status ambari-agent --no-pager
    
    1
    2
    3

    期望看到:

    • ha_enabled=true;
    • ha_candidates 同时包含 hadoop1.test.com 和 hadoop3.test.com;
    • 状态探测路径是正式 HA agent-status 接口;
    • ssl_verify_cert=1;
    • Agent 当前连接的是 Active,主机心跳在页面恢复正常。

    不要只抽查当前 Server 主机上的 Agent。至少覆盖普通工作节点、边缘节点和承载关键服务的主机,避免某一批 Agent 在切换阶段遗漏。

    # 接入 HAProxy 或已有负载均衡

    统一入口只应把流量转发到 readiness 成功的节点。下面是表达关键原则的 HAProxy 片段,证书、端口和超时要按自己的环境调整:

    backend ambari_servers
      option httpchk GET /api/v2/control-plane/ha/readiness
      http-check expect status 200
      default-server inter 2s fall 2 rise 2 on-marked-down shutdown-sessions
    
      server ambari-1 hadoop1.test.com:&lt;server-port> check ssl verify required ca-file /etc/haproxy/ambari-ca.pem
      server ambari-2 hadoop3.test.com:&lt;server-port> check ssl verify required ca-file /etc/haproxy/ambari-ca.pem
    
    1
    2
    3
    4
    5
    6
    7

    on-marked-down shutdown-sessions 可以让入口摘除旧 Active 时关闭遗留会话。代理层不要为 POST、PUT、PATCH、DELETE 配置自动重试;读取请求是否重试也应限定在明确安全的路径。

    配置完成后,从统一入口验证登录、集群概览、主机列表和一条只读 API。不要一上来就通过代理发起批量重启,以免把入口问题和控制任务问题混在一起。

    # 做一次真正的故障接管演练

    只在批准的维护窗口执行

    停止当前 Active 会中断短时间的管理连接。演练前确认没有安装、升级、启停等写任务,数据库和 Standby 健康,并准备好恢复原 Server 的命令与现场观察人。

    # 演练前记录

    记录当前 Active、Standby、Term、epoch、两台 readiness、统一入口和 Agent 连接分布。保留一个已经存在但只用于观察的 Operation 或页面状态,便于验证接管后读取能否继续。

    # 停止当前 Active

    在 hadoop1.test.com 上执行:

    sudo systemctl stop ambari-server
    
    1

    从另一台运维主机持续观察 hadoop3.test.com 的 agent-status 和 readiness。预期顺序是:

    1. 旧 Active 停止续租;
    2. Lease 到期后 Standby 获取更高 Term;
    3. 新 Active 完成集群与任务状态恢复;
    4. readiness 成功,统一入口恢复;
    5. Agent 在分散窗口内连接新 Active;
    6. 页面重新读取原状态,没有重复创建写任务。

    # 恢复原节点

    新 Active 稳定后,在 hadoop1.test.com 上执行:

    sudo systemctl start ambari-server
    
    1

    原节点应读取到更新后的 Term,以 Standby 身份回归。它不能把自己恢复成旧 Active,也不能让统一入口同时把两台节点标记为 Ready。

    # 故障验收表

    验收点 通过标准
    Active 唯一性 任意时刻最多一个 readiness 成功
    Term 推进 接管后 Term 增加,原节点接受新 Term
    晋升完成 新节点先恢复再 Ready,没有提前接流量
    Agent 重连 Agent 自动迁移,未出现同 Term 多 Active 或持续失联
    页面恢复 短暂失联后自动继续读取,不重复弹同一错误
    写入安全 没有重复 Request、Stage 或 Agent 命令
    旧节点回归 原 Active 以 Standby 稳定加入
    统一入口 地址不变,恢复后只转发新 Active

    所有项目通过,才可以把“HA 已开启”升级为“故障接管已验收”。

    # 常见问题与恢复方向

    # 两台 Server 都存活,但页面说没有可用 Active

    先看数据库连通性和 Lease,而不是反复重启两台 Server。如果两边都无法确认租约,自我围栏正是在保护数据。恢复数据库后观察哪台节点取得最新 Term,并等待晋升完成。

    # Standby liveness 正常,readiness 返回 503

    这是正常现象。Standby 进程应该存活,但不能对普通业务就绪。负载均衡若把 503 当成“整个后端故障”,需要检查是否为每个节点独立维护健康状态。

    # Agent 在切换后持续离线

    抽查 Agent 候选、证书校验、状态探测路径和当前 Term。确认 DNS 能同时解析两台 Server,Agent 能访问新 Active 的 mTLS/服务端口。不要先把 ssl_verify_cert 改成 0 来绕过证书错误。

    # 页面一直停在后台任务执行中

    先打开任务进度查看当前阶段。若 Server 刚刚发生接管,等待页面重新连接并读取原 Operation;若后台已明确失败,从首个失败步骤处理。不要凭一个旋转图标判断整笔操作已经卡死。

    # 恢复节点回来后抢占了 Active

    正常情况下,恢复节点会观察到更高 Term 并成为 Standby。如果出现两个 readiness 成功或 Agent 报告同 Term 多 Active,应立即停止新的管理写入,保留数据库、两台 Server 和 Agent 日志,按高优先级一致性故障处理。

    # 想把备用节点移除

    使用高可用管理页面提供的成员恢复或移除流程,让 Agent 从候选模式正式收敛。不要直接卸载 Standby 或批量手改 ha_candidates,否则仍在线的 Agent、入口和数据库 epoch 可能保留不同拓扑。

    # 日常运维要持续看什么

    启用完成后,我会把下面几项加入巡检和告警:

    • Active/Standby 角色、Term 和 epoch 一致性;
    • 两台 liveness、唯一 readiness;
    • Lease 续租延迟和数据库连接异常;
    • Standby 进程、磁盘、JVM 和证书有效期;
    • Agent 候选配置覆盖率和重连失败数;
    • 统一入口的后端健康、会话摘除和 5xx;
    • 最近一次故障演练时间与结果。

    升级、证书轮换、数据库迁移和入口变更也要按主备顺序执行,并在变更后重新验证唯一 Active。高可用不是启用一次就永久有效,它依赖两台节点、共享数据库、Agent 与入口长期保持同一套协议。

    # 最后的判断标准

    我会用一句话判断这套 HA 是否真正成立:

    当前 Active 消失后,系统能在不重放任何写操作的前提下,选出更高 Term 的唯一新 Active;Agent 与入口自动迁移,旧节点恢复后只作为 Standby 回归。

    只要其中一段还依赖临时改地址、手工复制证书或重新点击操作,就还没有完成闭环。把预检查、自动配置和故障验收都走通,Ambari Server 才从“第二个进程”变成真正可接管的管理控制面。

    回到专题目录

    按动机、架构、实现和实战顺序阅读完整 Ambari Server HA 系列。

    理解唯一 Active

    复习 Lease、Term、写围栏、晋升屏障和 Agent 选主。

    深入启用实现

    沿持久化 Operation 查看远端安装、安全引导和两阶段切换。

    config:
      target: _self
    data:
      - name: 回到专题目录
        desc: 按动机、架构、实现和实战顺序阅读完整 Ambari Server HA 系列。
        link: /v/custom/thoughts/ambari-server-ha/
        bgColor: '#eef6ff'
        textColor: '#1f4e79'
      - name: 理解唯一 Active
        desc: 复习 Lease、Term、写围栏、晋升屏障和 Agent 选主。
        link: /v/custom/thoughts/ambari-server-ha/architecture/
        bgColor: '#eefaf4'
        textColor: '#176b4d'
      - name: 深入启用实现
        desc: 沿持久化 Operation 查看远端安装、安全引导和两阶段切换。
        link: /v/custom/thoughts/ambari-server-ha/implementation/
        bgColor: '#fff8e8'
        textColor: '#79520b'
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    #Ambari Server#高可用#部署实战#故障切换
    从一次启用操作追到主备就绪
    Step0-源码获取

    ← 从一次启用操作追到主备就绪 Step0-源码获取→

    最近更新
    01
    当前版本 2026/08
    08-29
    02
    从一次启用操作追到主备就绪
    08-17
    03
    一把租约如何守住唯一 Active
    08-17
    更多文章>
    Theme by Vdoing | Copyright © 2017-2026 JaneTTR | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式