[22208]Atlas Hook 消费 Kafka 报错
# Atlas Hook 消费 Kafka 报错:GroupAuthorizationException
# 一、问题现象 Kafka Consumer Group
Atlas 启动后,NotificationHookConsumer 线程持续报错,典型信息是:
GroupAuthorizationException: Not authorized to access group: atlas- 日志刷屏式重试,说明消费者在 加入/描述消费组阶段就被拒绝(还没进入稳定消费流程)

2026-01-24 18:12:22,523 [index-health-monitor] INFO [AtlasJanusGraphIndexClient.java:98] indexBackEnd=solr; isHealthy=true
2026-01-24 18:12:29,138 [NotificationHookConsumer thread-0] WARN [NotificationHookConsumer.java:635] Exception in NotificationHookConsumer
org.apache.kafka.common.errors.GroupAuthorizationException: Not authorized to access group: atlas
2026-01-24 18:12:40,642 [NotificationHookConsumer thread-0] WARN [NotificationHookConsumer.java:635] Exception in NotificationHookConsumer
org.apache.kafka.common.errors.GroupAuthorizationException: Not authorized to access group: atlas
2026-01-24 18:12:52,527 [index-health-monitor] INFO [AtlasJanusGraphIndexClient.java:98] indexBackEnd=solr; isHealthy=true
2026-01-24 18:12:52,646 [NotificationHookConsumer thread-0] WARN [NotificationHookConsumer.java:635] Exception in NotificationHookConsumer
org.apache.kafka.common.errors.GroupAuthorizationException: Not authorized to access group: atlas
2026-01-24 18:13:05,150 [NotificationHookConsumer thread-0] WARN [NotificationHookConsumer.java:635] Exception in NotificationHookConsumer
org.apache.kafka.common.errors.GroupAuthorizationException: Not authorized to access group: atlas
2026-01-24 18:13:18,153 [NotificationHookConsumer thread-0] WARN [NotificationHookConsumer.java:635] Exception in NotificationHookConsumer
org.apache.kafka.common.errors.GroupAuthorizationException: Not authorized to access group: atlas
2026-01-24 18:13:22,532 [index-health-monitor] INFO [AtlasJanusGraphIndexClient.java:98] indexBackEnd=solr; isHealthy=true
2026-01-24 18:13:31,656 [NotificationHookConsumer thread-0] WARN [NotificationHookConsumer.java:635] Exception in NotificationHookConsumer
org.apache.kafka.common.errors.GroupAuthorizationException: Not authorized to access group: atlas
2026-01-24 18:13:45,659 [NotificationHookConsumer thread-0] WARN [NotificationHookConsumer.java:635] Exception in NotificationHookConsumer
org.apache.kafka.common.errors.GroupAuthorizationException: Not authorized to access group: atlas
2026-01-24 18:13:52,536 [index-health-monitor] INFO [AtlasJanusGraphIndexClient.java:98] indexBackEnd=solr; isHealthy=true
2026-01-24 18:14:00,162 [NotificationHookConsumer thread-0] WARN [NotificationHookConsumer.java:635] Exception in Notifi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
现象要点
- 报错资源是 GROUP(consumer group),不是 TOPIC。
- 只要 group 被拒绝,客户端会在 JoinGroup/DescribeGroup 等阶段失败,表现为线程持续重试、告警持续出现。
- 这类错误在 Atlas 侧常见伴随现象是:Hook 侧“看似在跑”,但事件消费链路不稳定或长期无有效消费。
# 二、先确认 Atlas 的 Kafka 配置入口 atlas-application.properties
Atlas 的 Kafka 客户端配置统一在:
/etc/atlas/conf/atlas-application.properties
1


核对思路
这里不去“猜策略”,先把基础事实确认清楚,后面每一步才不会跑偏:
- Kafka 访问路径:Atlas 连接 Kafka 的入口(broker/zk)是否与当前集群一致。
- 鉴权方式:是否启用 Kerberos(SASL/GSSAPI)以及 Atlas 客户端走的机制。
- 客户端身份:Atlas 进程实际使用的 principal 必须与授权主体一致,否则策略配得再全也不会命中。
常见偏差点
- Atlas 服务配置里写的是
atlas/_HOST@REALM,但实际运行时落地到某台机器(例如 dev2)后,真实身份会变成atlas/dev2@REALM。 - Ranger 里选用户时,如果授权给的是短名 atlas,但插件侧按 Kerberos principal 解析出来的主体不一致,也会造成“策略看着对,实际不生效”。
# 三、第一步尝试:用 kafka-acls.sh 直接补 Group ACL 原生 ACL
当日志直接提示 Not authorized to access group: atlas,优先补齐 consumer group=atlas 的 ACL,用来验证 Kafka
原生鉴权维度本身是否缺失。
这里给 atlas/dev2@TTBIGDATA.COM 添加 group=atlas 的 READ 与 DESCRIBE:
/usr/bigtop/current/kafka-broker/bin/kafka-acls.sh \
--authorizer-properties zookeeper.connect=dev1:2181,dev2:2181,dev3:2181 \
--add \
--allow-principal "User:atlas/dev2@TTBIGDATA.COM" \
--group atlas \
--operation Read \
--operation Describe
## 结果是
[root@dev1 bin]# /usr/bigtop/current/kafka-broker/bin/kafka-acls.sh \
> --authorizer-properties zookeeper.connect=dev1:2181,dev2:2181,dev3:2181 \
> --add \
> --allow-principal "User:atlas/dev2@TTBIGDATA.COM" \
> --group atlas \
> --operation Read \
> --operation Describe
Adding ACLs for resource `ResourcePattern(resourceType=GROUP, name=atlas, patternType=LITERAL)`:
(principal=User:atlas/dev2@TTBIGDATA.COM, host=*, operation=READ, permissionType=ALLOW)
(principal=User:atlas/dev2@TTBIGDATA.COM, host=*, operation=DESCRIBE, permissionType=ALLOW)
Current ACLs for resource `ResourcePattern(resourceType=GROUP, name=atlas, patternType=LITERAL)`:
(principal=User:atlas/dev2@TTBIGDATA.COM, host=*, operation=READ, permissionType=ALLOW)
(principal=User:atlas/dev2@TTBIGDATA.COM, host=*, operation=DESCRIBE, permissionType=ALLOW)
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

处理办法可参考
# 2、策略生效与现象回归
修改完策略后,重启 atlas-server,报错消失;同时 Ranger 拒绝记录不再出现。

结果确认
- Atlas 侧
NotificationHookConsumer不再刷GroupAuthorizationException - Ranger 审计中与 consumer group=atlas 相关的 deny 记录停止新增
- Hook 消费链路恢复后,Atlas 的 Kafka 消费线程进入稳定状态
- 01
- Ambari-Web-3.0.0本地启动与二开环境搭建01-28
- 02
- 左侧 Service 数量控制原理与实现01-28
- 03
- [22212]Ambari 3.0.0 左侧服务菜单滚动条缺失修复01-28