TT Bigdata TT Bigdata
首页
GitHub (opens new window)
JaneTTR

JaneTTR

数据酿造智慧,每一滴都是沉淀!
  • Ambari 安装

  • 组件安装

  • Kerberos 旧版专题

    • 实战 Kerberos
    • 自建 Kerberos

    • FreeIPA 认证

    • 其他优化技巧

    • 部分组件踩坑合集

      • 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 客户端模板渲染异常处理(源码修改)
    • 实战技巧

    • 其他技巧

  • Ranger 旧版专题

  • 旧版部署
  • Kerberos 旧版专题
  • 部分组件踩坑合集
JaneTTR
2025-10-31
目录
一、问题现象
二、问题原因
三、快速解决方案(推荐)
四、源码级修复方案(长期解决)

Kerberos 客户端模板渲染异常处理(临时处理)临时处理

温馨提示

本文内容在使用 ttr-2.2.0 版本之前,开启Kerberos后才会遇到。 后续版本已经做了处理,无需关注! 如果在部署、二开过程中,遇到任何问题可以联系作者。 👉 联系入口在此页 (opens new window)

# 一、问题现象

在启用 Kerberos 客户端安装 时,执行渲染 krb5-conf template 阶段报错。 日志显示模板变量渲染失败,无法生成 krb5.conf 文件。

image-20251029091546551

问题出现在旧版模板使用的 Jinja2 写法在 Python3 环境中不兼容, 触发异常导致任务终止。

# 二、问题原因

旧模板逻辑在 Python2 环境下可以正常工作,但在 Python3 中存在以下问题:

  • 模板中使用的 split、trim 等函数在部分未定义变量时会报类型错误;
  • 模板内条件判断与缩进处理不兼容 Python3 的严格语法;
  • 某些空值默认处理(如 |default('', true))未定义,渲染时中断。

这会导致 krb5.conf 模板渲染中断,Ambari 客户端任务失败。

# 三、快速解决方案(推荐)

打开 Ambari Web → Kerberos → krb5-conf template, 将模板内容替换为以下版本即可恢复正常。

[libdefaults]
  forwardable = true
  default_realm = {{ realm }}
  ticket_lifetime = 24h
  dns_lookup_realm = false
  dns_lookup_kdc = false
  default_ccache_name = /tmp/krb5cc_%{uid}
  #default_tgs_enctypes = {{ encryption_types }}
  #default_tkt_enctypes = {{ encryption_types }}
  {% if force_tcp %}
  udp_preference_limit = 1
  {% endif %}

{% if domains %}
[domain_realm]
{% for domain in domains.split(',') %}
  {{ domain|trim() }} = {{ realm }}
{% endfor %}
{% endif %}

[logging]
  default = FILE:/var/log/krb5kdc.log
  admin_server = FILE:/var/log/kadmind.log
  kdc = FILE:/var/log/krb5kdc.log

[realms]
  {{ realm }} = {
{% if master_kdc %}
    master_kdc = {{ master_kdc|trim() }}
{% endif %}

{% set _kdc_hosts = kdc_hosts|default('', true)|trim() %}
{% if _kdc_hosts %}
{% set kdc_host_list = _kdc_hosts.split(',') %}
{% if kdc_host_list and kdc_host_list|length > 0 %}
    admin_server = {{ admin_server_host|default(kdc_host_list[0]|trim(), True) }}
{% if kdc_host_list %}
{% if master_kdc and (master_kdc not in kdc_host_list) %}
    kdc = {{ master_kdc|trim() }}
{% endif %}
{% for kdc_host in kdc_host_list %}
{% if kdc_host|trim() %}
    kdc = {{ kdc_host|trim() }}
{% endif %}
{% endfor %}
{% endif %}
{% endif %}
{% endif %}
  }
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

保存后,重新执行 Kerberos 客户端安装 即可正常生成配置文件。

image-20251105191354425

# 四、源码级修复方案(长期解决)

若你希望从源码层彻底修复此问题,可参考以下文章:

🔗 Ambari 安装 Kerberos 客户端失败 — 源码级修改

#Kerberos#安全认证#Ambari
[关闭 Kerberos]-Hive 注销异常
Kafka 启动兼容 Kerberos 源码级修改

← [关闭 Kerberos]-Hive 注销异常 Kafka 启动兼容 Kerberos 源码级修改→

最近更新
01
当前版本 2026/08
08-29
02
把 Ambari Server HA 稳稳地跑起来
08-17
03
从一次启用操作追到主备就绪
08-17
更多文章>
Theme by Vdoing | Copyright © 2017-2026 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式