Step2-Ambari中开启Kerberos认证
温馨提示
ttr-2.0.0 ~ ttr-2.2.0 版本存在部分安装失败问题。
从 ttr-2.2.1 版本开始,这一问题已被修复并通过多平台验证(包括 Kylin V10、CentOS 7.9、Ubuntu 22.04)。
如在部署中遇到异常,可联系作者进行技术交流。
# 一、背景与前置条件
写在前面
当前环境:Ambari 3.0.0 + Bigtop 3.2.0,系统为 Kylin V10,
对应安装包版本:ttr-2.2.1-preview,Ubuntu 22.04 也已验证通过。
在进入本章节前,你应已完成 KDC 服务的部署(详见 Step1)。
Kerberos 是大数据体系中最重要的认证协议之一,Ambari 启用 Kerberos 的本质,是让各组件(HDFS、YARN、Hive、Kafka、Atlas、Solr
等)能够通过 KDC 统一认证,从而防止伪造身份和非法访问。
Ambari 并不直接实现 Kerberos,而是作为协调者,通过 REST 接口调用 kadmin 与 kinit 来分发 keytab 与校验凭证。
# 二、进入 Kerberos 启用向导
打开 Ambari Web 管理页面,左侧导航栏中可看到 Kerberos 菜单项。

点击进入后,页面会展示认证选项和配置向导。
# 三、选择认证模式(Existing MIT KDC)
Ambari 提供三种启用模式,分别对应:
- Existing MIT KDC — 使用外部已搭建的 KDC;
- Existing Active Directory — 集成 AD 域;
- Manual — 手动分发 keytab(高级用户使用)。
我们选择第一项:

保持勾选所有选项(如自动生成 principal、启用服务检查等),然后点击 Next。

# 四、填写 KDC 与 Realm 参数

根据 Step1 的配置,在此处填写:
KDC hosts : dev1
Realm name : TTBIGDATA.COM
Kadmin host : dev1
Admin principal: admin/admin@TTBIGDATA.COM
Admin password: admin
2
3
4
5
6
# 参数说明表
| 参数项 | 示例值 | 说明 |
|---|---|---|
| KDC hosts | dev1 | KDC 服务主机名 |
| Realm name | TTBIGDATA.COM | 与 krb5.conf 中保持一致(必须大写) |
| Kadmin host | dev1 | KDC 管理端主机名 |
| Admin principal | admin/admin@TTBIGDATA.COM | 管理员账户 |
| Admin password | admin | 对应上一步创建时的密码 |
# 五、连接测试与错误处理
填写完成后点击 Test Connection,Ambari 将尝试执行一次 kinit 登录测试。
# 5.1 常见失败示例

报错:
kinit.real: Server not found in Kerberos database while getting initial credentials
出现此问题通常有以下几种原因:
- KDC 未运行或端口被防火墙阻断(88/749);
- krb5.conf 的 default_realm 与此处填写不一致;
- /etc/hosts 中未配置主机名映射(如 dev1);
- KDC 数据库中尚未创建 admin principal。
可回看之前的 Step1 文档重置配置:
# 5.2 测试成功界面

出现绿色对勾即表示 Ambari 已能正常与 KDC 通信。
# 六、加密类型适配与兼容性说明
在部分操作系统上,Ambari 与 KDC 默认的加密算法不兼容。 特别是在 非 CentOS 7.9 与 Ubuntu 22.04 系统上,建议手动修改。

# 推荐加密算法
aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96
提示
若不修改可能导致后续 Keytab 生成时报:
KDC has no support for encryption type while getting initial credentials
具体可以参考 加密类型错误导致的未知报错
# 七、管理员凭证验证与授权确认
Ambari 会再次请求管理员凭证进行验证:
admin/admin@TTBIGDATA.COM
admin
2
验证通过后界面如下:

说明 kinit 已成功在后台生成票据。此时 Ambari 内部会执行:
kinit -V -k admin/admin@TTBIGDATA.COM
并缓存 ticket 以供后续 keytab 创建使用。
# 八、预检与变更确认
Ambari 将展示即将应用的安全变更清单。

若所有配置无误,点击 Next 继续。 系统随后进入安全模式应用流程。

# 九、停止服务与凭证重建
启用 Kerberos 前,Ambari 会自动关闭所有服务组件,以便重新生成 keytab 并注册 principal。

# 停止进度监控

# 执行任务明细

# 完成后状态

Ambari 将在此阶段自动调用 kadmin 命令为各组件创建 principal,并分发 keytab 至对应路径(一般在 /etc/security/keytabs/)。
# 十、执行 Kerberos 初始化与分发

该阶段 Ambari 会批量执行以下动作:
- 为每个组件生成 keytab;
- 向 KDC 写入 principal;
- 分发 keytab 至对应主机;
- 更新配置文件(
core-site.xml,hdfs-site.xml等)。
若出现轻微警告,可直接忽略并点击 Complete。
# 十一、手动启动服务并验证结果
启用完成后,可看到以下界面:

此时建议手动启动各组件。 若有少量组件启动失败,可根据错误日志对照下表进行修复。
# 十二、已知问题与修复索引
已知问题汇总
Ambari 2.8.x 在 Kerberos 启用后部分服务可能启动异常,主要与 Python2 兼容性和权限有关。
| 组件 | 报错主题 | 主要原因 | 对应修复文档 |
|---|---|---|---|
| Solr | 启动时报 HTTP 权限拒绝 | Ambari 自动初始化配置但未授权 | 开启KERBEROS-SOLR启动报错解决 |
| Kafka | 启动失败缺少环境变量 | 环境变量定义未加载到进程上下文 | 开启KERBEROS-KAFKA启动报错解决 |
| Celeborn | WORK 目录无写入权限 | 工作目录属主错误 | 开启KERBEROS-CELEBORN启动报错解决 |
| Atlas | Server 启动 403 | principal 短名解析错误 | 开启KERBEROS-ATLAS启动报错解决 |
- 01
- Ambari开启Kerberos认证加密类型错误 Kylin V1011-05
- 02
- KERBEROS SERVICE CHECK 报错11-04