- 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 で新しいプロジェクトを作成
-
Class の名前は http://spark.apache.org/docs/latest/quick-start.html での例に習って,SimpleApp にします
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