2.1.1 使用Intellij开发Spark程序

本节介绍如何使用Intellij IDEA构建Spark开发环境和源码阅读环境。由于Intellij对Scala的支持更好,目前Spark开发团队主要使用Intellij作为开发环境。

1.配置开发环境

(1)安装JDK

用户可以自行安装JDK8。官网地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html

下载后,如果在Windows下直接运行安装程序,会自动配置环境变量,安装成功后,在CMD的命令行下输入Java,有Java版本的日志信息提示则证明安装成功。

如果在Linux下安装,下载JDK包解压缩后,还需要配置环境变量。

在/etc/profile文件中,配置环境变量:


export JAVA_HOME=/usr/java/jdk1.8
export JAVA_BIN=/usr/java/jdk1.8/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH

(2)安装Scala

Spark内核采用Scala进行开发,上层通过封装接口提供Java和Python的API,在进行开发前需要配置好Scala的开发包。

Spark对Scala的版本有约束,用户可以在Spark的官方下载界面看到相应的Scala版本号。下载指定的Scala包,官网地址:http://www.scala-lang.org/download/。

(3)安装Intellij IDEA

用户可以下载安装最新版本的Intellij,官网地址:http://www.jetbrains.com/idea/download/

目前Intellij最新的版本中已经可以支持新建SBT工程,安装Scala插件,可以很好地支持Scala开发。

(4)Intellij中安装Scala插件

在Intellij菜单中选择“Configure”,在下拉菜单中选择“Plugins”,再选择“Browse repositories”,输入“Scala”搜索插件(如图2-1所示),在弹出的对话框中单击“install”按钮,重启Intellij。

2.配置Spark应用开发环境

1)用户在Intellij IDEA中创建Scala Project,SparkTest。

2)选择菜单中的“File”→“project structure”→“Libraries”命令,单击“+”,导入“spark-assembly_2.10-1.0.0-incubating-hadoop2.2.0.jar”。

只需导入该jar包,该包可以通过在Spark的源码工程下执行“sbt/sbt assembly”命令生成,这个命令相当于将Spark的所有依赖包和Spark源码打包为一个整体。

在“assembly/target/scala-2.10.4/”目录下生成:spark-assembly-1.0.0-incubating-hadoop2.2.0.jar。

3)如果IDE无法识别Scala库,则需要以同样方式将Scala库的jar包导入。之后就可以开始开发Spark程序。如图2-2所示,本例将Spark默认的示例程序SparkPi复制到文件。

图2-1 输入“Scala”搜索插件

图2-2 编写程序

3.运行Spark程序

(1)本地运行

编写完scala程序后,可以直接在Intellij中,以本地Local模式运行(如图2-3所示),方法如下。

图2-3 以local模式运行

在Intellij中的选择“Run”→“Debug Configuration”→“Edit Configurations”命令。在“Program arguments”文本框中输入main函数的输入参数local。然后右键选择需要运行的类,单击“Run”按钮运行。

(2)集群上运行Spark应用jar包

如果想把程序打成jar包,通过命令行的形式运行在Spark集群中,并按照以下步骤操作。

1)选择“File”→“Project Structure”,在弹出的对话框中选择“Artifact”→“Jar”→“From Modules with dependencies”命令。

2)在选择“From Modules with dependencies”之后弹出的对话框中,选择Main函数,同时选择输出jar位置,最后单击“OK”按钮。

具体如图2-4~图2-6所示。

在图2-5中选择需要执行的Main函数。

在图2-6界面选择依赖的jar包。

图2-4 生成jar包第一步

图2-5 生成jar包第二步

图2-6 生成jar包第三步

在主菜单选择“Build”→“Build Artifact”命令,编译生成jar包。

3)将生成的jar包SparkTest.jar在集群的主节点,通过下面命令执行:


java -jar SparkTest.jar

用户可以通过上面的流程和方式通过Intellij作为集成开发环境进行Spark程序的开发。