简介这份资源是围绕 Ambari 搭建大数据平台的完整安装手册面向大数据运维、平台架构及初学者帮助读者从零部署 Hadoop 生态集群。手册内容覆盖大数据平台基本概念、Ambari 与 HDP 的核心作用并给出 CentOS 7、JDK 1.8 等具体环境版本以及主机名配置、网络配置、关闭防火墙与 Selinux、禁用 THP 等安装前准备步骤。资源为 1 个 PDF 文件大小约 7.97MB便于按章节查阅与打印。当前已有 719 人学习下载。借助这份手册读者可以少走弯路系统梳理 Ambari 安装主流程掌握从仓库下载、环境初始化到集群部署的关键细节尤其适合用于离线或内网环境下的大数据平台搭建参考。1. 为什么 202x 年还要自己搭 Ambari 大数据平台这几年云上托管大数据服务越来越普及ClickHouse、StarRocks 这类新型引擎也抢走了不少传统 Hadoop 生态的风头。但实际进到企业里你会发现像 Ambari 这样能统一管理 HDFS、YARN、Hive、HBase、Kafka、Zookeeper 的成熟方案依然是很多私有化项目、信创环境和离线机房的第一选择。Ambari 的核心价值在于它把集群的安装、配置、监控、告警、滚动重启、组件升降级全部收进了一个 Web 控制台运维人员不需要记一堆组件的配置文件路径和启动命令就能在浏览器里完成日常管理。不过 Ambari 的搭建过程并不像它的使用界面那么友好。尤其是到了 202x 年Ambari 2.7.x 官方停止更新已经很久而底层的 CentOS、JDK、Python 版本都在不断变化网上能找到的教程大多还停留在 2018 年左右的旧环境。直接把老手册里的命令抄到新系统上大概率会遇到 Python 语法不兼容、依赖包下载失败、HDP 仓库地址失效等一系列问题。这篇文章就是顺着「202x 年 Ambari 搭建大数据平台安装手册专业完整版」这个标题把从零到能跑起来的那套流程重新梳理一遍先讲清楚 Ambari 和 HDP 的版本关系再给出一套能落地的安装步骤最后把常见坑和参数调优经验一并说透。适合正在做私有化交付、或者被要求离线部署大数据平台的运维和架构师阅读。2. Ambari 版本选型与前置环境检查2.1 Ambari 和 HDP 的版本绑定关系Ambari 本身只是一个管理框架它不包含大数据组件真正的 HDFS、YARN、Hive 等组件是由 HDPHortonworks Data Platform发行版提供的。所以搭建 Ambari 大数据平台时你实际上要装两套东西一套是 Ambari Server一套是 HDP Stack。在 2.7.x 时代Ambari 的版本号和 HDP 的版本号并不是一一对应的但大致绑定关系是Ambari 2.7.5 对应 HDP 3.1.4/3.1.5Ambari 2.7.6 也主要针对 HDP 3.1.5 做一些修复。如果你要装 HDP 3.1.0用 Ambari 2.7.3 即可装 HDP 3.1.4 以上建议直接上 Ambari 2.7.5 或 2.7.6。提示很多人在网上找到 Ambari 2.7.6 的源码包和 HDP 3.1.5 的仓库地址但它们大多存放在国外服务器上。国内环境强烈建议先下载好全部 RPM 包到本地做成 yum 本地源否则安装过程中随时可能因为网络问题中断。后面会给出离线源的制作方法。2.2 操作系统与 JDK 的兼容性坑Ambari 2.7.x 官方支持的操作系统包括 CentOS 7.x、RHEL 7.x 和 Ubuntu 16.04/18.04。到了 202x 年很多新交付的项目已经不再使用 CentOS 7而是转向 CentOS 7 的衍生版本比如 Rocky Linux 8、AlmaLinux 8或者干脆用 Ubuntu 22.04。这里有一个关键认知Ambari 官方没有声明支持 Rocky Linux 8但实际部署中只要系统库满足 glibc、python 版本要求跑起来是没有问题的。对于 Ubuntu 22.04需要额外注意两个坑。第一Ubuntu 22.04 默认的 Python 3.10 与 Ambari 2.7.x 自带的 Python 脚本存在兼容性问题常见的报错是TypeError: unsupported operand type(s) for : int and NoneType这通常出现在 Ambari Server 初始化数据库时第二Ubuntu 22.04 默认没有安装 Python 2而 Ambari 2.7.x 的很多 agent 脚本是用 Python 2 写的。因此如果你坚持用 Ubuntu 22.04 安装 Ambari需要提前安装 Python 2.7 并做好软链# Ubuntu 22.04 下补充 Python 2.7 环境 sudo apt update sudo apt install -y python2 python2-dev sudo ln -s /usr/bin/python2.7 /usr/bin/python这里把/usr/bin/python指向 Python 2.7是因为 Ambari Server 和 Agent 的启动脚本中大量使用#!/usr/bin/python这种写法如果不做软链服务一启动就会报找不到解释器。但要注意系统自身的一些工具比如apt、update-alternatives可能依赖 Python 3在做完软链后不要全局替换/usr/bin/python3只保留python指向 2.7 即可。JDK 方面HDP 3.1.x 官方支持 JDK 8推荐使用 OpenJDK 1.8.0_282 以上版本。Ambari 2.7.5 自带的 Oracle JDK 安装包在 202x 年已经无法从 Oracle 官网下载所以建议直接准备 OpenJDK 8 的 RPM 或 tar 包。在 CentOS 7 下可以把 OpenJDK 安装到/usr/lib/jvm/java-1.8.0-openjdk路径下Ambari 安装时选择自定义 Java 路径即可。2.3 节点规划与资源评估Ambari 大数据平台最少需要 3 台机器才能跑出一个高可用集群1 台部署 Ambari Server Zookeeper JournalNode2 台部署 DataNode NodeManager 各种计算组件。如果是测试环境可以只用 1 台机器同时跑 Ambari Server 和所有组件但生产环境不建议这么干因为 Ambari Server 的元数据库和 NameNode 的元数据放在同一台机器上一旦磁盘满了整个集群都会雪崩。资源评估可以参考以下表格组件类型CPU 要求内存要求磁盘要求说明Ambari Server2 核以上至少 4GB推荐 8GB50GB 以上元数据库、rpm 缓存、stack 定义Master 节点4 核以上16GB 以上100GBNameNode、ResourceManager、HiveServer2Worker 节点8 核起步32GB 起步数据盘按需DataNode、NodeManager、Kafka Broker要注意的是Ambari Server 的元数据库默认使用内嵌的 PostgreSQL但这个内嵌库的存储路径默认在/var/lib/ambari-server下。如果你把/根分区只分了 20GB安装了几个 stack 定义和 rpm 缓存之后磁盘就被打满了。所以规划时至少给/var独立分区或者把 ambari-server 的配置改为使用外部 PostgreSQL。3. 基于 Ambari 搭建大数据平台的最小可行安装流程3.1 配置本地 yum 源与离线仓库在 202x 年的网络环境下直接连接 Ambari 官方源基本不可能完成安装。最常见的做法是把 Ambari 和 HDP 的所有 RPM 包下载到一台内网机器上做成 yum 本地源然后让所有节点通过 HTTP 或 NFS 访问这个源。这里以 CentOS 7 系列为例先把 Ambari 和 HDP 仓库的 repo 文件下载下来# 在可以联网的机器上下载 Ambari 2.7.5 的仓库文件 wget https://archive.cloudera.com/p/ambari/centos7/2.x/updates/2.7.5.0/ambari.repo # 下载 HDP 3.1.5 的仓库文件注意版本号要与 Ambari 匹配 wget https://archive.cloudera.com/p/HDP/centos7/3.x/updates/3.1.5.0/hdp.repo这两个 repo 文件里默认写的是https://archive.cloudera.com的远程地址。要转成本地源你需要先在一台有外网的 CentOS 7 机器上用yum repolist和createrepo把所有依赖拉下来然后打包传到内网。这个步骤看起来很笨重但它能保证后面安装时一条命令都不卡住。有了 RPM 包之后用createrepo生成元数据# 将 Ambari 和 HDP 的 RPM 包分别放到两个目录 mkdir -p /opt/localrepo/ambari mkdir -p /opt/localrepo/hdp # 把 RPM 包拷贝到对应目录后执行 createrepo yum install -y createrepo createrepo /opt/localrepo/ambari createrepo /opt/localrepo/hdp # 用 nginx 或 httpd 把 /opt/localrepo 暴露为 HTTP 服务 yum install -y httpd systemctl start httpd systemctl enable httpd ln -s /opt/localrepo /var/www/html/localrepo然后在所有节点上把原来的远程 repo 文件替换为本地地址cat /etc/yum.repos.d/ambari-local.repo EOF [ambari-local] nameambari-local baseurlhttp://中控机IP/localrepo/ambari enabled1 gpgcheck0 [hdp-local] namehdp-local baseurlhttp://中控机IP/localrepo/hdp enabled1 gpgcheck0 EOF这里把gpgcheck设为 0 是为了跳过 PGP 签名验证。在离线环境里公钥导入经常出问题而集群节点都在内网信任边界清晰直接关掉签名校验可以少踩一个坑。3.2 Ambari Server 初始化与数据库配置yum 源配好之后在 Ambari Server 节点上安装并初始化yum install -y ambari-server # 设置 Java 路径避免 Ambari 依赖内置 JDK ambari-server setup -j /usr/lib/jvm/java-1.8.0-openjdk执行ambari-server setup时交互式向导会询问几个关键问题是否自定义 JDK、数据库类型是什么、是否启用 LDAP 等。对于首次安装直接用默认值即可但有一点需要特别注意如果内存紧张可以在初始化时把内存调低因为 Ambari Server 默认的 JVM 堆大小是 2GB在只有 4GB 内存的测试机上跑会非常吃力。调低堆大小的方法是在setup完成后修改/etc/ambari-server/conf/ambari.properties# 将 JVM 堆大小从 2G 改为 1G适合小资源测试机 java.home/usr/lib/jvm/java-1.8.0-openjdk client.api.port8080 user.idroot改完之后重启 Ambari Serverambari-server restart启动完成后Web 界面默认监听在http://中控机IP:8080默认管理员账号是admin密码为admin。进入界面后第一件事是修改默认密码否则集群里所有机器都会被内网其他人员接管。3.3 Agent 批量安装与主机注册Ambari Agent 的安装相对简单在所有数据节点上执行yum install -y ambari-agent # 修改 agent 配置指向 Ambari Server sed -i s/hostnamelocalhost/hostname中控机IP/ /etc/ambari-agent/conf/ambari-agent.ini systemctl start ambari-agent systemctl enable ambari-agent安装 Agent 之前务必保证每台节点的/etc/hosts里写入了所有集群节点的 IP 与主机名映射。Ambari 的 Agent 注册机制是通过主机名来识别节点的如果主机名解析不到注册会一直卡在Registering...状态。注意Agent 安装完成后不要立刻在 Web 界面点「Add Host」。Ambari Server 需要先通过 SSH 连接目标主机把安装包推送过去。如果节点之间没有配置免密 SSH可以直接用 Ambari 的 agent 注册方式但更稳妥的做法是先在每台节点上手动装好 ambari-agent再回到 Web 界面进行注册。手动安装能避免 90% 的「Unable to connect to the server」类问题。注册完 Agent在 Web 界面创建集群选择 HDP 3.1.5.0 版本然后一步步勾选要安装的组件。在这个环节最容易出问题的是 Hive 和 Tez 的安装如果机器缺少nc、lzo相关库Hive 初始化会失败。所以在注册主机前建议先在所有节点上执行一句批量补依赖yum install -y nc lzo lzo-devel snappy snappy-devel gcc gcc-c autoconf automake libtool openssl-devel3.4 关键配置文件与参数调整Ambari 安装完成后很多参数默认值并不适合直接上生产。主要原因是 Ambari 默认配置比较保守适合用于「能跑起来」的验证环境但一旦数据量上来批量写入和并发查询都会碰到瓶颈。以 HDFS 为例NameNode 堆大小默认只有 1GB当文件数量超过 500 万时就会频繁 Full GC。修改方式是进入 Web 界面在 HDFS 的 Configs 中找到NameNode Java heap size# 在 HDFS Custom 配置中增加参数 HADOOP_NAMENODE_OPTS-Xms4G -Xmx4G这里的-Xms和-Xmx保持一致是为了避免 JVM 在运行过程中动态伸缩堆内存带来额外的性能开销。YARN 的yarn.nodemanager.resource.memory-mb也需要根据节点物理内存调整Ambari 默认只会分配物理内存的 75% 给 YARN但如果你在同一台机器上还跑了 Kafka、HBase那就需要手动下调这个值否则会出现一个节点上多组件互相抢占内存的情况。另外一个经常被忽略的参数是 Hive 的hive.exec.parallel。默认值为 false意味着 Hive 的多个 stage 会串行执行。对于复杂的 ETL 任务打开并行能显著缩短执行时间-- Hive 会话级开启并行执行 SET hive.exec.paralleltrue; SET hive.exec.parallel.thread.number16;在实际集群里调优的做法是先在 Ambari 的 Hive Configs 里全局修改hive-site.xml而不是每次都执行SET。全局参数修改后需要重启 HiveServer2 才能生效。4. 大数据平台组件安装后的连通性与监控验证4.1 从 Ambari Web 界面验证集群健康状态组件全部安装完成并启动后首先看 Ambari Dashboard 的整体健康状态。界面中的红灯表示有组件处于停止或异常状态黄灯表示组件在运行但有告警绿灯代表一切正常。不要只盯着系统级的告警重点看两个地方HDFS 的 DataNode 数量和 YARN 的 NodeManager 数量是不是和实际节点数一致。如果有一个 DataNode 显示为红色先到对应节点上执行# 查看 DataNode 进程是否存在 jps | grep DataNode # 如果进程不存在检查日志 tail -100 /var/log/hadoop/hdfs/hadoop-hdfs-datanode-$(hostname).log最常见的原因是/etc/hosts未配齐导致 DataNode 无法与 NameNode 建立 RPC 连接。另外如果修改过 Linux 主机名DataNode 的日志中可能出现java.net.UnknownHostException解决办法是把新主机名同时写入/etc/hosts和重新格式化 NameNode 时避免使用 localhost 作为主机名。4.2 HDFS 与 YARN 的最小功能验证在 Web 界面确认无红灯后需要做一次真实的数据读写验证。不要在界面上点几下就以为集群可用了最好通过命令行切实跑一次 MR 任务# 进入 hadoop 用户环境 sudo -u hdfs hadoop fs -mkdir -p /user/ambari-qa sudo -u hdfs hadoop fs -chown ambari-qa /user/ambari-qa # 运行自带的 pi 计算示例验证 MapReduce 是否可用 sudo -u hdfs hadoop jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar pi 16 1000这里pi 16 1000表示启动 16 个 map 任务每个任务采样 1000 次用于快速验证 YARN 的资源调度、MapReduce 的 shuffle 和 HDFS 的临时目录读写是否都正常。命令执行结束后会输出一个大约在 3.14 左右的数值此时可以确认 MapReduce 链路已经通了。如果任务卡在ACCEPTED状态不跑通常是 YARN 的yarn.app.mapreduce.am.resource.mb设置过小比如默认值只有 1536MB但 NodeManager 可用内存不足ApplicationMaster 一直申请不到资源。这时候去 Ambari 的 YARN Configs 里调大这个值同时检查每台节点是否启用了虚拟内存限制。4.3 Hive、HBase、Kafka 组件的功能验证Hive 的验证方式是先启动 HiveServer2然后用 beeline 连接并执行建表查询beeline -u jdbc:hive2://中控机IP:10000 -n admin -e show databases;如果能返回default数据库说明 HiveServer2 没有权限问题。如果出现Unable to open connection第一反查不是 URL而是/etc/hosts和防火墙。很多 Hadoop 组件之间走的是私有 IP 或主机名通信beeline 里写的 IP 必须与/etc/hosts中映射的主机名能互相解析。HBase 的验证更简单使用自带 shellhbase shell # 创建一张表插入并扫描数据 create test_table, cf put test_table, row1, cf:name, ambari scan test_table如果 put 操作长时间不返回或者报org.apache.hadoop.hbase.PleaseHoldException说明 HBase 还在初始化 meta 表。等待 30 秒再执行 scan 通常可以解决但如果持续超过 10 分钟检查 HMaster 和 HRegionServer 的日志确认 ZooKeeper 的hbase.rootdir路径与 HDFS 实际路径是否一致。这里有一个常见的路径误区hbase.rootdir默认是hdfs://mycluster/hbase如果你的 HDFS 服务名不是mycluster需要把它改成hdfs://namenode-hostname:8020/hbase否则 HBase 会一直尝试连接到不存在的逻辑地址。Kafka 验证则要从两端来看先确认 Broker 启动正常再通过控制台脚本收发消息# 创建一个临时主题 /usr/hdp/current/kafka-broker/bin/kafka-topics.sh --create --zookeeper zk-host:2181 --partitions 3 --replication-factor 2 --topic test-topic # 启动生产者发送消息 echo hello ambari | /usr/hdp/current/kafka-broker/bin/kafka-console-producer.sh --broker-list kafka-broker:6667 --topic test-topic很多人在 Kafka 验证时卡在端口上HDP 3.1.x 中 Kafka 默认的listeners端口是 6667 而不是 9092这与社区版 Kafka 默认端口不一样。如果你不知道这个差异会一直拿到Connection refused的错误。当然这个端口值是可以改的如果需要兼容客户端配置直接在 Ambari 里把 Kafka Broker 的listeners属性改成PLAINTEXT://:9092重启后即可。5. Ambari 集群的滚动升级与配置变更实践5.1 修改组件参数后如何优雅生效Ambari 安装的集群最大的优势是配置变更时不需要逐台手动修改配置文件所有修改都在 Web 界面完成。但很多新手会把「保存配置」和「重启服务」混为一谈。在 Ambari 中每次修改配置项界面右上角会出现「Save」按钮保存后系统只会把新配置写入 staging 目录并不会立刻分发到各节点。你需要点击「Restart」或者「Restart All Required」Ambari 才会把配置文件同步到所有节点并重启受影响的服务。有一个值得注意的细节Ambari 的重启操作是带依赖关系的。比如你修改并重启了 HDFS那么依赖 HDFS 的 HBase、Hive、Oozie 组件会收到「配置过期」的黄色提示。此时不必立即重启所有下游组件可以等一个维护窗口统一重启。但如果你修改的是 ZooKeeper 的clientPort那么所有连接 ZooKeeper 的组件都必须同时重启否则新旧端口不一致会导致集群失联。5.2 滚动重启与维护模式生产集群中重启某个组件时直接点「Restart」会中断正在运行的任务。Ambari 提供了一种「滚动重启」选项在组件实例列表页上选中需要重启的主机点击Turn On Maintenance Mode然后对该主机上的组件执行重启。开启维护模式的意义在于Ambari 会把该主机上的组件告警暂时屏蔽避免重启过程中监控告警刷屏。对于 Kafka 和 HBase 这类对可用性敏感的组件滚动重启不是简单地同时重启所有 Broker 或 RegionServer。在 Ambari 界面上你可以针对 Kafka Broker 设置kafka.broker.id下的automatic.restart参数但这并不能做到真正意义上的「逐个重启」。如果你想严格实现滚动重启更可靠的做法是使用 Ambari REST API 逐个节点触发重启而不是同时重启整个组件。示例脚本如下# 遍历所有主机逐个重启指定组件 for host in host1.example.com host2.example.com host3.example.com; do curl -u admin:admin -H X-Requested-By: ambari \ -X PUT \ -d {RequestInfo:{context:Rolling Restart Kafka},Body:{ServiceInfo:{state:INSTALLED}}} \ http://ambari-server:8080/api/v1/clusters/MyCluster/hosts/${host}/host_components/KAFKA_BROKER sleep 30 curl -u admin:admin -H X-Requested-By: ambari \ -X PUT \ -d {RequestInfo:{context:Rolling Restart Kafka},Body:{ServiceInfo:{state:STARTED}}} \ http://ambari-server:8080/api/v1/clusters/MyCluster/hosts/${host}/host_components/KAFKA_BROKER done这条命令里的state先设为INSTALLED表示停止服务再设为STARTED表示重新启动。每操作一台主机后等待 30 秒是为了让 Kafka 的 ISR 列表完成副本同步。如果没有这个等待时间会频繁出现Not enough replicas的告警。5.3 利用 Ambari Blueprint 实现免界面安装如果只是自己搭一套环境用 Web 界面走一遍安装向导没问题。但如果你需要交付多套一样的集群或者要在一组机器上快速重建集群手工点界面就非常浪费时间。Ambari 提供了 Blueprint 机制你可以把集群的所有组件拓扑和配置写成一个 JSON 文件然后一次性创建集群。Blueprints 的核心思想是 Topology Template 与 Cluster Template 分离。Topology 定义每个主机组里跑什么组件Cluster 定义各组件配置和主机组映射。下面是一个最简 Blueprint 的集群拓扑片段# 创建集群拓扑文件 cat blueprint.json EOF { blueprint: { name: my-blueprint, host_groups: [ { name: master, components: [ {name: NAMENODE}, {name: RESOURCEMANAGER}, {name: HIVE_SERVER}, {name: ZOOKEEPER_SERVER} ] }, { name: worker, components: [ {name: DATANODE}, {name: NODEMANAGER} ] } ] } } EOF # 注册 Blueprint curl -u admin:admin -H X-Requested-By: ambari \ -X POST -d blueprint.json \ http://ambari-server:8080/api/v1/blueprints/my-blueprint注册之后还需要准备一个集群模板指定每个主机组对应哪些真实主机名cat cluster-template.json EOF { blueprint: my-blueprint, default_password: Hadoop123, host_groups: [ { name: master, hosts: [ {fqdn: master1.example.com}, {fqdn: master2.example.com} ] }, { name: worker, hosts: [ {fqdn: worker1.example.com}, {fqdn: worker2.example.com} ] } ] } EOF # 用模板创建集群 curl -u admin:admin -H X-Requested-By: ambari \ -X POST -d cluster-template.json \ http://ambari-server:8080/api/v1/clusters/my-cluster注意如果你的机器组中有没有安装 agent 的 host 时注册集群不会失败但安装部署阶段会报错。因此在 Blueprint 方式下也必须在所有主机上提前安装并注册ambari-agent。5.4 配置变更失败的排查技巧配置变更后常遇到三个问题服务重启失败、配置未生效、组件之间配置不一致。服务重启失败时第一件事不是乱改配置而是查看 Ambari 的 install 日志和组件日志。Ambari 会在 UI 上提供回溯日志的按钮日志路径也很有规律/var/log/ambari-server/ambari-server.log /var/log/ambari-agent/ambari-agent.log /var/log/hadoop/hdfs/hadoop-hdfs-namenode-hostname.log配置未生效的场景多半是你改了参数但没有重启对应的组件。大多数 Hadoop 配置是启动时读取一次运行中即使配置文件被更新也不会动态加载。所以修改完配置后只有执行了重启新的参数才会实际生效。组件间配置不一致通常出现在你绕过 Ambari 直接去改/etc/hive/conf/hive-site.xml时。Ambari 维护的配置目录有独立的一份在节点上叫/etc/hive/conf但在 Ambari 内部还维护着 config_version。如果你手动改文件Ambari 在下一次配置下发时会用它的版本覆盖你的手动修改这会让你的改动看起来「丢了」。正确的做法是永远在 Ambari UI 里改配置而不是直接在节点上改文件。6. 结尾技巧Ambari Server 的备份恢复与一键健康巡检Ambari 的 Server 是控制面一旦它挂了虽然数据面组件还能继续运行但你失去了管理、监控、告警的能力。所以一个实用的进阶技巧是定期备份 Ambari Server 的元数据库。Ambari Server 默认使用内嵌 PostgreSQL备份方式如下# 在 Ambari Server 主机上执行 pg_dump -U ambari -h localhost -p 5432 ambari /backup/ambari_$(date %Y%m%d).sql这个命令只会导出 Ambari 自身的元数据比如集群名称、主机映射、配置版本、告警定义不会导出 HDFS 里的业务数据。恢复时在启动 Ambari Server 之前先恢复数据库# 停止心服务后恢复数据库 service postgresql restart psql -U ambari -h localhost -p 5432 -d ambari -f /backup/ambari_20240520.sql如果因为升级等原因导致 Ambari Server 版本和备份版本不一致恢复后可能会出现部分页面 500 错误。所以备份恢复脚本要和集群的主机名绑定不要把备份文件挪到另一套主机名不同的集群去恢复。另一个实用技巧是用 Ambari REST API 写一键巡检脚本通过命令行检查所有服务的状态免去打开界面的繁琐操作。脚本可以直接判断当前集群是否处于健康状态curl -u admin:admin -s -H X-Requested-By: ambari \ http://ambari-server:8080/api/v1/clusters/MyCluster/services \ | grep -E ServiceInfo|state | paste - - | awk {print $2, $4}这段代码的输出会列出集群中所有服务的名称和状态。把结果里不是STARTED的服务名称摘出来就是需要处理的异常项。加上date和crontab -e定时执行就拥有一个最低成本的状态监控看板。此时还可以在脚本中加入一个curl探测 Ambari Server 8080 端口是否可达和告警逻辑达到 5 分钟内发现 Ambari Server 故障避免一直以为集群「有人管」实则已经失控的假象。本文还有配套的精品资源点击获取
