TT Bigdata TT Bigdata
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件专题

    • 安装指导
    • 实战 Kerberos
    • 魔改分享
  • 版本专题

    • 更新说明
    • BUG临时处理
  • 实验室

    • VIEW插件
    • JIRA速查
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 二开指导

    • 前端开发
    • 后端开发
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop-官方组件
    • 专区—Bigtop-扩展组件
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • APT仓库增量更新
    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Ambari-Metrics
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 核心代码

    • 各组件代码
    • 通用代码模板
  • 国产化&其他系统

    • Kylin V10系列
    • Rocky系列
    • Ubuntu系列
  • Grafana监控方案

    • Ambari-Metrics插件
    • Infinity插件
  • 优化增强

    • 组件配置调优
  • 支持&共建

    • 蓝图愿景
    • 合作共建
    • 服务说明
登陆
GitHub (opens new window)

JaneTTR

数据酿造智慧,每一滴都是沉淀!
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件专题

    • 安装指导
    • 实战 Kerberos
    • 魔改分享
  • 版本专题

    • 更新说明
    • BUG临时处理
  • 实验室

    • VIEW插件
    • JIRA速查
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 二开指导

    • 前端开发
    • 后端开发
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop-官方组件
    • 专区—Bigtop-扩展组件
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • APT仓库增量更新
    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Ambari-Metrics
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 核心代码

    • 各组件代码
    • 通用代码模板
  • 国产化&其他系统

    • Kylin V10系列
    • Rocky系列
    • Ubuntu系列
  • Grafana监控方案

    • Ambari-Metrics插件
    • Infinity插件
  • 优化增强

    • 组件配置调优
  • 支持&共建

    • 蓝图愿景
    • 合作共建
    • 服务说明
登陆
GitHub (opens new window)
  • 最小化安装(简单)

  • 进阶安装技巧(需开启Kerberos)

    • Ambari Metrics 进阶安装技巧
      • 一、问题现象与触发条件
      • 二、错误分析与排查思路
        • 1、先确认:到底在绑定哪个地址
        • 2、排查清单(建议按顺序执行)
      • 三、解决办法
        • 1、优先推荐:改 ams-site 配置(通用、最少改动)
        • 2、验证 HA:三节点 Collector 启动与页面状态
        • 3、故障演练:停掉一个 Collector 观察自动下线/恢复
      • 四、低版本(< 2.2.3)源码层修复:避免推荐值把你“改回去”
    • Atlas 进阶安装技巧
  • 高可用安装(有难度)

  • 组件安装
  • 进阶安装技巧(需开启Kerberos)
JaneTTR
2026-01-26
目录

Ambari Metrics 进阶安装技巧

# 一、问题现象与触发条件

部署 Ambari Metrics(AMS)Collector 后,服务启动失败,关键日志集中在 AMSApplicationServer WebApp 启动阶段:

2026-01-27 13:34:46,068 INFO org.apache.hadoop.http.HttpServer2: HttpServer.start() threw a non Bind IOException
java.net.BindException: Port in use: dev3:6188
        at org.apache.hadoop.http.HttpServer2.constructBindException(HttpServer2.java:1344)
        at org.apache.hadoop.http.HttpServer2.bindForSinglePort(HttpServer2.java:1366)
        at org.apache.hadoop.http.HttpServer2.openListeners(HttpServer2.java:1429)
        at org.apache.hadoop.http.HttpServer2.start(HttpServer2.java:1275)
        at org.apache.hadoop.yarn.webapp.WebApps$Builder.start(WebApps.java:472)
        at org.apache.hadoop.yarn.webapp.WebApps$Builder.start(WebApps.java:461)
        at org.apache.ambari.metrics.AMSApplicationServer.startWebApp(AMSApplicationServer.java:135)
        at org.apache.ambari.metrics.AMSApplicationServer.serviceStart(AMSApplicationServer.java:73)
        at org.apache.hadoop.service.AbstractService.start(AbstractService.java:194)
        at org.apache.ambari.metrics.AMSApplicationServer.launchAMSApplicationServer(AMSApplicationServer.java:98)
        at org.apache.ambari.metrics.AMSApplicationServer.main(AMSApplicationServer.java:107)
