千家信息网

基于IDEA使用Spark API开发Spark程序

发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,清明假期折腾了两天,总结了两种方式使用IDE进行spark程序,记录一下:第一种方法比较简单,两种方式都是采用SBT进行编译的。注意:本地不需要安装Scala程序,否则在编译程序时有版本兼容性问题。一
千家信息网最后更新 2025年01月22日基于IDEA使用Spark API开发Spark程序

清明假期折腾了两天,总结了两种方式使用IDE进行spark程序,记录一下:

第一种方法比较简单,两种方式都是采用SBT进行编译的。

注意:本地不需要安装Scala程序,否则在编译程序时有版本兼容性问题。


一、基于Non-SBT方式


创建一个Scala IDEA工程

我们使用Non-SBT的方式,点击"Next"

命名工程,其他按照默认

点击"Finish"完成工程的创建

修改项目的属性

首先修改Modules选项

在src下创建两个文件夹,并把其属性改为source

下面修改Libraries

将Spark开发需要的jar包导进来

加入后:

导入包完成后,在工程的scala下面创建一个package

创建一个Object对象

构建Spark Driver代码

该程序是对搜狗日志的处理代码

接下来进行打包,使用Project Structure的Artifacts

使用From modules with dependencies

选择Main Class

点击"OK"

把名称改为FirstSparkAppJar

因为每台机器上都安装了Scala和Spark,所以可以把Scala和Spark相关的jar文件都删掉

接下来进行Build

选择"Build Artifacts"

第一次选择Build,以后同一个工程要选择Rebuild,然后等待编译完成

下面使用spark-submit运行程序

最后任务运行完成



二、基于SBT方式


开发工具下载


Spark开发需要以下开发编译工具:

1、Scala IDE:本文以IntelliJ IDEA为例进行开发,下载地址:

https://www.jetbrains.com/idea/download/

2、SBT(Simple Build Tool)编译工具下载:

http://www.scala-sbt.org/download.html

下载安装后,在DOS下执行sbt命令下载其所需要的jar包:

默认jar包(.idea-build、.ivy2、.sbt)下载到C盘用户目录下

(注意:使用命令sbt进行下载时要确保网速,最好使用代理下载)


开发工具配置


1、IntelliJ IDEA开发配置:

(1) 下载Scala插件:选择Configure下的Plugins进入下图

选择Install JetBrains plugin,搜索Scala进行下载。

(2) 创建基于SBT的Scala工程:

(3) 设置工程名称以及Scala和SBT版本:

注意:

  1. 最好将Download两个选项取消,否则会覆盖之前用户目录下的SBTjar包,造成编译不通过等错误

  2. SBT和Scala的版本号在C盘用户目录下可以看出:

    C:\Users\用户\.sbt\boot\scala-2.10.4\org.scala-sbt\sbt\0.13.8

    这里可以一次性设置正确,也可以后续修改配置文件(build.sbt修改scala版本,build.properties修改sbt版本)进行修改同步。

  3. 工程路径不要使用中文,否则即使编译成功打成jar包也无法执行。


(4) 基于SBT的Scala程序对工程的结构要求比较苛刻,需要建立如下目录结构:

(5) 添加Spark插件:

注意:同时该插件需要添加到lib目录下(操作系统复制即可)


准备工作完成,下面进行Spark程序开发


编写代码

下面以类wordcount程序为例:

编写Spark程序:

请不要使用InteiiJ IDEA进行编译(汉字导致后面编译不过去)


编译和执行

(1)使用SBT进行编译和打包:

DOS下进入工程目录下,使用sbt命令进行编译和打包:

默认打的jar在工程目录test\target\scala-2.10下

(2)将jar包上传到服务器执行:

使用命令:

spark-submit --class test--master yarn test_2.10-0.1-SNAPSHOT.jar 100

更多的参数详见官方文档

0