spark3.0使用exchange报错Exception in thread "main" java.lang.NoClassDefFoundError: scala/Product$class

版本1,可以正常运行:spark2.4.5、scala2.13.8本地编译nebula-exchange:3.0-SNAPSHOT版本
最终使用如下命令,执行导入成功

/spark/bin/spark-submit --master local --class com.vesoft.nebula.exchange.Exchange nebula-exchange_spark_2.4-3.0-SNA
PSHOT.jar  -c exchange-sst.conf

版本2,无法正常执行:spark3.2.0、scala2.13.8本地编译nebula-exchange:3.0-SNAPSHOT版本
最终使用如下命令,执行失败

 /spark/bin/spark-submit  --master "local" --conf spark.sql.shuffle.partitions=200 --class com.vesoft.nebula.exchange.Exc
hange  nebula-exchange_spark_3.0-3.0-SNAPSHOT.jar  -c exchange-sst.conf

报错:
Exception in thread “main” java.lang.NoClassDefFoundError: scala/Product$class
at scopt.Head$.(options.scala:148)
at scopt.Head$.(options.scala)
at scopt.OptionParser.head(options.scala:251)
at com.vesoft.exchange.common.config.Configs$$anon$1.(Configs.scala:880)
at com.vesoft.exchange.common.config.Configs$.parser(Configs.scala:879)
现场图片

版本信息没截到。不过不重要这个问题和版本无关。报 ClassDefFoundError 一般是 Spark 版本冲突了,你看看是不是你的环境里有多个 Spark 版本。

不会冲突,spark3.0是使用的docker单独容器部署的,不会有其他环境影响, spark2.4也是同样的方法部署的,已经可以正常执行导入,并且nebula-exchange的包都是使用的同一个版本scala进行的编译。

修改本地scala的版本与spark3.0内置scala版本一致,还是不行,通过解压2.4和3.0的exchange jar发现,3.0确实缺少scala/Product$class类,如图黑框所示

后续测试的版本环境:

环境一

spark 3.2.0,spark内置scala:2.12.15,本地拉取的nebula-exchange版本:3.0-SNAPSHOT,spark3.0模块pom设置的scala version

     <spark.version>3.0.0</spark.version>
        <version.scala.binary>2.12</version.scala.binary>
        <scala.version>2.12.10</scala.version>
        <spark-csv.version>1.5.0</spark-csv.version>
        <scalatest.version>3.2.0</scalatest.version>

本地编译使用的scala版本,分别使用以下三种都测试了:(scala 2.11,2.12,2.13.8)

环境二

spark 3.0.0,spark内置scala:2.12.10,本地拉取的nebula-exchange版本:3.0-SNAPSHOT,spark3.0模块pom设置的scala version

     <spark.version>3.0.0</spark.version>
        <version.scala.binary>2.12</version.scala.binary>
        <scala.version>2.12.10</scala.version>
        <spark-csv.version>1.5.0</spark-csv.version>
        <scalatest.version>3.2.0</scalatest.version>

本地编译使用的scala版本,分别使用以下三种都测试了:(scala 2.11,2.12,2.13.8)

都测试完毕,spark3.0环境仍然无法正常使用

此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。