LoginSignup
4
2

More than 5 years have passed since last update.

【Sparkクラスタ構築】Standaloneクラスタ稼働環境を構築します

Last updated at Posted at 2019-03-28

1.構成図

本投稿で、下記の構造ようなStandaloneクラスターの環境を構築します。

  • マスタの構成
    • Master: 192.168.0.100
  • ワーカノードの構成
    • Worker1: 192.168.0.101
    • Worker2: 192.168.0.102

2.SSH接続の確認

※私のそのたの投稿【SSH接続時パスワードなしでSSH接続の設定方法】を参照してください。

3.Hosts設定の確認

3.1.Master

Master上で、「/etc/hosts」ファイルの一番下に、以下の情報を追加します。

192.168.0.100 cluster-master
192.168.0.102 cluster-slave1
192.168.0.101 cluster-slave2

3.2.Slave1

Slave1上で、「/etc/hosts」ファイルの一番下に、以下の情報を追加します。

192.168.0.100 cluster-master
192.168.0.101 cluster-slave2

3.3.Slave2

Slave2上で、「/etc/hosts」ファイルの一番下に、以下の情報を追加します。

192.168.0.100 cluster-master
192.168.0.102 cluster-slave1

4.Sparkのインストール

4.1.Master

以下のようにSparkのインストールを行います。

# sparkダウンロード
cd /usr/work
wget http://ftp.jaist.ac.jp/pub/apache/spark/spark-2.3.2/spark-2.3.2-bin-hadoop2.7.tgz
tar zxvf spark-2.3.2-bin-hadoop2.7.tgz
# 移動
sudo mv spark-2.3.2-bin-hadoop2.7 /usr/local/lib/spark-2.3.2-bin-hadoop2.7
cd /usr/local/lib/
sudo ln -s spark-2.3.2-bin-hadoop2.7 spark

「/etc/profile.d」の下に、「spark.sh」ファイルを作り、SPARK_HOMEなどの環境変数を設定します。

# spark.sh作成
cd /etc/profile.d
vi spark.sh
# 以下の変数を追加、保存
export SPARK_HOME=/usr/local/lib/spark
export PATH=$SPARK_HOME/bin:$SPARK_HOME/sbin:$PATH
# 有効化
source spark.sh

4.2.Slave1

以下のようにSparkをインストールします。

# sparkダウンロード
cd /usr/work
wget http://ftp.jaist.ac.jp/pub/apache/spark/spark-2.3.2/spark-2.3.2-bin-hadoop2.7.tgz
tar zxvf spark-2.3.2-bin-hadoop2.7.tgz
# 移動
sudo mv spark-2.3.2-bin-hadoop2.7 /usr/local/lib/spark-2.3.2-bin-hadoop2.7
cd /usr/local/lib/
sudo ln -s spark-2.3.2-bin-hadoop2.7 spark

SPARK_HOMEなどの環境変数を設定するファイルを作ります。

# spark.sh作成
cd /etc/profile.d
vi spark.sh
# 以下の変数を追加、保存
export SPARK_HOME=/usr/local/lib/spark
export PATH=$SPARK_HOME/bin:$SPARK_HOME/sbin:$PATH
# 有効化
source spark.sh

4.3.Slave2

以下のようにSparkをインストールします。

# sparkダウンロード
cd /usr/work
wget http://ftp.jaist.ac.jp/pub/apache/spark/spark-2.3.2/spark-2.3.2-bin-hadoop2.7.tgz
tar zxvf spark-2.3.2-bin-hadoop2.7.tgz
# 移動
sudo mv spark-2.3.2-bin-hadoop2.7 /usr/local/lib/spark-2.3.2-bin-hadoop2.7
cd /usr/local/lib/
sudo ln -s spark-2.3.2-bin-hadoop2.7 spark

SPARK_HOMEなどの環境変数を設定するファイルを作ります。

# spark.sh作成
cd /etc/profile.d
vi spark.sh
# 以下の変数を追加、保存
export SPARK_HOME=/usr/local/lib/spark
export PATH=$SPARK_HOME/bin:$SPARK_HOME/sbin:$PATH
# 有効化
source spark.sh

5.Standaloneに必要な環境変数の設定

5.1.Master

「/usr/local/lib/spark/conf」に移動して、以下のファイルを編集します。
Slaveの実際のメモリー容量とCPUのコア数により、パラメータを編集します。

spark.executor.memory 2g
spark.executor.instances 1
spark.executor.cores 2

パラメータの意味

オプション 説明
spark.executor.memory Executorに配布されるメモリーの容量(< Workerの空きのメモリ量)
spark.executor.instances Standalone上には、1しか設定できない
spark.executor.cores Executorに配布されるコア数(< ワーカーの実際のコア数)

「spark-env.sh」に、Masterのホストとポートを設定します。

export SPARK_MASTER_HOST=192.168.0.100
export SPARK_MASTER_PORT=7077

「slaves.sh」に、全てのSlaveのIP追加します。

192.168.0.101
192.168.0.102

5.2.Slave

Masterで設定済の「spark-defaults.conf」、「spark-env.sh」、「slaves.sh」ファイルをSlave1とSlave2の同じのフォルダーの配下にコピーしてください。

6.Standaloneの起動と状態確認

Master側で、StandaloneのMasterサービスとWorkerサービスを起動します。

# Master起動
start-master.sh
# Slave起動
start-slaves.sh

Master側で、Masterサービスの状態を確認します。

# Masterサービスの起動状態確認
jps
# 以下の情報が表示されたらMasterサービスが起動済です
XXXX Jps
XXXX Master

Slave1とSlave2側で、それぞれのWorkerサービスの状態を確認します。

# Workerサービス状態確認
jps
# 以下の情報が表示されたらMasterサービスが起動済です
XXXX Jps
XXXX Worker

WebUIで、StandaloneのMasterとWorkerの状態も確認できます。
MasterとWorkerサービスが正常に起動されたら、SparkクラスタのWebUI【http://192.168.0.100:8080】からMasterと各Workerの情報が確認できます。

7.Standaloneの停止と状態確認

Master側で、StandaloneのMasterサービスとWorkerサービスを停止します。

# MasterとSlaveを全部停止
start-master.sh
start-slaves.sh
# Masterサービスの状態確認
jps
XXXX Jps

Masterが表示されなければMastersサービスが停止されたはず(Slaveの停止も同じ方法でやってください)

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2