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)
  • 步步为营

  • 踩坑合集

    • Test Kerberos Client报错:Failed to kinit
    • KERBEROS SERVICE CHECK 报错
    • Ambari开启Kerberos认证加密类型错误
    • [开启Kerberos]-Solr启动失败处理
    • [开启Kerberos]-Kafka启动失败处理
    • Kerberos 客户端模板渲染异常处理
    • Kafka 启动兼容 Kerberos 源码级修改
      • 一、问题背景
      • 二、源码修改路径
      • 三、修改内容
    • Kerberos 客户端模板渲染异常处理
  • 组件安装-Kerberos
  • 踩坑合集
JaneTTR
2025-11-03
目录

Kafka 启动兼容 Kerberos 源码级修改

# 一、问题背景

在 Ambari 启用 Kerberos 后,Kafka 进程经常出现以下启动报错:

java.lang.SecurityException: zookeeper.set.acl is true, but ZooKeeper client TLS configuration identifying ... was not present and the verification of the JAAS login file failed
1

根因是 Ambari 自带的 kafka-env.sh 模板(尤其是旧版 2.2.0 以前) 未在环境变量中正确引入 Kerberos 参数,导致 Kafka 未能加载 JAAS 登录文件。

这类问题虽然可以在界面模板中手动修复,但对于自定义打包或自动化环境部署而言,每次手动修改模板都不现实。 因此,推荐在源码层面直接修复模板文件,从根源解决。

# 二、源码修改路径

修改目标文件:

ambari/ambari-server/src/main/resources/stacks/BIGTOP/3.2.0/services/KAFKA/configuration/kafka-env.xml
1

image-20251105182452666

该文件定义了 Kafka 的环境模板(即安装时生成的 /etc/kafka/conf/kafka-env.sh)。 我们需要在模板中追加 KAFKA_KERBEROS_PARAMS 引用。

# 三、修改内容

将 <property> 中的 <value> 块修改如下(新增部分已高亮):

  <!-- kafka-env.sh -->
<property>
    <name>content</name>
    <display-name>kafka-env template</display-name>
    <description>This is the jinja template for kafka-env.sh file</description>
    <value>
        #!/bin/bash

        # Set KAFKA specific environment variables here.

        # The java implementation to use.
        export JAVA_HOME={{java64_home}}
        export PATH=$PATH:$JAVA_HOME/bin
        export PID_DIR={{kafka_pid_dir}}
        export LOG_DIR={{kafka_log_dir}}
        {% if kerberos_security_enabled or kafka_other_sasl_enabled %}
        export KAFKA_KERBEROS_PARAMS="-Djavax.security.auth.useSubjectCredsOnly=false {{kafka_kerberos_params}}"
        {% else %}
        export KAFKA_KERBEROS_PARAMS={{kafka_kerberos_params}}
        {% endif %}
        # Add kafka sink to classpath and related depenencies
        if [ -e "/usr/lib/ambari-metrics-kafka-sink/ambari-metrics-kafka-sink.jar" ]; then
        export CLASSPATH=$CLASSPATH:/usr/lib/ambari-metrics-kafka-sink/ambari-metrics-kafka-sink.jar
        export CLASSPATH=$CLASSPATH:/usr/lib/ambari-metrics-kafka-sink/lib/*
        fi
        {% if stack_supports_kafka_env_include_ranger_script %}
        if [ -f /etc/kafka/conf/kafka-ranger-env.sh ]; then
        . /etc/kafka/conf/kafka-ranger-env.sh
        fi
        {% else %}
        export CLASSPATH=$CLASSPATH:{{conf_dir}}
        {% endif %}
        export KAFKA_OPTS="$KAFKA_OPTS ${KAFKA_KERBEROS_PARAMS:+$KAFKA_KERBEROS_PARAMS }"
    </value>
    <value-attributes>
        <type>content</type>
    </value-attributes>
    <on-ambari-upgrade add="false"/>
</property>
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

注意

  • 修改后的模板会在 安装或首次启动时写入 /etc/kafka/conf/kafka-env.sh;
  • 单纯修改服务器端的 XML 配置文件不会影响已部署实例;
  • 若集群已安装完毕,需要重新打包并使用新版本 Ambari 进行部署。
#Ambari#Kerberos#Kafka#JAAS#KDC#KafkaServer#kafka-env#KAFKA_KERBEROS_PARAMS#Ambari-Stack#源码修改
Kerberos 客户端模板渲染异常处理
Kerberos 客户端模板渲染异常处理

← Kerberos 客户端模板渲染异常处理 Kerberos 客户端模板渲染异常处理→

最近更新
01
Ambari开启Kerberos认证加密类型错误 Kylin V10
11-05
02
KERBEROS SERVICE CHECK 报错
11-04
03
Test Kerberos Client报错:Failed to kinit
11-04
更多文章>
Theme by Vdoing | Copyright © 2017-2025 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式