基于 Win10 和 IDEA 的 Spark 开发&测试环境搭建
试想一下,将精心编写的Spark业务代码Jar包上传到Spark集群环境,却出现了简单错误或预期之外的结果,势必会破坏一天的心情和积极性,这时一套桌面级的Spark开发&测试环境的优势就展露无遗了。可以在本地开发Spark代码,并测试基础功能,让开发者可以不必担心上传jar包的代码逻辑正确性、代码质量等基础问题。接下来就跟随本文一起搭建一套Win10下的Spark开发&测试环境吧!
环境信息
Java 1.8.0_251
Scala sdk 2.11.12
Spark lib 2.4.5
IDEA Community 2020.1.2
1. 准备工作
1.1. 搭建Java环境
- Oracle官网下载所需要的JDK(eg.jdk-14.0.1_windows-x64_bin.exe)
- 安装JDK
- 配置环境变量:此电脑 -> 属性 -> 高级系统设置 -> 环境变量 -> 系统变量 -> 新建”JAVA_HOME”变量,其值为上一步JDK安装路径;新建”CLASSPATH”变量,其值为”.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar”;最后编辑”Path”变量,追加字段”%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;”
1
2
3
4
5
6eg.
新建环境变量
JAVA_HOME C:\Java\jdk1.8.0_251
CLASSPATH .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
修改Path变量(追加)
Path %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; - 在PowerShell输入 java -version 判断是否安装成功
1
2
3
4
5
6eg.
PS C:\Windows\system32> java -version
java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)
PS C:\Windows\system32>
1.2. 搭建Scala环境
注:Scala依赖Java 8 JDK (或 Java 11 JDK)以后的版本;目前最新版本为2.13.2,但若需要调试Spark强烈建议下载2.11.x版本,因为Spark主要适配的是2.11.x版本,最新Scala版本可能出现与Spark不兼容问题
- Scala官网下载Scala可安装程序版msi安装包(大小109 MB) 或 Zip版本(大小27.8 MB,推荐)。msi版可直接安装,Zip版需解压。
- 配置环境变量:此电脑 -> 属性 -> 高级系统设置 -> 环境变量 -> 系统变量 -> 新建”SCALA_HOME”变量,其值为上一步Zip版解压路径或msi版安装路径;最后编辑”Path”变量,追加字段”%SCALA_HOME%\bin;”
1
2
3
4
5eg.
新建环境变量
SCALA_HOME C:\Scala\scala-2.11.12
修改Path变量(追加)
Path %SCALA_HOME%\bin; - 在PowerShell输入 scala 判断是否安装成功
1
2
3
4
5
6
7
8eg.
PS C:\Windows\system32> scala
Welcome to Scala 2.11.12 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_251).
Type in expressions for evaluation. Or try :help.
print("hello")
hello
1.3. 搭建Hadoop环境
注:此步未配置将会导致执行scala程序时因缺少Hadoop环境如“winutils.exe”文件而无法执行,抛IOException
- 登录GitHub搜索”hadoop win”,下载Spark运行所需的Hadoop win环境(如:steveloughran/winutils),否则将无法运行Spark工程,报”java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.”
- 解压相应Hadoop版本到指定文件夹
- 需确保bin下有如下两个文件:hadoop.dll、winutils.exe
- 配置环境变量:此电脑 -> 属性 -> 高级系统设置 -> 环境变量 -> 系统变量 -> 新建”HADOOP_HOME”变量,其值为上一步解压路径;最后编辑”Path”变量,追加字段”%HADOOP_HOME%\bin;”
1 | eg. |
1.4. 下载 Spark 的 Jar 依赖包
Idea中Spark工程会用到Spark的jar依赖,故需下载spark的依赖包。
下载spark-2.4.5-bin-hadoop2.7.tgz后解压备用
1.5. 安装Intellij IDEA Community(社区免费版)
官网下载Intellij IDEA Community(社区免费版),并安装
1.6. IDEA 安装 Scala 插件
有两种插件安装方式,即在线安装和离线安装,推荐网络不稳定的小伙伴选择后者(注意Scala插件版本应与IDEA版本匹配)
1.6.1. 在线安装 Scala 插件(超时、失败)
IDEA -> Settings -> plugins -> search plugins in marketplace(“scala”) -> install -> restart IDEA
1.6.2. 离线安装 Scala 插件
浏览器访问 IDEA 离线插件库,点击右上角”Get”按钮,并下载支持IDEA版本(2020.1.2)的 Scala 插件(支持2020.1 — 2020.1.2)
IDEA -> Settings -> plugins -> 点击小齿轮 -> Install plugin form disk -> select package -> restart IDEA
准备工作至此结束
2. 创建Scala项目
- 新建Scala工程
Run IDEA -> File -> New -> Project -> Scala -> IDEA -> NEXT - 填写工程基础信息
指定工程的工程名、路径、Java JDK、Scala JDK。设置Scala JDK时点击右侧”Create”按钮会自动识别准备工作中安装的Scala JDK(2.11.12)
- 添加Spark依赖的jar到此工程
也可直接将整个jars目录导入到Libraries
File –> Project Steuccture –> Libraries –> 点击”+”按钮 –> Java –> 选择准备工作中已解压备用的”spark-2.4.5-bin-hadoop2.7”文件夹里的”jars”目录 –> OK
- 新建一个object
左侧工程结构中点击 src -> new -> scala clas -> 输入文件名(“SparkPi.scala”) -> 选择Object
- 编写Spark简易程序:计算圆周率Pi
1 | import scala.math.random |
- 设置启动参数
注:未设置会报”SparkException: A master URL must be set in your configuration”异常
设置vm options:点击菜单栏Run -> Edit Configurations -> VM options -> 填写如下启动参数,让Spark程序以local模式运行
1 | -Dspark.master=local |
- 运行Spark程序
点击”object SparkPi”旁的绿色小三角即可运行Spark程序(注意设置启动参数)