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认证

  • 【关闭】Kerberos认证

  • 其他优化技巧

    • Atlas-Ranger-StringUtils缺失
      • 一、报错日志复现
        • 1、报错行为总结
      • 二、问题定位:commons-lang3 缺失
      • 三、修复方式:补齐 commons-lang3.jar(可立即生效)
    • Atlas-Ranger-commons-compress缺失
  • 踩坑合集

  • 其他技巧

  • 组件安装-Kerberos
  • 其他优化技巧
JaneTTR
2025-11-10
目录

Atlas-Ranger-StringUtils缺失

在当前环境中 Atlas 虽然可以正常启动,但在 Ranger Atlas Plugin 激活后,日志里仍会出现一些不太理想的报错。
这些报错不会导致 Atlas 无法启动,但属于 必须记录、后续需要优化 的问题类型。

本文目标

  • 复现报错
  • 解释原因
  • 给出修复方法

# 一、报错日志复现

在执行 install_ranger_atlas_plugin 相关任务时,Ambari 会调用 Credential Helper 生成 Keystore 凭证。
日志如下(关键片段保留):

2025-11-13 22:22:33,657 - Changing group for /tmp/tmp1763043753.657135_363 from 0 to hadoop
2025-11-13 22:22:33,657 - Changing permission for /tmp/tmp1763043753.657135_363 from 644 to 744
2025-11-13 22:22:33,657 - Moving /tmp/tmp1763043753.657135_363 to /usr/bigtop/current/atlas-server/conf/ranger-policymgr-ssl.xml
2025-11-13 22:22:33,670 - Execute[('/usr/bigtop/3.2.0/usr/lib/ranger-atlas-plugin/ranger_credential_helper.py', '-l', '/usr/bigtop/3.2.0/usr/lib/ranger-atlas-plugin/install/lib/*', '-f', '/etc/ranger/aaa_atlas/cred.jceks', '-k', 'sslKeyStore', '-v', [PROTECTED], '-c', '1')] {'environment': {'JAVA_HOME': '/opt/modules/jdk1.8.0_202'}, 'logoutput': True, 'sudo': True}
Using Java:/opt/modules/jdk1.8.0_202/bin/java
Error creating Alias!! Error: SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
	at org.apache.hadoop.metrics2.lib.MutableMetricsFactory.getName(MutableMetricsFactory.java:134)
	at org.apache.hadoop.metrics2.lib.MutableMetricsFactory.getInfo(MutableMetricsFactory.java:130)
	at org.apache.hadoop.metrics2.lib.MutableMetricsFactory.newForField(MutableMetricsFactory.java:45)
	at org.apache.hadoop.metrics2.lib.MetricsSourceBuilder.add(MetricsSourceBuilder.java:147)
	at org.apache.hadoop.metrics2.lib.MetricsSourceBuilder.<init>(MetricsSourceBuilder.java:69)
	at org.apache.hadoop.metrics2.lib.MetricsAnnotations.newSourceBuilder(MetricsAnnotations.java:43)
	at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.register(MetricsSystemImpl.java:223)
	at org.apache.hadoop.metrics2.MetricsSystem.register(MetricsSystem.java:71)
	at org.apache.hadoop.security.UserGroupInformation$UgiMetrics.create(UserGroupInformation.java:149)
	at org.apache.hadoop.security.UserGroupInformation.<clinit>(UserGroupInformation.java:265)
	at org.apache.hadoop.fs.FileSystem$Cache$Key.<init>(FileSystem.java:3746)
	at org.apache.hadoop.fs.FileSystem$Cache$Key.<init>(FileSystem.java:3736)
	at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:3520)
	at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:540)
	at org.apache.hadoop.fs.Path.getFileSystem(Path.java:365)
	at org.apache.hadoop.security.alias.KeyStoreProvider.initFileSystem(KeyStoreProvider.java:84)
	at org.apache.hadoop.security.alias.AbstractJavaKeyStoreProvider.<init>(AbstractJavaKeyStoreProvider.java:85)
	at org.apache.hadoop.security.alias.KeyStoreProvider.<init>(KeyStoreProvider.java:49)
	at org.apache.hadoop.security.alias.JavaKeyStoreProvider.<init>(JavaKeyStoreProvider.java:42)
	at org.apache.hadoop.security.alias.JavaKeyStoreProvider.<init>(JavaKeyStoreProvider.java:35)
	at org.apache.hadoop.security.alias.JavaKeyStoreProvider$Factory.createProvider(JavaKeyStoreProvider.java:68)
	at org.apache.hadoop.security.alias.CredentialProviderFactory.getProviders(CredentialProviderFactory.java:91)
	at org.apache.ranger.credentialapi.CredentialReader.getDecryptedString(CredentialReader.java:74)
	at org.apache.ranger.credentialapi.buildks.createCredential(buildks.java:87)
	at org.apache.ranger.credentialapi.buildks.main(buildks.java:41)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang3.StringUtils
	at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 25 more

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

关键报错

java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils

说明 ranger-atlas 插件 classpath 中 缺少 commons-lang3。

# 1、报错行为总结

行为 说明
CredentialHelper 初始化失败 因缺失依赖
Ranger SSL keystore alias 无法创建 依赖 CredentialHelper
Atlas 最终能启动 此报错不阻断主流程
功能不完整 plugin 功能不完全生效

# 二、问题定位:commons-lang3 缺失

Atlas 的 Ranger Plugin 会调用:

  • ranger_credential_helper.py
  • 进而执行 org.apache.ranger.credentialapi.buildks

而这条链路依赖:

org.apache.commons.lang3.StringUtils
1

正常情况下,commons-lang3 应该存在于:

/usr/bigtop/3.2.0/usr/lib/ranger-atlas-plugin/install/lib/
1

但当前构建中,该目录缺少:

commons-lang3-*.jar
1

为什么缺?

因为 bigtop+ranger+atlas 组合构建中,部分插件的依赖并不会自动继承,需要手动补齐。 这是 构建逻辑的问题,不是 Ambari 的问题。

# 三、修复方式:补齐 commons-lang3.jar(可立即生效)

直接从其他 ranger 插件目录复制即可,如 ranger-yarn-plugin 中包含完整依赖:

cp /usr/bigtop/3.2.0/usr/lib/ranger-yarn-plugin/install/lib/commons-lang3-3.12.0.jar \
    /usr/bigtop/3.2.0/usr/lib/ranger-atlas-plugin/install/lib/
1
2

完成后:

  1. 重启 Atlas
  2. 执行 Ranger Atlas Plugin 初始化逻辑
  3. CredentialHelper 不再报错

说明

commons-lang3 版本号可根据环境调整,但建议保持 Ranger 系列插件版本一致,避免兼容性问题。

#Ambari#Ranger Plugin#Atlas#Kerberos#大数据安全
Ambari 中关闭 Kerberos 认证流程详解
Atlas-Ranger-commons-compress缺失

← Ambari 中关闭 Kerberos 认证流程详解 Atlas-Ranger-commons-compress缺失→

最近更新
01
[开启Kerberos]-Trino启动-配置文件处理
11-18
02
Livy 安装 2.2.0+
11-17
03
[关闭 Kerberos]-Hive 注销异常
11-17
更多文章>
Theme by Vdoing | Copyright © 2017-2025 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式