基于IDEA使用SparkAPI开发Spark程序

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

目前创新互联公司已为数千家的企业提供了网站建设、域名、网站空间成都网站托管、企业网站设计、温县网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

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

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

一、基于Non-SBT方式

创建一个Scala IDEA工程

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

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

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

命名工程,其他按照默认

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

点击“Finish”完成工程的创建

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

修改项目的属性

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

首先修改Modules选项

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

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

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

下面修改Libraries

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

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

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

加入后:

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

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

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

创建一个Object对象

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

构建Spark Driver代码

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

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

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

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

使用From modules with dependencies

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

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

选择Main Class

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

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

点击“OK”

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

把名称改为FirstSparkAppJar

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

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

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

接下来进行Build

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

选择“Build Artifacts”

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

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

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

下面使用spark-submit运行程序

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

最后任务运行完成

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

二、基于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包:

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

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

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


开发工具配置

1、IntelliJ IDEA开发配置:

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

 基于IDEA使用Spark API开发Spark程序选择Install JetBrains plugin,搜索Scala进行下载。

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

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

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

 基于IDEA使用Spark API开发Spark程序注意:

  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程序对工程的结构要求比较苛刻,需要建立如下目录结构:

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

(5) 添加Spark插件:

 基于IDEA使用Spark API开发Spark程序注意:同时该插件需要添加到lib目录下(操作系统复制即可)

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


编写代码

下面以类wordcount程序为例:

编写Spark程序:

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

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


编译和执行

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

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

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

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

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

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

使用命令:

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

更多的参数详见官方文档

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


网页标题:基于IDEA使用SparkAPI开发Spark程序
文章位置:http://ybzwz.com/article/jepcep.html