最近、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!