33
37

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2015-06-20

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

お約束

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

33
37
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33
37

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?