Spark学习记录(二):Scala安装
2022-03-04 17:50:34

Spark系统是基于Scala语言构建的,因此除了Java之外,也需要安装一下Scala。

安装Scala其实也很简单,值得注意的是安装的Scala版本并非版本越新越好,而要考虑是否与安装的Java版本和计划安装的Spark版本相兼容,不然可能会在之后出现各种问题。

目前最新的spark版本为3.2.x,一般来说对应安装2.12.x版本的Scala。

摘自spark官方文档的一段话:

Spark runs on Java 8/11, Scala 2.12/2.13, Python 3.6+ and R 3.5+. Python 3.6 support is deprecated as of Spark 3.2.0. Java 8 prior to version 8u201 support is deprecated as of Spark 3.2.0. For the Scala API, Spark 3.2.1 uses Scala 2.12. You will need to use a compatible Scala version (2.12.x).

JDK各版本与Scala各版本对应关系见下表。

JDK Version Minimum Scala Versions Recommended Scala Versions
18 2.13.7, 2.12.15 2.13.8, 2.12.15
17 2.13.6, 2.12.15 2.13.8, 2.12.15
11 2.13.0, 2.12.4, 2.11.12 2.13.8, 2.12.15, 2.11.12
8 2.13.0, 2.12.0, 2.11.0, 2.10.2 2.13.8, 2.12.15, 2.11.12, 2.10.7
6,7 2.11.0, 2.10.0 2.11.12, 2.10.7

本文综合了自己安装的jdk版本(jdk8和jdk11),又考虑到上表以及官方文档内的说明,同时,又根据Spark官网下载的集成了Hadoop与Scala的Spark压缩包内jar文件夹里的Scala版本,最终决定安装2.12.15版本的Scala。

没错,Spark官网提供集成了依赖环境的安装包,等于是自己不用再安装Scala和Hadoop就能直接用Spark了,至福。然而出于学习整体架构的需要,还是自己手动安装和配置Scala和Hadoop。

接下来就是愉快的安装流程了。

至Scala官网下载安装包,一般是tgz压缩包格式,将此压缩包解压至想安装的的路径即可。

解压及重命名代码可见下例(在终端中输入,注意解压命令里的压缩包路径按实际情况来,至于解压的目的路径,本文选择/usr/local文件夹。别忘了这些安装路径,之后可能还会用到):

1
2
3
sudo tar -zxf ~/Desktop/scala-2.12.15.tgz -C /usr/local
cd /usr/local/
sudo mv ./scala-2.12.15/ ./scala

别忘了添加环境变量。以Ubuntu系统为例,修改/.bashrc文件;如果是Manjaro系统,由于默认的终端为zsh而非bash,需要修改/.zshrc文件。总之,添加以下这一行:

1
export PATH=$PATH:/usr/local/scala/bin

修改之后,更新一下配置文件。在终端中输入:

1
2
3
# choose your own system :)
source ~/.bashrc
source ~/.zshrc

完成后在终端输入scala命令可以检查安装是否完成。出现以下输出,说明安装成功。

1
2
3
4
Welcome to Scala 2.12.15 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_301).
Type in expressions for evaluation. Or try :help.

scala>

附:小记一下利用IDEA编写Scala代码的方法。

在Linux系统中安装 IntelliJ IDEA(可以使用系统自带的应用商店或包管理器安装,也可以去官网下载安装包后自行安装,这里用的是Community Edition),在插件市场中搜索并安装Scala插件,重启ide。

然后就可以新建Scala项目了,如果是像上文写的那样自行安装Scala的话,在使用库中选中自己的安装路径,例如本文就是/usr/local/scala,ide会自动识别sdk版本。之后就同新建Java项目一样了,于此不再赘述。