• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Spark3.2教程前置Spark3.2.0和Scala版本的坑

武飞扬头像
Java朱老师
帮助2

        搭建和使用最新版的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正常。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgaeacb
系列文章
更多 icon
同类精品
更多 icon
继续加载