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 | sudo tar -zxf ~/Desktop/scala-2.12.15.tgz -C /usr/local |
别忘了添加环境变量。以Ubuntu系统为例,修改/.bashrc文件;如果是Manjaro系统,由于默认的终端为zsh而非bash,需要修改/.zshrc文件。总之,添加以下这一行:
1 | export PATH=$PATH:/usr/local/scala/bin |
修改之后,更新一下配置文件。在终端中输入:
1 | # choose your own system :) |
完成后在终端输入scala命令可以检查安装是否完成。出现以下输出,说明安装成功。
1 | Welcome to Scala 2.12.15 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_301). |
附:小记一下利用IDEA编写Scala代码的方法。
在Linux系统中安装 IntelliJ IDEA(可以使用系统自带的应用商店或包管理器安装,也可以去官网下载安装包后自行安装,这里用的是Community Edition),在插件市场中搜索并安装Scala插件,重启ide。
然后就可以新建Scala项目了,如果是像上文写的那样自行安装Scala的话,在使用库中选中自己的安装路径,例如本文就是/usr/local/scala,ide会自动识别sdk版本。之后就同新建Java项目一样了,于此不再赘述。