现在的位置: 首页 > 综合 > 正文

Apache Spark探秘:利用Intellij IDEA构建开发环境

2018年04月08日 ⁄ 综合 ⁄ 共 2346字 ⁄ 字号 评论关闭

转载自:http://dongxicheng.org/framework-on-yarn/apache-spark-intellij-idea/


前段时间写了几篇使用Eclipse构建Spark源码阅读和开发环境的文章。经过一段时间的试用,发现Eclipse在Scala支持方面很不完善,体验非常差,因此转而使用Intellij
IDEA,本文介绍如何使用Intellij IDEA构建Spark源码阅读和开发环境。

(1)准备工作

1)  安装JDK 6或者JDK 7

2)  安装scala 2.10.x (注意版本)

2)下载Intellij IDEA最新版(本文以IntelliJ IDEA Community Edition 13.1.1为例说明,不同版本,界面布局可能不同):http://www.jetbrains.com/idea/download/

3)将下载的Intellij IDEA解压后,安装scala插件,流程如下:

依次选择“Configure”–> “Plugins”–> “Browse repositories”,输入scala,然后安装即可

(2)搭建Spark源码阅读环境(需要联网)

一种方法是直接依次选择“import project”–> 选择spark所在目录 –> “SBT”,之后intellij会自动识别SBT文件,并下载依赖的外部jar包,整个流程用时非常长,取决于机器的网络环境(不建议在windows下操作,可能遇到各种问题),一般需花费几十分钟到几个小时。注意,下载过程会用到git,因此应该事先安装了git。

第二种方法是首先在linux操作系统上生成intellij项目文件,然后在intellij IDEA中直接通过“Open Project”打开项目即可。在linux上生成intellij项目文件的方法(需要安装git,不需要安装scala,sbt会自动下载)是:在spark源代码根目录下,输入sbt/sbt gen-idea

注:如果你在windows下阅读源代码,建议先在linux下生成项目文件,然后导入到windows中的intellij IDEA中。

======================================================================

转载者注:在单击上linux环境下执行sbt/sbt gen-idea,始终报如下错误:

Could not reserve enough space for object heap
      Error: Could not create the Java Virtual Machine.

一看便知是内存问题,用free 查了下机器剩余内存不足1G,估计是默认设置比这个值要大,于是修改/etc/profile文件,在末尾添加一行jvm参数:

export _JAVA_OPTIONS="-Xms256m -Xmx512m -XX:PermSize=512m"

然后再次执行sbt/sbt gen-idea,问题解决。如下所示:

joe@joe-ubuntu:~/work/apache-spark/spark$ sbt/sbt gen-idea
      Picked up _JAVA_OPTIONS: -Xms256m -Xmx512m -XX:PermSize=512m
      Getting org.scala-sbt sbt 0.13.2 ...
      downloading http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/sbt/0.13.2/jars/sbt.jar ...

=====================================================================================

(3)搭建Spark开发环境

在intellij IDEA中创建scala project,并依次选择“File”–> “project structure” –> “Libraries”,选择“+”,将spark-hadoop 对应的包导入,比如导入spark-assembly_2.10-0.9.0-incubating-hadoop2.2.0.jar(只需导入该jar包,其他不需要),如果IDE没有识别scala 库,则需要以同样方式将scala库导入。之后开发scala程序即可:

编写完scala程序后,可以直接在intellij中,以local模式运行,方法如下:

点击“Run”–> “Run Configurations”,在弹出的框中对应栏中填写“local”,表示将该参数传递给main函数,如下图所示,之后点击“Run”–> “Run”运行程序即可。

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

依次选择“File”–> “Project Structure” –> “Artifact”,选择“+”–> “Jar” –> “From Modules with dependencies”,选择main函数,并在弹出框中选择输出jar位置,并选择“OK”。

最后依次选择“Build”–> “Build Artifact”编译生成jar包。具体如下图所示。

原创文章,转载请注明: 转载自董的博客

本文链接地址: http://dongxicheng.org/framework-on-yarn/apache-spark-intellij-idea/

作者:Dong,作者介绍:http://dongxicheng.org/about/

本博客的文章集合:

抱歉!评论已关闭.