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的安装路经:
- export JAVA_HOME=/usr/java/jdk1.6.0_27
- export JAVA_BIN=/usr/java/jdk1.6.0_27/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的版本有约束,用户可以在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 输入“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-2 编写程序
3.运行Spark程序
(1)本地运行
编写完Scala程序后,可以直接在Intellij中以本地(local)模式运行(见图5-3),方法如下。
注意,设置Program arguments中参数为local。
图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-4 生成Jar包第一步
图5-5 生成Jar包第二步
图5-6 生成Jar包第三步
2)在主菜单中选择“Build”→“Build Artifact”命令,编译生成Jar包。
3)在集群的主节点,通过下面命令执行生成的Jar包SparkTest.jar。
- java -jar SparkTest.jar