前言
本文重点介绍在如何Windows 10下开发spark应用程序的依赖环境的搭建。
本章概要
- 版本说明
- 环境配置
- jdk配置
- scala安装配置
- spark安装配置
- hadoop安装配置
- Intellij IDEA下载与配置
版本说明
- jdk:1.8
- scala:2.12.0
- spark:2.4.3
- hadoop:2.7.7
环境配置
jdk配置
- 下载:登录Oracle官网,接受协议,注册登录,选择对应版本。因为我的本机是64位Windows,所以需要下载64位(Windows x64)JDK安装包。
scala安装配置
- 下载:通过Spark官网下载页面 可知“Note: Starting version 2.0, Spark is built with Scala 2.11 by default.”,下载Spark2.4.3对应的
Scala 2.12.x
。登录Scala官网,单击download按钮,然后再“Other Releases”标题下找到“Last 2.12.x maintenance release - Scala 2.12.0”链接。进入downloan页面,下拉找到如下图内容,下载msi格式的安装包即可。 - 安装: 默认安装到
C:\Program Files (x86)\scala
目录下 - 环境变量:与设置Java环境变量类型,
SCALA_HOME=C:\Program Files (x86)\scala
Path
环境变量在最后追加;设置成功后在win+R
输入cmd
后打开命令行输入scala -version
可以看到安装的版本%SCALA_HOME%\bin
;
安装Maven
- Maven的安装与配置可以参考:《Hadoop基础教程-第4章 HDFS的Java API(4.1 Maven入门)》
Intellij IDEA
上自带Maven,本文不再详细介绍
Intellij IDEA下载与配置
- 下载与安装:登录官网,按照自己的需求下载(
ultimate
,旗舰版)或者(Community
,社区版)。Ultimate
版本是商业软件,需要付费,Community
版为免费版,足够平时日常开发需要。比如这里直接下载Community
- 启动,安装完成后,单击
IntelliJ IDEA
图标即可启动IntelliJ IDEA
. 由于是第一次安装,所以不需要导入配置。默认选项即可。 - 选择“Evaluate for free”进入免费版
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7248aeAc-1579614262511)(https://cdn.jsdelivr.net/gh/InfiniteYinux/cloud@master/img/spark-init/idea3.png)] 可以根据自身的习惯选择风格,并点击左下角“Skip Remaining and Set Default”
- 安装
scala
插件:点击左下角:Configure->Plugins
搜索并安装scala[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qi0TeMUF-1579614262515)(https://cdn.jsdelivr.net/gh/InfiniteYinux/cloud@master/img/spark-init/idea5.png)] - 配置JDK: 首先打开
Project Structure
,如下图然后我们添加上文安装的JDK,配置完成后点击OK,如下图: - 配置JDK 配置全局scala SDK:选中“
Global Libraries
”,点击“+”号,在弹出的菜单中选中“Scala SDK”,如下图:在弹出的“Select JAR's for the new Scala SDK
”中选择与本机scala版本一致的Version,在这里由于我的scala版本是2.12.0 所以我选择的是2.12.0版本点击右下角OK完成配置
创建Maven项目
- 单击“
Create New Project
”选择maven点击Next
,填写GroupID
和ArtifactID
点击Next,如下图:点击Finish,如下图:(在此步骤可以更改Content root 和 Module file location 的路径)创建完后右下角如果出现提示:请点击Enable Auto-Import
- 创建完后将scala框架添加到项目(若不设置有可能无法创建 scala class):在IDEA启动后进入的界面中,可以看到界面左侧的项目界面,已经有一个名称为simpleSpark的工程。请在该工程名称上右键单击,在弹出的菜单中,选择
Add Framework Surport
,在左侧有一排可勾选项,找到scala,勾选即可(我的这里没有找到,但是也能运行,为了确保无误,借用haijiege的图) - 将项目文件设置为source root ,选中scala–>右键
快捷菜单
–>Mark Directory as
–>Sources root
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DHfaizDO-1579614262541)(https://cdn.jsdelivr.net/gh/InfiniteYinux/cloud@master/img/spark-init/idea18.png)]
编辑代码
- pom.xml
Spark2.4.3 Maven库请参见 https://mvnrepository.com/artifact/org.apache.spark/spark-core_2.12/2.4.3
<modelVersion>4.0.0</modelVersion>
<groupId>Test.pack</groupId>
<artifactId>SparkTest</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<inceptionYear>2008</inceptionYear>
<properties>
<spark.version>2.4.3</spark.version>
<scala.version>2.12.0</scala.version>
</properties>
<repositories>
<repository>
<id>nexus-aliyun</id>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>scala-tools.org</id>
<name>Scala-Tools Maven2 Repository</name>
<url>http://scala-tools.org/repo-releases</url>
</pluginRepository>
</pluginRepositories>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.12</artifactId>
<version>2.4.3</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.specs</groupId>
<artifactId>specs</artifactId>
<version>1.2.5</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-5</version>
<configuration>
<classifier>dist</classifier>
<appendAssemblyId>true</appendAssemblyId>
<descriptorRefs>
<descriptor>jar-with-dependencies</descriptor>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
-
保存pom.xml文件后,如果Intellij IDEA右下角出现如下提示,请单击“
Enable Auto-Import
” -
WordCount.scala :新建
Scala Class
类WordCount.scala
,Scala源文件后缀名是.scala。通过右键刚刚设置为sources root
的scala文件夹,就有了new
->scala class
的选项。新建一个scala class
,并且命名WordCount
,选择object类型。打开建好的WordCount.scala
文件,清空!然后黏贴以下代码:
程序运行
文件
数据文件
程序文件
运行
在源文件代码中右键单击–>Run “WordCount
”[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L7OTZcNh-1579614262544)(https://cdn.jsdelivr.net/gh/InfiniteYinux/cloud@master/img/spark-init/idea19.png)]
运行结果如下(输出的信息较多请上下翻一下就能找到)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xJ0QMmFh-1579614262545)(https://cdn.jsdelivr.net/gh/InfiniteYinux/cloud@master/img/spark-init/idea20.png)]
dCount`”[外链图片转存中…(img-L7OTZcNh-1579614262544)]
运行结果如下(输出的信息较多请上下翻一下就能找到)[外链图片转存中…(img-xJ0QMmFh-1579614262545)]