TT Bigdata TT Bigdata
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件安装

    • 常规&高可用
  • 版本专题

    • 更新说明
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 模板代码

    • 各类组件
    • 通用模板
  • 国产化&其他系统

    • Centos系列
    • Kylin系列
    • OpenEuler系列
    • Rocky系列
    • Ubuntu系列
  • 生产调优

    • 组件调优指南
    • 1v1指导调优
  • 定制开发

    • 组件版本定制
    • 样式风格定制
  • 蓝图愿景
  • 技术支持
  • 合作共建
GitHub (opens new window)

JaneTTR

数据酿造智慧,每一滴都是沉淀!
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件安装

    • 常规&高可用
  • 版本专题

    • 更新说明
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 模板代码

    • 各类组件
    • 通用模板
  • 国产化&其他系统

    • Centos系列
    • Kylin系列
    • OpenEuler系列
    • Rocky系列
    • Ubuntu系列
  • 生产调优

    • 组件调优指南
    • 1v1指导调优
  • 定制开发

    • 组件版本定制
    • 样式风格定制
  • 蓝图愿景
  • 技术支持
  • 合作共建
GitHub (opens new window)
  • 准备阶段

  • 理解packages.gradle

  • 理解bigtop.bom

  • Hadoop编译

  • Flink编译

  • Spark编译

  • Atlas编译

  • Superset编译

  • Zookeeper编译

  • Hbase编译

  • Hive编译

    • version-3.1.3

      • Hive_3.1.3 编译实战
      • [O]Hive版本适配改造(一)
      • [O]Hive版本适配改造(二)
        • Hive 适配 Spark 3.5.5 场景背景与典型问题
        • 2. spark-client/pom.xml 关键依赖改造
        • 3. 根目录 pom.xml 的 dependencyManagement 管控
      • [B]Hive版本适配改造(一)
  • Kafka编译

  • Solr编译

  • Tez编译

  • Zeppelin编译

  • 组件编译-Bigtop
  • Hive编译
  • version-3.1.3
JaneTTR
2025-05-06
目录

[O]Hive版本适配改造(二)1.0.0+

# Hive 适配 Spark 3.5.5 场景背景与典型问题

提示

在 Bigtop 集成体系下,Hive 3.1.x 默认绑定的 Spark 版本较低(如 2.4.x),如需升级到 Spark 3.5.5,涉及大量依赖适配,最核心的挑战就是跨版本 jar 冲突和依赖传递管理。

改造目标 说明
Hive 版本 3.1.x(含 3.1.3/3.1.4)
Spark 目标版本 3.5.5
编译方式 Bigtop Gradle/Maven
关键冲突点 log4j、scala、spark-yarn 依赖、slf4j 路由、protobuf 版本

直接替换 spark 依赖极易引发编译失败,常见报错如 log4j/scala 兼容、类冲突、依赖排除失效等。

# 2. spark-client/pom.xml 关键依赖改造

引入 Spark 3.5.5 后,建议明确指定 spark-core 的依赖并对冲突组件进行排除,如图所示:

spark-client-pom依赖调整

在 spark-client/pom.xml 相关 module 下,补充如下依赖,并对 log4j 进行 exclusion:


<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-core_${scala.binary.version}</artifactId>
    <version>${spark.version}</version>
    <exclusion>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j2-impl</artifactId>
    </exclusion>
    <!-- ... 其他 exclusion 如有冲突继续追加 -->
</dependency>
1
2
3
4
5
6
7
8
9
10
11

笔记

此处 log4j-slf4j2-impl 排除是为了解决新版 Spark 3.5.5 引入的 SLF4J 路由适配问题,避免旧版 log4j 依赖链失效或冗余绑定。

# 3. 根目录 pom.xml 的 dependencyManagement 管控

很多核心依赖建议统一在根 pom.xml 的 dependencyManagement 块下显式声明,避免多模块冲突:

dependencyManagement示例

追加内容示例:


<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>${log4j2.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>${log4j2.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-web</artifactId>
            <version>${log4j2.version}</version>
        </dependency>
        <!-- 如有额外依赖也可统一声明 -->
    </dependencies>
</dependencyManagement>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

提示

统一管理 log4j2 相关依赖可以显著减少多模块版本不一致、类冲突等隐患,实际维护和后续升级也更方便。

#Hadoop#Bigtop#版本适配#Node.js#前端依赖#Maven
[O]Hive版本适配改造(一)
[B]Hive版本适配改造(一)

← [O]Hive版本适配改造(一) [B]Hive版本适配改造(一)→

最近更新
01
Pandoc 缺失导致 SparkR 构建失败
06-08
02
Cyrus SASL/GSASL 缺失解决
06-07
03
Hadoop_3.3.4 编译实战 1.0.0+
06-06
更多文章>
Theme by Vdoing | Copyright © 2017-2025 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式