Caused by: java.io.IOException: Failed to bind to dev3/192.168.3.157:6188
        at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:349)
        at org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:310)
        at org.apache.hadoop.http.HttpServer2.bindListener(HttpServer2.java:1331)
        at org.apache.hadoop.http.HttpServer2.bindForSinglePort(HttpServer2.java:1362)
        ... 9 more
Caused by: java.net.BindException: Cannot assign requested address
        at sun.nio.ch.Net.bind0(Native Method)
        at sun.nio.ch.Net.bind(Net.java:433)
        at sun.nio.ch.Net.bind(Net.java:425)
        at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
        at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
        at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:344)
        ... 12 more
2026-01-27 13:34:46,070 ERROR org.apache.ambari.metrics.AMSApplicationServer: AHSWebApp failed to start.
org.apache.hadoop.yarn.webapp.WebAppException: Error starting http server
        at org.apache.hadoop.yarn.webapp.WebApps$Builder.start(WebApps.java:476)
        at org.apache.hadoop.yarn.webapp.WebApps$Builder.start(WebApps.java:461)
        at org.apache.ambari.metrics.AMSApplicationServer.startWebApp(AMSApplicationServer.java:135)
        at org.apache.ambari.metrics.AMSApplicationServer.serviceStart(AMSApplicationServer.java:73)
        at org.apache.hadoop.service.AbstractService.start(AbstractService.java:194)
        at org.apache.ambari.metrics.AMSApplicationServer.launchAMSApplicationServer(AMSApplicationServer.java:98)
        at org.apache.ambari.metrics.AMSApplicationServer.main(AMSApplicationServer.java:107)
Caused by: java.net.BindException: Port in use: dev3:6188
        at org.apache.hadoop.http.HttpServer2.constructBindException(HttpServer2.java:1344)
        at org.apache.hadoop.http.HttpServer2.bindForSinglePort(HttpServer2.java:1366)
        at org.apache.hadoop.http.HttpServer2.openListeners(HttpServer2.java:1429)
        at org.apache.hadoop.http.HttpServer2.start(HttpServer2.java:1275)
        at org.apache.hadoop.yarn.webapp.WebApps$Builder.start(WebApps.java:472)
        ... 6 more
Caused by: java.io.IOException: Failed to bind to dev3/192.168.3.157:6188
        at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:349)
        at org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:310)
        at org.apache.hadoop.http.HttpServer2.bindListener(HttpServer2.java:1331)
        at org.apache.hadoop.http.HttpServer2.bindForSinglePort(HttpServer2.java:1362)
        ... 9 more
Caused by: java.net.BindException: Cannot assign requested address
        at sun.nio.ch.Net.bind0(Native Method)
        at sun.nio.ch.Net.bind(Net.java:433)
        at sun.nio.ch.Net.bind(Net.java:425)
        at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
        at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
        at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:344)
        ... 12 more
2026-01-27 13:34:46,071 INFO org.apache.hadoop.service.AbstractService: Service org.apache.ambari.metrics.AMSApplicationServer failed in state STARTED
org.apache.hadoop.yarn.exceptions.YarnRuntimeException: AHSWebApp failed to start.
        at org.apache.ambari.metrics.AMSApplicationServer.startWebApp(AMSApplicationServer.java:139)
        at org.apache.ambari.metrics.AMSApplicationServer.serviceStart(AMSApplicationServer.java:73)
        at org.apache.hadoop.service.AbstractService.start(AbstractService.java:194)
        at org.apache.ambari.metrics.AMSApplicationServer.launchAMSApplicationServer(AMSApplicationServer.java:98)
        at org.apache.ambari.metrics.AMSApplicationServer.main(AMSApplicationServer.java:107)
