S-JIS[2011-07-20/2017-01-14] 変更履歴
Apache Sparkのインストールのメモ。
|
|
SparkはUNIXで動かすものだが、単独環境で(分散させずに1台のマシン上で)実行させるだけなら、Windowsでも実行できる。
ここでは、2011-07-14の最新版であるSpark0.3(Scala2.9用)をWindowsXPにインストールしてみる。
前提条件として、JDK1.6がインストールされていて、javaコマンドにパスが通っていること。
Scala2.9がインストールされていて、環境変数SCALA_HOMEがそのディレクトリーを指していること。
@echo off set EXTRA_ARGS= set SPARK_HOME=%~dp0.. for %%i in (%SPARK_HOME%\sbt\sbt-launch-*.jar) do ( java -Xmx800M -XX:MaxPermSize=150m %EXTRA_ARGS% -jar %%i %* ) |
> cd /d C:\scala\mesos-spark > sbt\sbt.bat update compile
> cd /d C:\scala\mesos-spark > run.bat spark.examples.SparkPi local引数の「local」は、分散させずにローカル環境で実行させるという意味。「local[1]」と等価。この数字は、スレッドプールの個数。
EclipseでSparkのプログラミングを行いたいときは、ビルドパスに以下のライブラリーを追加する。
ディレクトリー・jarファイル | ソースの添付 | ||
---|---|---|---|
C:\scala\mesos-spark\ | core\ | target\scala_2.9.0-1\classes | C:/Scala/mesos-spark/core/src |
lib\*.jar | |||
lib_managed\scala_2.9.0-1\compile\*.jar |
ローカル環境なら、Eclipse上から直接実行可能。→サンプル
Gradleを使えば、SparkをインストールしなくてもEclipse用の開発環境を構築可能。→開発環境の構築方法 [2017-01-14]
2014-08-16時点の最新版であるSpark1.0.2をWindows7にインストールしてみる。[2014-08-16]
Spark1.0.2はScala2.10が必要なので、事前にインストールしておく。
Javaは1.8で大丈夫そう。
Sparkのダウンロードページからアーカイブファイルをダウンロードする。
アーカイブファイルにはいくつか種類があるが、prebuilt(ビルド済み)のものをダウンロードするのが楽。
アーカイブファイル | 説明 |
---|---|
spark-1.0.2.tgz | アーカイブファイルは小さいが、Spark0.3の頃と同様に、解凍後に自分でビルドする必要がある。 Windows用のsbtバッチファイルは自分で作る必要があるし、sbtのlauncher.jarも同梱されていないのでどこかから持ってくる必要がある。 |
spark-1.0.2-bin-hadoop1.tgz | ビルド済みのアーカイブ。Hadoop1のライブラリーが同梱されている。 Windows環境ならHadoop2よりこちらの方が良さそう。(Hadoop2版を2台のWindows7に入れてみたが、片方はサンプルがちゃんと動いたのに、他方は例外が発生した。何か環境の問題があるのだろう) ただしソースファイルは同梱されていないので、ソースを見たい場合はspark-1.0.2.tgzもダウンロードする。 |
spark-1.0.2-bin-hadoop2.tgz | ビルド済みのアーカイブ。Hadoop2のライブラリーが同梱されている。 |
$ cd "D:scala" $ tar xf 〜/spark-1.0.2-bin-hadoop1.tgz $ ls spark-1.0.2-bin-hadoop1
自分でビルドしなくていいので、すぐ終わる(笑)
試しにサンプルを実行してみる。
コマンドプロンプトで以下のコマンドを実行する。
(run-exampleというUNIX用のシェルもあるのだが、Cygwinには対応していない。のでコマンドプロンプトでWindows用のバッチファイルを使う必要がある)
> cd /d D:\scala\spark-1.0.2-bin-hadoop1 > bin\run-example.cmd SparkPi 10 〜 Pi is roughly 3.141784 〜
SparkPiは円周率を計算するサンプル。ログがいっぱい出るが、途中に計算結果が出ている。
→自分で色々試そうと思ったら、Sparkシェルが便利。