[Apache Spark入門メモ]その1 - 開発環境構築


最近、Sparkを始めたので備忘録がてら入門向け記事を書いていきます。
まずは開発環境から。

なお、特に依存するところは無いと思いますが、
Windows 10が私の開発機なので、自動的にWindows10対応版のSpark開発環境構築手順となります。

はじめに

今回はSparkの開発環境はWindows上で作ります。
いくつか「インストール」系の記事を探した感じだと環境変数やHadoop/Sparkのインストールをしていますが、
単純に開発するだけなら、現在は不要な気がします。クラスタ組むためには必要な気がしますが、それはまた別な話。
ファイル操作をするためにはwinutils.exeだけは入れる必要があるみたい。

また、開発言語はScalaのイメージが強いですが、Javaでの開発も可能です。※ 他にもPythonとかRも選べます。
Java8のラムダ式の導入により、ずいぶんと書きやすくなったのでJavaでの開発も結構アリかと思います。

ただ、Javaのラムダ式に対応していないAPI、Scalaのimlicit def等を前提としたDSLライクなAPIも結構もあります。
なにより、多くのドキュメントはScalaやPythonをベースに書かれてる事が多いので、情報収集を含めると少し開発は面倒かもしれません。
その反面、開発言語を変えなくても良いので、ある程度人数の多い開発チームならJavaは有力な選択肢となります。

Scalaの開発環境

まずは定番中の定番、Scalaでの開発環境。
IntelliJ IDEA + sbt + Lightbend Activatorを使います。
Activatorはビルドプロジェクトのテンプレートで、よく使う構成がサクッと作れます。
これで「どんなsbt書けば良いんだ?」って毎回悩まなくていいので素敵ですね!

まずはIntelliJのインストールをします。
まだ、インストールしてない方は、こちらから、ダウンロードしてインストールしてください。

続いて、IntelliJのScalaプラグインを入れます。

1. IntelliJ 起動
2. File -> Settings -> Plugins
3. 「Scala」プラグインをインストール

次にプロジェクト作成です。
ActivatorをScalaプラグインがサポートしているので、そちらで作ります。
このタイミングでScalaやSaprk関連のモジュールが自動でインストールされるので、結構時間がかかります。

1. File -> New -> Project -> Scala -> Activator
2. Project Nameを設定 ※ 「-」とかは使えないのでキャメルケースで。
3. 「Spark Tutorial provides a quick introduction to using Spark」を選択
4. Finish

Javaの開発環境

いくつかの理由によりSparkをScalaではJavaで開発したいときもあるでしょう。
安心してください。SparkはJavaもサポートしてます。
IntelliJでの開発も可能ですが、個人的な趣味でJavaではNetBeans + Mavenでの開発環境を構築します。

まずはNetBeansをインストールします。
まだ、インストールしてない方は。こちらから、ダウンロードしてインストールしてください。

次にプロジェクトの作成です。
Mavenで作成することになります。

1. File -> New Project -> Maven -> Java Application
2. 「Project Name」を設定
3. 「Project」の「Dependencies」を右クリックして「Add Dependencies」をクリック
4. 「org.apache.spark % spark-core_2.11 % 1.6.1」と「org.apache.spark % spark-sql_2.11 % 1.6.1」を依存に追加
5. Finish

winutils.exeのインストール

最低限の機能だけなら、IDEだけで動作するのですが、例えばHDFSを使おうとするとそれだけではエラーになります。
Windowsであればwinutils.exeを入れることで回避できるので、その方法を記載します。

まずは下記からダウンロードしてください。
http://public-repo-1.hortonworks.com/hdp-win-alpha/winutils.exe

続いて下記ディレクトリを作成。分かりやすくCドライブ直下にしましたが、場所はどこでも大丈夫です。

C:\hadoop\bin

ここに先ほどダウンロードしたwinutils.exeを配置します。

配置後、環境変数を登録します。

HADOOP_HOME=C:\hadoop

これで、ファイル操作も実施可能になります。

まとめ

これで、開発環境が出来たので次回は簡単なHello Worldプログラムを書いていきます。
それでは、Happy Hacking!