5.1.1 使用Intellij开发Spark程序

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

1.配置开发环境

(1)安装JDK

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

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

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

在/etc/profile文件中,配置环境变量这样程序就能找到JDK的安装路经:


  1. export JAVA_HOME=/usr/java/jdk1.6.0_27
  2. export JAVA_BIN=/usr/java/jdk1.6.0_27/bin
  3. export PATH=$PATH$JAVA_HOME/bin
  4. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar$JAVA_HOME/lib/tools.jar
  5. export JAVA_HOME JAVA_BIN PATH CLASSPATH

(2)安装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”搜索插件(见图5-1),然后点击相应安装按钮进行安装,重启Intellij使配置生效。

5.1.1 使用Intellij开发Spark程序 - 图1

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

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包即可,该包可以通过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包导入,之后可以开始开发Scala程序,如图5-2所示。本例将Spark默认的示例程序SparkPi复制进文件。

5.1.1 使用Intellij开发Spark程序 - 图2

图5-2 编写程序

3.运行Spark程序

(1)本地运行

编写完Scala程序后,可以直接在Intellij中以本地(local)模式运行(见图5-3),方法如下。

注意,设置Program arguments中参数为local。

5.1.1 使用Intellij开发Spark程序 - 图3

图5-3 以local模式运行

在Intellij中点击Run/Debug Configuration按钮,在其下拉列表选择Edit Configurations选项。在Run输入选择界面中,如图5-3所示,在输入框Program arguments中输入main函数的输入参数local,即为本地单机执行Spark应用。然后右键选择需要运行的类,点击Run运行Spark应用程序。

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

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

1)选择“File”→“Project Structure”命令,然后选择“Artifact”,单击“+”按钮,选择“Jar”→“From Modules with dependencies”,如图5-4所示。

选择Main函数,在弹出的对话框中选择输出Jar位置,并单击“OK”按钮。

在图5-4中点击From mudules with dependencies后将会出现如图5-5所示的输入框,在其中的输入框中选择需要执行的Main函数。

在图5-5所示的界面中单击OK按钮后,在图5-6所示的对话框中通过OutPut layout中的“+”选择依赖的Jar包。

5.1.1 使用Intellij开发Spark程序 - 图4

图5-4 生成Jar包第一步

5.1.1 使用Intellij开发Spark程序 - 图5

图5-5 生成Jar包第二步

5.1.1 使用Intellij开发Spark程序 - 图6

图5-6 生成Jar包第三步

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

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


  1. java -jar SparkTest.jar