Caused by: org.apache.hadoop.yarn.webapp.WebAppException: Error starting http server
        at org.apache.hadoop.yarn.webapp.WebApps$Builder.start(WebApps.java:476)
        at org.apache.hadoop.yarn.webapp.WebApps$Builder.start(WebApps.java:461)
        at org.apache.ambari.metrics.AMSApplicationServer.startWebApp(AMSApplicationServer.java:135)
        ... 4 more
Caused by: java.net.BindException: Port in use: dev3:6188
        at org.apache.hadoop.http.HttpServer2.constructBindException(HttpServer2.java:1344)
        at org.apache.hadoop.http.HttpServer2.bindForSinglePort(HttpServer2.java:1366)
        at org.apache.hadoop.http.HttpServer2.openListeners(HttpServer2.java:1429)
        at org.apache.hadoop.http.HttpServer2.start(HttpServer2.java:1275)
        at org.apache.hadoop.yarn.webapp.WebApps$Builder.start(WebApps.java:472)
        ... 6 more
Caused by: java.io.IOException: Failed to bind to dev3/192.168.3.157:6188
        at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:349)
        at org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:310)
        at org.apache.hadoop.http.HttpServer2.bindListener(HttpServer2.java:1331)
        at org.apache.hadoop.http.HttpServer2.bindForSinglePort(HttpServer2.java:1362)
        ... 9 more
Caused by: java.net.BindException: Cannot assign requested address
        at sun.nio.ch.Net.bind0(Native Method)
        at sun.nio.ch.Net.bind(Net.java:433)
        at sun.nio.ch.Net.bind(Net.java:425)
        at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
        at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
        at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:344)
        ... 12 more
2026-01-27 13:34:46,072 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Stopping Phoenix metrics system...
2026-01-27 13:34:46,072 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Phoenix metrics system stopped.
2026-01-27 13:34:46,072 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Phoenix metrics system shutdown complete.
2026-01-27 13:34:46,073 FATAL org.apache.ambari.metrics.AMSApplicationServer: Error starting AMSApplicationServer
org.apache.hadoop.yarn.exceptions.YarnRuntimeException: AHSWebApp failed to start.
        at org.apache.ambari.metrics.AMSApplicationServer.startWebApp(AMSApplicationServer.java:139)
        at org.apache.ambari.metrics.AMSApplicationServer.serviceStart(AMSApplicationServer.java:73)
        at org.apache.hadoop.service.AbstractService.start(AbstractService.java:194)
        at org.apache.ambari.metrics.AMSApplicationServer.launchAMSApplicationServer(AMSApplicationServer.java:98)
        at org.apache.ambari.metrics.AMSApplicationServer.main(AMSApplicationServer.java:107)
Caused by: org.apache.hadoop.yarn.webapp.WebAppException: Error starting http server
        at org.apache.hadoop.yarn.webapp.WebApps$Builder.start(WebApps.java:476)
        at org.apache.hadoop.yarn.webapp.WebApps$Builder.start(WebApps.java:461)
        at org.apache.ambari.metrics.AMSApplicationServer.startWebApp(AMSApplicationServer.java:135)
        ... 4 more
Caused by: java.net.BindException: Port in use: dev3:6188
        at org.apache.hadoop.http.HttpServer2.constructBindException(HttpServer2.java:1344)
        at org.apache.hadoop.http.HttpServer2.bindForSinglePort(HttpServer2.java:1366)
        at org.apache.hadoop.http.HttpServer2.openListeners(HttpServer2.java:1429)
        at org.apache.hadoop.http.HttpServer2.start(HttpServer2.java:1275)
        at org.apache.hadoop.yarn.webapp.WebApps$Builder.start(WebApps.java:472)
        ... 6 more
