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缺失
    • Atlas-Ranger-commons-compress缺失
      • 一、报错日志复现
        • 1、错误影响范围
      • 二、根因分析:ranger-atlas-plugin classpath 缺少 commons-compress
        • 1、运行链路说明
        • 2、依赖缺失来源
      • 三、修复方案:补齐 commons-compress.jar
  • 踩坑合集

  • 其他技巧

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

Atlas-Ranger-commons-compress缺失

在 Atlas 与 Ranger 集成场景中,Ranger Atlas Plugin 在生成 SSL TrustStore 的 keystore 时,再次暴露出依赖缺失的问题。

继 commons-lang3 缺失 之后,这次报错来自: commons-compress(TarArchiveInputStream)缺失

虽然不会导致 Atlas 服务完全不可启动,但会造成:

  • Ranger Atlas Plugin 初始化不完整
  • SSL TrustStore alias 创建失败
  • 部分安全策略无法生效

因此本篇记录完整流程,作为 Atlas-Ranger 集成调试的第二篇优化文章。

# 一、报错日志复现

在 Ambari 执行 Ranger Atlas Plugin 设置过程时,会调用:


ranger_credential_helper.py

1
2
3

用于生成 truststore keystore(sslTrustStore)。

以下为关键日志片段:

2025-11-13 22:30:18,310 - 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', 'sslTrustStore', '-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/compress/archivers/tar/TarArchiveInputStream
	at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:979)
	at org.apache.hadoop.fs.RawLocalFileSystem$LocalFSFileOutputStream.<init>(RawLocalFileSystem.java:324)
	at org.apache.hadoop.fs.RawLocalFileSystem$LocalFSFileOutputStream.<init>(RawLocalFileSystem.java:294)
	at org.apache.hadoop.fs.RawLocalFileSystem.createOutputStreamWithMode(RawLocalFileSystem.java:439)
	at org.apache.hadoop.fs.RawLocalFileSystem.create(RawLocalFileSystem.java:428)
	at org.apache.hadoop.fs.RawLocalFileSystem.create(RawLocalFileSystem.java:459)
	at org.apache.hadoop.fs.ChecksumFileSystem$ChecksumFSOutputSummer.<init>(ChecksumFileSystem.java:433)
	at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:521)
	at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:500)
	at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:1195)
	at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:1175)
	at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:1064)
	at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:1052)
	at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:728)
	at org.apache.hadoop.security.alias.KeyStoreProvider.getOutputStreamForKeystore(KeyStoreProvider.java:54)
	at org.apache.hadoop.security.alias.AbstractJavaKeyStoreProvider.flush(AbstractJavaKeyStoreProvider.java:292)
	at org.apache.hadoop.security.alias.CredentialShell$CreateCommand.execute(CredentialShell.java:447)
	at org.apache.hadoop.tools.CommandShell.run(CommandShell.java:72)
	at org.apache.ranger.credentialapi.buildks.createKeyStore(buildks.java:163)
	at org.apache.ranger.credentialapi.buildks.createCredential(buildks.java:93)
	at org.apache.ranger.credentialapi.buildks.main(buildks.java:41)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.compress.archivers.tar.TarArchiveInputStream
	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)
	... 21 more

2025-11-13 22:30:19,507 - File['/etc/ranger/aaa_atlas/cred.jceks'] {'owner': 'atlas', 'group': 'hadoop', 'mode': 0o640}
2025-11-13 22:30:19,507 - Changing owner for /etc/ranger/aaa_atlas/cred.jceks from 0 to atlas

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

关键报错说明

缺失:

org.apache.commons.compress.archivers.tar.TarArchiveInputStream
1

此类属于 commons-compress 包。

# 1、错误影响范围

影响项 说明
CredentialHelper 创建 alias 失败 无法写入 keystore
Ranger Atlas Plugin 初始化失败 truststore 无法注册
Atlas 可继续启动 但 Ranger 侧会缺失联动能力
Kerberos 配置链不完整 涉及 SSL+cred 生成的流程

# 二、根因分析:ranger-atlas-plugin classpath 缺少 commons-compress

# 1、运行链路说明

调用链:

ranger_credential_helper.py  
→ org.apache.ranger.credentialapi.buildks  
→ Hadoop FileSystem  
→ KeyStoreProvider  
→ commons-compress TarArchiveInputStream
1
2
3
4
5

其中关键点在于:

  • buildks 的内部逻辑依赖 Hadoop 的文件处理能力
  • Hadoop 的部分读取/解压模块依赖 commons-compress
  • ranger-atlas-plugin 的 install/lib 内 没有 commons-compress

因此触发:

NoClassDefFoundError → ClassNotFoundException

# 2、依赖缺失来源

当前 bigtop+ranger+atlas 集成包中:

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

目录下默认仅包含:

  • ranger 相关 jar
  • hadoop 依赖的部分子集
  • 但 缺少 commons-compress(1.20/1.21/1.22 均可)

而 ranger-yarn-plugin 或 ranger-hdfs-plugin 通常会携带更全的依赖包,因此可作为“依赖源”。

# 三、修复方案:补齐 commons-compress.jar

直接从其他插件目录拷贝即可。

例如 ranger-yarn-plugin 中包含 commons-compress-1.21.jar:

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

然后通过 Ambari 重启 Atlas 服务。

说明

该修复为立即生效型,重启后 keystore alias 会顺利创建,不会再次报错。

#Ambari#Ranger Plugin#Atlas#Kerberos#大数据安全
Atlas-Ranger-StringUtils缺失
Test Kerberos Client报错:Failed to kinit

← Atlas-Ranger-StringUtils缺失 Test Kerberos Client报错:Failed to kinit→

最近更新
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
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式