IntelliJ IDEA开发Spark、打JAR包

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

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

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


一、基于Non-SBT方式


创建一个Scala IDEA工程

wKioL1Uw_W6RTtXzAADv8hogz8w055.jpg

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

wKioL1Uw_biRUEB1AAGcmEwvV7E233.jpg

命名工程,其他按照默认

wKiom1Uw_KDQYIGlAAGRVxi3MMs169.jpg

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

wKiom1Uw_NrBpqj5AAEQMJ0boUU026.jpg

修改项目的属性

wKioL1Uw_lrSBokLAAIZ4fEOMCY459.jpg

首先修改Modules选项

wKiom1Uw_S2Br-RlAAGxDLlS1PE811.jpg

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

wKioL1Uw_q-STTmvAAIBzio05jU421.jpg

下面修改Libraries

wKiom1Uw_ZGgDh87AAGaa3ZcNZo061.jpg

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

wKioL1Uw_wOwSETZAAJWLRmQrpQ623.jpg

加入后:

wKioL1Uw_yLAeabkAAFXMb20-k8196.jpg

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

wKioL1Uw_z_h2uTKAAGsxUhzL30651.jpg

创建一个Object对象

wKiom1Uw_grxuoo4AAGXviNcKQw217.jpg

构建Spark Driver代码

wKiom1Uw_i-A-livAAG7j_bnMEs430.jpg

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

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

wKioL1Uw_6ODQug7AAECG7Txdu8331.jpg

使用From modules with dependencies

wKiom1Uw_m7zsayvAADwz1cykkI686.jpg

wKioL1Uw_9mTLkG1AADiAufDfUA742.jpg

选择Main Class

wKiom1Uw_qKgh1ixAADxuLhxrNI042.jpg

wKioL1UxABbgGWegAAFxfcRbbgg320.jpg

点击“OK”

wKioL1UxADTgc021AAGxXZGxmuI537.jpg

把名称改为FirstSparkAppJar

wKiom1Uw_vzTmRrdAAJFnvfO97g915.jpg

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

wKioL1UxAG2iD9sqAAFhP8reeY0753.jpg

接下来进行Build

wKiom1Uw_zihPn3dAAGI_9Z49rI498.jpg

选择“Build Artifacts”

wKiom1Uw_1nAAaUxAAB1Rl4ca0w127.jpg

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

wKioL1UxAMuz2YFaAABtCTV6Y8o755.jpg

下面使用spark-submit运行程序

wKioL1UxAOPh4P5fAAEHPCkIfB4979.jpg

最后任务运行完成

wKiom1Uw_6uC3GgwAAX9_Yv1lcs243.jpg



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

wKioL1UxAYLCmfo4AAARGOs6v50207.jpg

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

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


开发工具配置


1、IntelliJ IDEA开发配置:

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

wKioL1UxAfWj_cBXAAJ78Hyzj-4801.jpg选择Install JetBrains plugin,搜索Scala进行下载。

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

wKiom1UxAM_REor9AAFW7Qe8sfM628.jpg

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

wKioL1UxAlLyBEBJAAJAjXx9JUU478.jpg注意:

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

wKiom1UxAViwFAJRAAIvAPorWiY092.jpg

(5) 添加Spark插件:

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


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


编写代码

下面以类wordcount程序为例:

编写Spark程序:

wKioL1UxAxeQl_4FAAK1eT5vwAc317.jpg

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


编译和执行

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

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

wKiom1UxAfXDk-EOAACqxPsUF6A456.jpg

wKiom1UxAgmTLLs3AADnj-Sjico004.jpg

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

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

使用命令:

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

更多的参数详见官方文档

wKioL1UxA5zQQcPFAAMbGsPlGXU256.jpg

你可能感兴趣的:(spark)