Caused by: java.io.IOException: Failed to bind to dev3/192.168.3.157:6188
        at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:349)
        at org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:310)
        at org.apache.hadoop.http.HttpServer2.bindListener(HttpServer2.java:1331)
        at org.apache.hadoop.http.HttpServer2.bindForSinglePort(HttpServer2.java:1362)
        ... 9 more
Caused by: java.net.BindException: Cannot assign requested address
        at sun.nio.ch.Net.bind0(Native Method)
        at sun.nio.ch.Net.bind(Net.java:433)
        at sun.nio.ch.Net.bind(Net.java:425)
        at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
        at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
        at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:344)
        ... 12 more
2026-01-27 13:34:46,074 INFO org.apache.hadoop.util.ExitUtil: Exiting with status -1: Error starting AMSApplicationServer
2026-01-27 13:34:46,075 INFO org.apache.ambari.metrics.core.timeline.availability.MetricCollectorHAController: Shooting down Metrics Collector's HAController.
2026-01-27 13:34:46,077 INFO org.apache.helix.manager.zk.ZKHelixManager: Removing listener: org.apache.ambari.metrics.core.timeline.availability.MetricCollectorHAController$LiveInstanceTracker@42714a7 on path: /ambari-metrics-cluster/LIVEINSTANCES from cluster: ambari-metrics-cluster by instance: dev2
2026-01-27 13:34:46,077 INFO org.apache.ambari.metrics.AMSApplicationServer: SHUTDOWN_MSG: 
/************************************************************
SHUTDOWN_MSG: Shutting down AMSApplicationServer at dev2/192.168.3.156
************************************************************/
2026-01-27 13:34:46,078 INFO org.apache.helix.manager.zk.CallbackHandler: 106 START:INVOKE /ambari-metrics-cluster/LIVEINSTANCES listener:org.apache.ambari.metrics.core.timeline.availability.MetricCollectorHAController.LiveInstanceTracker
2026-01-27 13:34:46,078 INFO org.apache.helix.manager.zk.CallbackHandler: dev2 unsubscribe child-change. path: /ambari-metrics-cluster/LIVEINSTANCES, listener: org.apache.ambari.metrics.core.timeline.availability.MetricCollectorHAController$LiveInstanceTracker@42714a7
2026-01-27 13:34:46,079 INFO org.apache.helix.manager.zk.CallbackHandler: dev2 unsubscribe data-change. path: /ambari-metrics-cluster/LIVEINSTANCES/dev3_12001, listener: org.apache.ambari.metrics.core.timeline.availability.MetricCollectorHAController$LiveInstanceTracker@42714a7
2026-01-27 13:34:46,080 INFO org.apache.helix.manager.zk.CallbackHandler: dev2 unsubscribe data-change. path: /ambari-metrics-cluster/LIVEINSTANCES/dev2_12001, listener: org.apache.ambari.metrics.core.timeline.availability.MetricCollectorHAController$LiveInstanceTracker@42714a7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137

触发条件(常见组合)

  • 1)安装或扩容 多台 Collector,并希望启用 Collector HA;
  • 2)某些环境下,Collector 会把 WebApp 绑定到 特定 hostname/IP(例如 dev3/192.168.3.157:6188);
  • 3)当该 IP 在本机并不存在、或本机网络栈不允许绑定该地址时,就会出现 Cannot assign requested address;
  • 4)日志里同时出现 “Port in use” 也并不矛盾:它是 HttpServer2 的统一报错包装,根因仍可能是 绑定地址不合法。

# 二、错误分析与排查思路

# 1、先确认:到底在绑定哪个地址

从日志可直接定位到绑定目标:

  • Failed to bind to dev3/192.168.3.157:6188
  • 说明 WebApp 不是仅监听 0.0.0.0,而是被配置为绑定到 dev3 / 192.168.3.157

快速判断

  • Cannot assign requested address:更像是“绑定了一个本机不存在的地址/网卡没起来/绑定策略不允许”。
  • Address already in use:更像是“本机已有进程占用端口”。 两者一起出现时,优先相信日志里那个更具体的:Failed to bind to <host>/<ip>:6188。

