You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker中Zeppelin+Spark运行Scala代码遇Jackson版本冲突错误

解决Zeppelin+Spark环境下Jackson Databind版本冲突问题

问题本质

这个报错是因为Scala 2.13.3要求Jackson Databind版本在2.13.0到2.14.0之间,但当前环境加载的是2.12.0版本。只有执行Action操作才触发错误,说明Spark在实际执行任务时才会拉取到冲突的依赖——大概率是Zeppelin解释器或MySQL驱动引入了低版本Jackson。

可行解决方案

1. 强制指定Jackson版本优先级

在Zeppelin的Spark解释器配置页面,找到spark.driver.extraClassPath和spark.executor.extraClassPath参数,手动绑定高版本Jackson包:

  • 先进入Docker容器下载对应版本的Jar包(比如2.13.4,刚好符合版本范围):
    wget https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.13.4/jackson-databind-2.13.4.jar -P /opt/zeppelin/interpreter/spark/
    
  • 然后在解释器配置里添加:
    spark.driver.extraClassPath=/opt/zeppelin/interpreter/spark/jackson-databind-2.13.4.jar
    spark.executor.extraClassPath=/opt/zeppelin/interpreter/spark/jackson-databind-2.13.4.jar
    
    保存后重启Spark解释器。

2. 排除MySQL驱动的低版本Jackson依赖

如果是MySQL驱动带进来的冲突,在Zeppelin解释器的Dependencies选项卡中,添加MySQL驱动时显式排除Jackson:

mysql:mysql-connector-java:8.0.30,exclude=com.fasterxml.jackson.core:jackson-databind

读取MySQL数据的代码保持正常即可:

val df = spark.read.format("jdbc")
  .option("url", "jdbc:mysql://你的主机:3306/数据库名")
  .option("dbtable", "表名")
  .option("user", "用户名")
  .option("password", "密码")
  .option("driver", "com.mysql.cj.jdbc.Driver")
  .load()

3. 自定义Docker镜像替换Jackson版本

如果官方镜像的基础依赖本身有问题,可以构建自定义镜像替换低版本Jar:

  1. 编写Dockerfile:
FROM apache/zeppelin:0.10.1
RUN rm /opt/zeppelin/interpreter/spark/jackson-databind-2.12.0.jar
RUN wget https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.13.4/jackson-databind-2.13.4.jar -P /opt/zeppelin/interpreter/spark/
  1. 构建并运行镜像:
docker build -t custom-zeppelin:0.10.1-spark3.3 .
docker run -d -p 8080:8080 custom-zeppelin:0.10.1-spark3.3

4. 定位冲突来源

先在Zeppelin中执行这段代码,查看具体哪个组件引入了2.12.0版本的Jackson:

import org.apache.spark.SparkContext
val sc = SparkContext.getOrCreate()
sc.listJars().filter(_.contains("jackson")).foreach(println)

找到对应的Jar包后,直接替换或删除低版本文件即可。


内容的提问来源于stack exchange,提问作者andysakov1958

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 05:01:47