IntelliJ
Spark

IntelliJでScalaのSparkアプリケーションの開発環境を作る

More than 3 years have passed since last update.

How to kick-start Spark development on IntelliJ IDEA in 4 stepsを参考に開発環境を作ったのでメモ


おおまかな手順


  1. sbt管理なプロジェクトを作る


  2. sbt-assemblyをインストール

  3. sbtファイルにSparkの依存ライブラリを記述する

これだけで、SparkアプリケーションをSparkのlocalモードで走らせることができるようになる。このへん、Sparkがスケジューラ部分をちゃんとモジュール化してるから簡単にできるんだろうなぁという印象。コードは読んでないけど・・


sbt管理なプロジェクトを作る

New_Project.png


sbt-assemblyをインストール

分散環境上で動くSparkでは、spark-submitするときにアプリケーションのJARファイルを配る。このときに外部ファイルへの依存があると、各サーバーにそれらのファイルも配らなきゃいけなくなる。これを避けるために単独ファイルで起動可能なJARを作るためにsbt-assemblyを利用する。spark-submitにはファイルを配るオプションもあるが、管理やデプロイ、デバッグ等が複雑化するので、Learning Sparkでも単独JAR化するのを推奨されている。

方法は簡単。${PROJECT_HOME}/project/plugins.sbtに下記のように書けばOK。

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.13.0")


sbtファイルにSparkの依存ライブラリを記述する

あとはこんな感じにsbtファイルを書く

name := "HelloSpark"

version := "1.0"

scalaVersion := "2.11.6"

libraryDependencies ++= Seq(
"org.apache.spark" % "spark-core_2.11" % "1.4.0"
)

同じライブラリの複数のバージョンへの依存が発生したときに、これを解決するおまじない的なもの(重複排除のストラテジー)をsbtファイルに書いてやる必要があった気がするが、手元の環境だとうまく動いているのと、メモを無くしてしまったので割愛・・・orz


サンプルアプリケーションを動かす

ここまでくればアプリケーションを動かせるようになっている。たとえば下記のようにコードを書いて・・

Example_scala_-_HelloSpark_-____Playgrounds_HelloSpark_.png

実行環境の設定をしてやればOK

Run_Debug_Configurations.png


お約束

これはわたし個人のメモであり、わたしの雇用者を代表するものではりません。