CDH5にSparkをインストール

CDH5にSparkをインストールしました。

Sparkとは

Spark
分散処理をメモリで行うため、HadoopMapReduce)よりも高速に処理が出来る分散処理基盤です。

検証構成

Master 1台
Worker 2台
※同一マシン上にCDH5でHDFSとYARNをインストール済み

インストール

こちら を参考にインストールを行います。

パッケージ確認

$ sudo  yum list | grep spark
hue-spark.x86_64                        3.6.0+cdh5.1.0+86-1.cdh5.1.0.p0.36.el6
python-sparklines.noarch                0.9-2.el6                      epel
spark-core.noarch                       1.0.0+cdh5.1.0+41-1.cdh5.1.0.p0.27.el6
spark-history-server.noarch             1.0.0+cdh5.1.0+41-1.cdh5.1.0.p0.27.el6
spark-master.noarch                     1.0.0+cdh5.1.0+41-1.cdh5.1.0.p0.27.el6
spark-python.noarch                     1.0.0+cdh5.1.0+41-1.cdh5.1.0.p0.27.el6
spark-worker.noarch                     1.0.0+cdh5.1.0+41-1.cdh5.1.0.p0.27.el6

Masterには下記パッケージをインストールします。

$ sudo  yum list installed | grep spark
spark-core.noarch              1.0.0+cdh5.1.0+41-1.cdh5.1.0.p0.27.el6  @cloudera-cdh5
spark-history-server.noarch    1.0.0+cdh5.1.0+41-1.cdh5.1.0.p0.27.el6  @cloudera-cdh5
spark-master.noarch            1.0.0+cdh5.1.0+41-1.cdh5.1.0.p0.27.el6  @cloudera-cdh5
spark-python.noarch       1.0.0+cdh5.1.0+41-1.cdh5.1.0.p0.27.el6  @cloudera-cdh5

Workerには下記パッケージをインストールします。

$ sudo yum list installed | grep spark
spark-core.noarch              1.0.0+cdh5.1.0+41-1.cdh5.1.0.p0.27.el6  @cloudera-cdh5
spark-python.noarch            1.0.0+cdh5.1.0+41-1.cdh5.1.0.p0.27.el6  @cloudera-cdh5
spark-worker.noarch            1.0.0+cdh5.1.0+41-1.cdh5.1.0.p0.27.el6  @cloudera-cdh5

設定ファイル編集
/etc/spark/conf/spark-env.shを編集します。

#export STANDALONE_SPARK_MASTER_HOST=`hostname`
export STANDALONE_SPARK_MASTER_HOST=Masterのホスト名

History Serverを設定するため、あらかじめHDFS上に必要なフォルダを作成します。

$ sudo -u hdfs hadoop fs -mkdir /user/spark
$ sudo -u hdfs hadoop fs -mkdir /user/spark/applicationHistory
$ sudo -u hdfs hadoop fs -chown -R spark:spark /user/spark
$ sudo -u hdfs hadoop fs -chmod 1777 /user/spark/applicationHistory

設定ファイル編集 /etc/spark/conf/spark-defaults.confを編集します。

spark.master            spark://Masterのホスト名:7077
spark.eventLog.enabled  true
spark.eventLog.dir      /user/spark/applicationHistory
spark.serializer        org.apache.spark.serializer.KryoSerializer

プロセス起動

Master起動

$ sudo /etc/init.d/spark-master start
Starting Spark master (spark-master):                      [  OK  ]

Worker起動

$ sudo /etc/init.d/spark-worker start
Starting Spark worker (spark-worker):                      [  OK  ]

GUI

http://masterのホスト名:18080

f:id:kashigeru:20140909223733j:plain

Workerが2台表示されていればOKです。

おまけ:トラブルシュート

・プロセス起動時に下記エラーが出て起動出来ない場合
spark-env.shのSTANDALONE_SPARK_MASTER_HOSTが設定されているか確認

ERROR remote.EndpointWriter: AssociationError

・Sparkアプリケーションを実行してもcompleted Applicationsに履歴が表示されない場合
spark-defaults.confがきちんと設定されているか確認(ホスト名、ポート番号等)

以上。今回はインストールのみでした。
次回は実際にSparkを実行して試してみます。
(ノ´▽`)ノ{+++THANK YOU+++}ヽ(´▽`ヽ)

Hadoop 第3版

Hadoop 第3版