# 2、排查清单(建议按顺序执行)

排查项 目的 参考命令
本机是否存在目标 IP 避免绑定到“别人的 IP” ip a \| grep -n "192.168.3.157"
端口是否被占用 排除真实端口冲突 ss -lntp \| grep 6188 / lsof -i:6188
hostname 解析是否异常 避免解析到错误 IP getent hosts dev3 / nslookup dev3
AMS 配置的绑定地址 找到最终落点 Ambari UI / ams-site.xml

结论导向

如果你的目标是“Collector WebApp 能稳定起来”,最稳的策略就是让 WebApp 监听 0.0.0.0:6188,把“绑定具体 hostname/IP”的不确定性直接移除。

# 三、解决办法

# 1、优先推荐:改 ams-site 配置(通用、最少改动)

我们主要修改这个配置项(ams-site):

timeline.metrics.service.webapp.address : 0.0.0.0:6188
1

为什么改成 0.0.0.0 有效?

  • 0.0.0.0 表示监听本机所有网卡地址;
  • 不再依赖 hostname 解析结果,也不要求绑定到“某个固定 IP”;
  • 对多 Collector、漂移 IP、容器化/多网卡环境更友好。

image-20260127141623668

版本说明

  • ttr 2.2.3 以上版本:该问题通常已做默认修复,可以忽略手工处理;
  • ttr 2.2.3 以下版本:建议继续看本文后半段的“源码层修复”,避免被 StackAdvisor 再次推荐回旧值。

# 2、验证 HA:三节点 Collector 启动与页面状态

先启动 3 个 collector 后,页面表现正常:

image-20260127140948469

两个节点变为 online:

image-20260127140844056

# 3、故障演练:停掉一个 Collector 观察自动下线/恢复

我们尝试停止一个 collector:

image-20260127141851010

停止完毕后:

image-20260127141536948

可以看到其它节点的日志会自动对故障节点进行下线,然后重新上线,说明 HA 逻辑是通的:

image-20260127141337367

一句话总结这轮验证看什么?

  • 1)UI/实例列表是否出现 offline → online 的状态变化;
  • 2)其余 Collector 是否能持续对外提供服务;
  • 3)恢复后是否能重新加入集群(不需要手工干预)。

# 四、低版本(< 2.2.3)源码层修复:避免推荐值把你“改回去”

如果版本低于 2.2.3,很多场景下即便你在 UI 改成 0.0.0.0:6188,后续 重新保存配置 / StackAdvisor 重新推荐 时仍可能把值写回“绑定某个主机”的形式。

对应源码位置:

ambari-server/src/main/resources/stacks/BIGTOP/3.2.0/services/stack_advisor.py
1

像下图一样注释掉该推荐逻辑:

image-20260127164008816

原来的版本是:

putAmsSiteProperty("timeline.metrics.service.webapp.address", str(metric_collector_host) + ":6188")
1

把这一行注释掉:

image-20260127164249359

放到服务器上即可(示意):

image-20260127155341924

image-20260127163827961

注意点

  • 改完 stack_advisor.py 后,务必确保 ambari-server 侧资源生效(常见做法是重启 ambari-server 或刷新相关缓存流程);
  • 如果你在多环境同步 stack,建议把该改动纳入版本管理,避免后续升级/覆盖丢失。
#Ambari#Ambari-Metrics#AMS#Metrics Collector#HA#ams-site#timeline.metrics.service.webapp.address
Knox 安装
Atlas 进阶安装技巧

← Knox 安装 Atlas 进阶安装技巧→

最近更新
01
Ambari-Web-3.0.0本地启动与二开环境搭建
01-28
02
左侧 Service 数量控制原理与实现
01-28
03
[22212]Ambari 3.0.0 左侧服务菜单滚动条缺失修复
01-28
更多文章>
Theme by Vdoing | Copyright © 2017-2026 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式