Spark3.2教程(前置)关于Spark3.2.0与Scala版本的坑

        搭建和使用最新版的Spark3.2.0,在版本上踩了很多坑,特此记录一下,避免后来者犯错。
首先看下图,即官网下载Spark的版本选择上的红框介绍:
在这里插入图片描述
        这里介绍了Spark3用的是Scala2.12,Spark3.2+用的是Scala2.13,但是如果下载下来会发现,该包下的Scala版本是2.12.15,如下图所示:
在这里插入图片描述
        通过Spark-Shell也可以看到,它的版本信息,简直就是在打脸:
在这里插入图片描述
        这样就会造成一个问题,使用Maven引入Spark3.2.0、Scala2.13,在本地编译运行正常(因为Maven引入的Spark3.2.0不包含Scala),而打成jar上传到服务器实际环境中运行,便报如下版本不一致的异常:

Exception in thread "main" java.lang.NoSuchMethodError: scala.reflect.ClassTag$.Int()Lscala/reflect/ManifestFactory$IntManifest;

在这里插入图片描述
经过研究发现是它官网介绍上的混乱导致使用者遇到该问题,又下载下官网中指定的带scala2.13后缀的,发现里面的scala是2.13的:
在这里插入图片描述
        里面包含的scala jar:
在这里插入图片描述
        这里必须要吐槽的是,Spark的Scala版本要么就别轻易变,要么就跟上节奏。现在Scala都已经更新到3.1版本了,Spark在版本升级上不进行Scala大版本的升级,反而在小版本上更替,而且官方介绍上又混乱,导致误导使用者,浪费时间。

        顺便提一下的是,选的时候显示的是Haoop3.3,下载的文件名上又标注的是Hadoop3.2。。

        这样只能使用spark-3.2.0-bin-hadoop3.2-scala2.13.tgz版本,经测试,在Windows下配置该环境,执行spark-shell,还是会报异常,只能还是用Spark-3.1.2,详见:

Spark3.2教程(一)Windows10搭建Spark3.2.0

        经测试,该版本在Linux上部署、运行jar正常。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值