4. 運用手順

4.1. HDFSクラスタを起動する

本項では、High Availability(自動フェイルオーバー)によるHadoopの2回目以降の起動方法について説明します。

初回起動時は 初期設定 および 動作確認 を参照してください。

(1)マスター・ノード(SPARK1)でHadoopを起動します。

$ start-dfs.sh

(2)Namenodeの状態を確認します。

$ hdfs haadmin -getServiceState namenode1
active
$ hdfs haadmin -getServiceState namenode2
standby

以上でHadoopの起動は完了です。 Hadoopを停止する場合は、  HDFSクラスタを停止する をご参照ください。

4.2. HDFSクラスタを停止する

griddataユーザで実施します。

(1)マスター・サーバ(SPARK1)にてHDFSを停止します。

$ stop-dfs.sh

以上でHDFSの停止手順は完了です。

4.3. Sparkクラスタを起動する

本項では、クラスタの各マシンごとにSparkを起動する方法について説明します。 各作業はgriddataユーザで実施します。

(1)マスター・サーバ(SPARK1)でSparkのマスターを起動します。

$ $SPARK_HOME/sbin/start-master.sh

(2)スタンバイを行うサーバ(例:SPARK2)でSparkのマスターを起動します。

$ $SPARK_HOME/sbin/start-master.sh

(3)各サーバでSparkのスレーブを起動します。

$ $SPARK_HOME/sbin/start-slave.sh spark://SPARK1:7077,SPARK2:7077

以上でSparkクラスタの起動は完了です。

4.4. Sparkクラスタを停止する

  1. マスター・サーバにてSparkを停止します。
$ $SPARK_HOME/sbin/stop-all.sh

以上でSparkクラスタの停止は完了です。

4.5. ZooKeeperを停止する

ZooKeeperの停止手順は以下の通りです。

(1)ZooKeeperを停止します。各サーバでそれぞれ実行します。

$ zkServer.sh stop

以上でZooKeeperの停止は完了です。

注釈

ZooKeeperはHDFSのNameNodeやSparkのマスターを二重化し、 HA(High Availability)の構成を行う際の管理用ソフトフェアです。 そのため、HDFSやSparkが起動した状態でZooKeeperを停止することは避けてください。

4.6. クラスタのノードを縮退する

本項では各ノードの縮退手順について、SPARK3のノードを縮退する場合を例に説明します。 各作業はgriddataユーザーで行います。

■ 縮退の前準備

(1)hosts.excludeの修正

SPARK1(マスター・ノード)にログインし、エクスクルードファイル($HADOOP_HOME/conf/hosts.exclude)を作成します。 エクスクルードファイルがない場合、新たにファイルを作成してください。 hosts.excludeを開き、次のように縮退対象となるノード名(例:SPARK3)を記載します。

SPARK3

(2)hdfs-site.xmlの修正

この作業はLake Serverをインストールした全てのマシン上で行います。

HDFSの設定ファイル($HADOOP_HOME/conf/hdfs-site.xml)を確認・編集します。

hdfs-site.xmlを開き、HDFSのレプリケーション数のパラメーターの設定値(dfs.replication)を確認します。 もし、縮退したあとのDataNode数よりも大きな値になっている場合、縮退したあとのDataNode数以下の値に修正してください。 なお、dfs.replicationが記述されていない場合、デフォルト値の3となります。

■ Spark/HDFSノードを縮退させる

(1)HDFSクラスタに設定を反映する

マスター・ノード(SPARK1)にて、以下のようにノードのリフレッシュを行います

$ hadoop dfsadmin -refreshNodes

縮退するノード(SPARK3)にログインし、以下のようにDataNodeを停止します

$ hadoop-daemon.sh stop datanode

(2)Spark Workerを停止する

縮退するノード(SPARK3)にログインし、以下のようにSparkのWorkerを停止します。

$ $SPARK_HOME/sbin/stop-slave.sh

以上で縮退処理は完了です。

4.7. クラスタのノードを復帰する

本項では各ノードの復帰手順について、SPARK3のノードを復帰する場合を例に説明します。

■ 復帰の前準備

SPARK1にgriddataユーザーでログインをしたのち、 エクスクルードファイル($HADOOP_HOME/conf/hosts.exclude)内にあるSPARK3という記述を削除し、エクスクルードファイルの内容を空にします。

■ HDFSクラスタに設定を反映する

マスター・ノード(SPARK1)にて、エクスクルードファイルの編集結果を反映するため、次のようにしてHDFSのリフレッシュを行います。

$ hadoop dfsadmin -refreshNodes

■ DataNodeの復帰

復帰するノード(SPARK3)にてgriddataユーザーでログインをし、 次のようにDataNodeを起動し、また起動ができたことをプロセスから確認します。

$ hadoop-daemon.sh start datanode
$ jps
(中略)
XXX DataNode

■ Sparkの起動

SPARK3でSparkを起動します。

