LoginSignup
10
13

More than 5 years have passed since last update.

Scala + Apache Spark をIntelliJにて開発する方法

Posted at
  • Scala + Spark でScalable なプロジェクトを開発したいことがあるかと思います。
  • ここでは,Spark のExample に示されているコードを,IntelliJ 上でどのように開発するかをスクリーンショットとともに紹介します。

Apache Spark の準備

Spark のソースコードをダウンロードしてくる

  • git clone git://github.com/apache/spark.git -b branch-1.6
    • これで,Spark の1.6 の安定版がダウンロードされる

Spark をビルドする

maven をインストール

- 例えば,http://qiita.com/chosan211/items/1472198165442e93047e などを参照してインストールする
- 手元のmac環境の場合は,macports を使って下記のように簡単にインストールできた
    - `$sudo port install maven3`
    - `$sudo port select --set maven maven3`
    - `$ mvn --version`
yk-tanigawa$ sudo port install maven3
--->  Computing dependencies for maven3
--->  Dependencies to be installed: maven_select
--->  Fetching archive for maven_select
--->  Attempting to fetch maven_select-0.3_1.darwin_14.noarch.tbz2 from https://packages.macports.org/maven_select
--->  Attempting to fetch maven_select-0.3_1.darwin_14.noarch.tbz2.rmd160 from https://packages.macports.org/maven_select
--->  Installing maven_select @0.3_1
--->  Activating maven_select @0.3_1
--->  Cleaning maven_select
--->  Fetching archive for maven3
--->  Attempting to fetch maven3-3.3.9_0.darwin_14.noarch.tbz2 from https://packages.macports.org/maven3
--->  Attempting to fetch maven3-3.3.9_0.darwin_14.noarch.tbz2.rmd160 from https://packages.macports.org/maven3
--->  Installing maven3 @3.3.9_0
--->  Activating maven3 @3.3.9_0

To make maven 3.3.9 the default, please run
    sudo port select --set maven maven3

--->  Cleaning maven3
--->  Updating database of binaries
--->  Scanning binaries for linking errors
--->  No broken files found.                         

yk-tanigawa$ sudo port select --set maven maven3
Selecting 'maven3' for 'maven' succeeded. 'maven3' is now active.

yk-tanigawa$ mvn --version
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T01:41:47+09:00)
Maven home: /opt/local/share/java/maven3
Java version: 1.8.0_91, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.10.5", arch: "x86_64", family: "mac"

Spark をビルドする

  • $ cd spark
  • $ build/mvn -Pyarn -Phadoop-2.4 -Dhadoop.version=2.4.0 -DskipTests clean package
  • しばらく時間がかかります。

IntelliJ のセットアップ

ダウンロード & インストール

  • 他のページを見てください
  • scala, sbt plugin を入れ忘れないように

IntelliJ で新しいプロジェクトを作成

  • sbt ベースのプロジェクトを作ります
    Screenshot 2016-05-06 12.42.53.png

  • Use auto-import を入れておくと便利です
    Screenshot 2016-05-06 12.43.32.png

  • project/src/main/scala にscala class を作ります。
    Screenshot 2016-05-06 12.45.24.png

  • Class の名前は http://spark.apache.org/docs/latest/quick-start.html での例に習って,SimpleApp にします
    Screenshot 2016-05-06 12.51.26.png

  • Simple App のソースコードを書きます
    Screenshot 2016-05-06 14.13.28.png

  • build.sbt に,sparkのLibrary を使うということを追記します
    Screenshot 2016-05-06 14.11.48.png

jar ファイルにまとめる

  • IntelliJ のconsole でsbt package コマンドを実行,ソースコードをjar ファイルにまとめます
yk-tanigawa$ sbt package
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=384m; support was removed in 8.0
[info] Loading project definition from /Users/yk-tanigawa/IdeaProjects/scala-spark-example01/project
[info] Set current project to scala-spark-example01 (in build file:/Users/yk-tanigawa/IdeaProjects/scala-spark-example01/)
[info] Updating {file:/Users/yk-tanigawa/IdeaProjects/scala-spark-example01/}scala-spark-example01...
[info] Resolving jline#jline;2.12.1 ...
[info] Done updating.
[info] Compiling 1 Scala source to /Users/yk-tanigawa/IdeaProjects/scala-spark-example01/target/scala-2.11/classes...
[info] Packaging /Users/yk-tanigawa/IdeaProjects/scala-spark-example01/target/scala-2.11/scala-spark-example01_2.11-1.0.jar ...
[info] Done packaging.
[success] Total time: 27 s, completed May 6, 2016 2:20:21 PM

spark–submit を使ってプログラムを実行します

  • 先ほどSpark をインストールしたディレクトリをターミナルで開き,spark-submit コマンドで,先ほど作ったjar ファイルを投げます
  • $ ./bin/spark-submit --class "SimpleApp" --master local[2] ~/IdeaProjects/scala-spark-example01/target/scala-2.11/scala-spark-example01_2.11-1.0.jar

  • 無事に実行されました

    • Lines with a: 58, Lines with b: 26
10
13
0

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
10
13