Spark のインストールについてまとめました。
Sparkのインストール
初めに JDK 6 以上をインストールする必要があります。Spark 自体は Scala で書かれており、JVM 上で動作します。ただし、Scala はインストールしていなくてもいいです。
CentOSにJava(JDK)をRPMでインストール+バージョン変更について
MacでHomebrewを使用して複数バージョンのJava (JDK) をインストールして切り替える方法
Spark のインストールは Downloads | Apache Spark からビルド済のバイナリをダウンロードしてくるだけです。最初は勘違いし易いですが Spark は Hadoop を必要としません。単一のマシン上であればローカルモード(非分散モード)で動作させることが可能です。
HDFS や YARN と組み合わせて使用する場合、Spark はこれらのクライアントとして動作するため、ベースになっている Hadoop のバージョンに合わせたバイナリが必要です。例えば CDH 5.4 を使用している場合、以下の画像にあるように Hadoop 2.6 以上向けにビルドされたバイナリを選択します。
ダウンロードした tarball を展開してください。
# cd /tmp/ # wget http://ftp.riken.jp/net/apache/spark/spark-1.5.2/spark-1.5.2-bin-hadoop2.6.tgz # tar zxvf spark-1.5.2-bin-hadoop2.6.tgz -C /usr/local/lib/ # ln -s /usr/local/lib/spark-1.5.2-bin-hadoop2.6 /usr/local/lib/spark
続いて環境変数を設定します。
# echo 'export SPARK_HOME=/usr/local/lib/spark' >> /etc/profile.d/spark.sh # echo 'export PATH=$SPARK_HOME/bin:$PATH' >> /etc/profile.d/spark.sh # source /etc/profile
完了したら Spark のコマンドを実行できることを確認します。
$ spark-shell --version Welcome to ____ __ / __/__ ___ _____/ /__ _\ \/ _ \/ _ `/ __/ '_/ /___/ .__/\_,_/_/ /_/\_\ version 1.5.2 /_/ Type --help for more information.
MacでSparkのインストール
Mac では Homebrew からインストールすることが可能です。
$ brew install apache-spark
ただしapache-spark
ではなくspark
でインストールすると別のライブラリがインストールされるので気を付けましょう。
$ brew info spark spark: stable 1.0.1 Sparklines for the shell http://zachholman.com/spark/ Not installed From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/spark.rb
Loggerの設定
spark-submit
やpyspark
などのコマンド実行すると多くのログが出力されると思いますが、デフォルトでは INFO レベル以上が表示されるようになっているためです。
これは${SPARK_HOME}/conf/log4j.properties.template
をコピーしてログレベルを変更することで調整が可能です。
$ cp ${SPARK_HOME}/conf/log4j.properties.template ${SPARK_HOME}/conf/log4j.properties $ vi ${SPARK_HOME}/conf/log4j.properties
log4j.rootCategory=INFO, console # WARN に変更
Scalaのバージョン
spark-shell
を起動すると Scala のバージョンが 2.10 系になっているのがわかります。2.11 系がいい場合は自分でビルドする必要がありますが、今はまだ 2.10 系を使うのが無難なようです。
$ spark-shell 15/12/24 00:43:03 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Welcome to ____ __ / __/__ ___ _____/ /__ _\ \/ _ \/ _ `/ __/ '_/ /___/ .__/\_,_/_/ /_/\_\ version 1.5.2 /_/ Using Scala version 2.10.4 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_45) ...
Building Spark - Spark 1.5.2 Documentation