$ $SPARK_HOME/sbin/start-slave.sh spark://SPARK1:7077,SPARK2:7077

以上でノードの復帰処理は完了です。

4.8. クラスタのノードを増設する

本項ではノードの増設手順について、ホスト名SPARK4、IPアドレスが10.0.0.4のマシンをスレーブサーバとして増設する場合を例に説明します。

各作業はgriddataユーザで行います。

(1)ホスト名とIPの登録

Lake Serverの全てのマシンにて、 以下のコマンドを実行し、ホスト名とIPアドレスを各マシンに登録します。

$ sudo echo '10.0.0.4    SPARK4' >> /etc/hosts

(2)hosts.includeの更新

Lake Serverの全てのマシンにて、インクルードファイル($HADOOP_HOME/conf/hosts.include)を開き、 次のように各マシンのホスト名を追記します

SPARK1
SPARK2
SPARK3
SPARK4

(2)slavesの更新

Lake Serverの全てのマシンにて、新たなスレーブサーバのホスト名を、 HadoopとSparkの設定ファイル(slaves)に登録します。

$ echo 'SPARK4' >> $HADOOP_HOME/conf/slaves
$ echo 'SPARK4' >> $Spark_HOME/conf/slaves

(3)DataNodeの起動

SPARK4にて以下のコマンドを実行します

$ hadoop-daemon.sh start datanode

(4)SparkのWorkerの起動

$ $SPARK_HOME/sbin/start-slave.sh spark://SPARK1:7077,SPARK2:7077

以上でノードの増設は完了です。

4.9. クラスタの特定のノードを除外する

本項ではノードの除外手順について、SPARK4のノードを除外する場合を例に説明します。

あらかじめ degenerate-node を元に、ノードの縮退を行ってください。

(1)hosts.include、hosts.excludeの更新

SPARK4を除く全てのLake Serverにて、$HADOOP_HOME/confにある インクルードファイル(hosts.include)とエクスクルードファイル(hosts.exclude)からSPARK4の記述を削除します。

(2)slavesの更新

HadoopとSparkの設定ファイル($HADOOP_HOME/conf/slaves、$Spark_HOME/conf/slaves)から、 SPARK4の記述を削除します。

■ ノードのリフレッシュ

マスター・ノードにて以下のコマンドを実行し、ノードのリフレッシュを行います。

$ hadoop dfsadmin -refreshNodes

以上でノードの除外処理は完了です。

4.10. 各プロセスを個別に起動・停止する

本項では、GridData Lake Server上で動作する 個別のプロセスの起動と停止方法について紹介します。各作業はgriddataユーザで行ってください。

■ DataNodeの起動

マスター・ノード、スレーブ・ノード共通です。

$ hadoop-daemon.sh start datanode

■ DataNodeの停止

マスター・ノード、スレーブ・ノード共通です。

$ hadoop-daemon.sh stop datanode

■ HDFSの起動

マスター・サーバでのみ実行します。

$ start-dfs.sh

■ HDFSの停止

マスター・サーバでのみ実行します。

$ stop-dfs.sh

■ Sparkの起動

スレーブ・ノードの場合は以下のコマンドを実行します。

# su - griddata
$ $SPARK_HOME/sbin/start-slave.sh spark://SPARK1:7077

マスター・ノードの場合は以下のコマンドを実行します。

$ $SPARK_HOME/sbin/start-master.sh

■ Sparkの停止

スレーブ・ノードの場合は以下のコマンドを実行します。

$ $SPARK_HOME/sbin/stop-slave.sh

マスター・ノードの場合は以下のコマンドを実行します。

$ $SPARK_HOME/sbin/stop-master.sh

4.11. Fluentdサーバを起動・停止・再起動する

  • Fluentdサーバを起動する
以下のコマンドを実行します。
$ service flentd-server start
  • Fluentdサーバを停止する
以下のコマンドを実行します。
$ service flentd-server stop
  • Fluentdサーバを再起動する
以下のコマンドを実行します。
$ service flentd-server restart

4.12. Embulkサーバを起動・停止・再起動する

  • Embulkサーバを起動する
以下のコマンドを実行します。
$ service embulk-server start
  • Embulkサーバを停止する
以下のコマンドを実行します。
$ service embulk-server stop
  • Embulkサーバを再起動する
以下のコマンドを実行します。
$ service embulk-server restart

4.13. Fluentdサーバの設定を変更する

Fluentdサーバの設定を変更する場合、以下の設定ファイルを編集してください。

/home/griddata/lake/fluentd.properties

また設定の変更後、Fluentdサーバが起動中の場合は、サーバを再起動してください。 設定ファイルの詳細については、 付録 を参照してください。

4.14. Embulkサーバの設定を変更する

Embulkサーバの設定を変更する場合、以下の設定ファイルを編集してください。

/home/griddata/lake/embulk.properties

また設定の変更後、Embulkサーバが起動中の場合は、サーバを再起動してください。 設定ファイルの詳細については、 付録 を参照してください。