5. 運用手順¶
5.1. GridData Analytics Studioの運用手順¶
本節では、GridData Analytics Studioの各運用方法の手順について説明します。 各コマンドの実行はgriddataユーザで行ってください。
5.1.2. Jupyterを停止する¶
以下のコマンドを実行することでJupyterの停止を行います
$ service jupyter stop
注釈
Jupyterの停止後、まれにJupyterが使用しているプロキシサーバが再起動する場合があります。 その場合、後にJupyterを起動または再起動した際に「Error 503: Proxy Target Missing. 」または 「Address already in use」と コンソール出力され、Jupyterが正常に起動しません。 その場合、一度Jupyterを停止したのち、以下のようにプロキシサーバのプロセスを停止してから 再度Jupyterを起動してください。
$ service jupyter stop
$ sudo pkill node
5.1.4. ユーザを追加する¶
ユーザ管理用のスクリプトを使用することで、新規ユーザの追加と設定を行います。 また、追加したユーザにサンプルデータを配布します。
使用例は以下の通りです。
$ cd /home/griddata/analytics
$ sh user.sh --add sampleuser1 password1
$ sh distribute_sample.sh -u sampleuser1
このとき、ユーザ管理用のスクリプトuser.shの主な仕様は以下の通りです。
sh user.sh [-a|–add|-d|–delete] <username> <password>
user.shはユーザ名とパスワードを指定することで、Jupyterで使用するユーザの追加または削除を行います。 ユーザを追加する場合は-aまたは–addを使用します。このとき、新規ユーザはlinuxユーザとして作成されます。
データ配布用のスクリプトdistribute_sample.shに関しては、 ノートブックやデータをユーザに配布する を参照してください。
5.1.5. ユーザを削除する¶
ユーザ管理用のスクリプトを使用し、ユーザの削除を行います。 使用例は以下の通りです。
$ cd /home/griddata/analytics
$ sh user.sh --delete sampleuser samplepassword
このとき、ユーザ管理用のスクリプトuser.shの主な仕様は以下の通りです。
sh user.sh [-a|–add|-d|–delete] <username> <password>
user.shはユーザ名とパスワードを指定することで、Jupyterで使用するユーザの追加または削除を行います。 ユーザを削除する場合は、-dまたは–deleteと指定することで、そのユーザとホームディレクトリを削除します。
注釈
ホームディレクトリを削除すると、ホームディレクトリ上にある、該当するユーザが作成したノートブックなどのファイルも削除されます。 ノートブックを残す場合、あらかじめ各ファイルを別ディレクトリに移動するか、 以下のようにuserdelコマンドを実行することで、ホームディレクトリを残してユーザを削除してください。
$ sudo userdel username
5.1.6. ノートブックやデータをユーザに配布する¶
ノートブック管理用のスクリプトを使用し、griddataユーザが持つノートブックや、ノートブックで使用するデータを、 サンプルとして各ユーザに配布することができます。
使用例は以下の通りです。
$ cd /home/griddata/analytics
$ sh distribute_sample.sh -u sampleuser1,sampleuser2 -n /home/griddata/notebookdir1
このとき、ノートブック管理用のスクリプトdistribute_sample.shの主な仕様は以下の通りです。
distribute_sample.sh [-u|–user] ユーザ名1,ユーザ名2,... [追加オプション [ディレクトリパス]]
distribute_sample.shは配布元のディレクトリにあるファイルを、指定した各ユーザの配布先のディレクトリに再帰的にコピーします。 デフォルトでは、配布元のディレクトリは/home/griddata/examples、 配布先のサンプルノートブック用ディレクトリとサンプルデータ用ディレクトリはそれぞれ /home/<ユーザ名>/examples、/home/<ユーザ名>/examples/dataとしてデータをコピーし配布します。 またコピーの際、同名のファイルがある場合は上書きします。
ファイルを上書きしない場合や配布元を変更する場合は、追加オプションを使用してください。 オプションの仕様は以下の通りです。
オプション | 必須 | 引数 | 説明 |
---|---|---|---|
-u|–user | ○ | user1,user2,... | 引数にファイルを配布するユーザを指定します。複数のユーザを指定する場合はコンマ区切りで指定します。 |
-d|–diff | - | - | 配布先に同名のファイルがある場合、上書きせずそのファイルを配布しません |
-n|–note | - | notebook_directory | 引数に配布元のディレクトリを指定します。指定されたディレクトリ以下にあるファイルを、再帰的に各ユーザのサンプルノートブック用ディレクトリにコピーします |
-f|–file | - | data_directory | 引数に配布元のディレクトリを指定します。指定されたディレクトリ以下にあるファイルを、再帰的に各ユーザのサンプルデータ用ディレクトリにコピーします |
5.1.7. Pythonライブラリを新規追加する¶
GridData Analytics Studioにすでにインストールされているライブラリに加え、 Pythonライブラリを新たにインストールすることができます。
インストールする場合は、griddataユーザにて以下の例のようにpip install コマンドを使用します。
$ pip install ライブラリ名
5.1.8. Pythonライブラリを削除する¶
既にインストールされたPythonライブラリを削除する場合、 以下の例のようにgriddataユーザにてpip uninstallコマンドを使用します。
$ pip uninstall ライブラリ名
5.1.9. Rライブラリを新規追加する¶
GridData Analyticsにインストールされているライブラリに加え、 新たにRライブラリをインストールすることができます。
インストールする場合、griddataユーザにて以下のようにRを起動したのち、install.packagesを実行します。
$ R
> install.packages("ライブラリ名", dependencies = TRUE)
5.1.10. Rライブラリを削除する¶
既にインストールされたRライブラリを削除する場合、griddataユーザにて以下のようにRを起動したのち、remove.packagesを実行します。
$ R
> remove.packages("ライブラリ名")
5.2. GridData Analytics Scale Serverの運用手順¶
5.2.1. HDFSクラスタを起動する¶
本項では、High Availability(自動フェイルオーバー)によるHDFSの2回目以降の起動方法について説明します。 各作業はgriddataユーザで実行します。また、初回起動時は 初期設定と起動 を参照してください。
(1)マスター・ノード(SERVER1)でHDFSを起動します。
$ start-dfs.sh
(2)Namenodeの状態を以下のコマンドで確認します。
$ hdfs haadmin -getServiceState namenode1
active
$ hdfs haadmin -getServiceState namenode2
standby
以上でHDFSの起動は完了です。 HDFSを停止する場合は、 HDFSクラスタを停止する をご参照ください。
5.2.2. HDFSクラスタを停止する¶
griddataユーザで実施します。
(1)マスター・サーバ(SERVER1)にてHDFSを停止します。
$ stop-dfs.sh
以上でHDFSの停止手順は完了です。
5.2.3. Sparkクラスタを起動する¶
本項では、クラスタの各マシンごとにSparkを起動する方法について説明します。 各作業はgriddataユーザで実施します。
(1)一台目のマスター・サーバ(SERVER1)でSparkのマスターを起動します。
$ $SPARK_HOME/sbin/start-master.sh
(2)スタンバイを行うマスター・サーバ(SERVER2)でSparkのマスターを起動します。
$ $SPARK_HOME/sbin/start-master.sh
(3)各サーバでSparkのスレーブを起動します。
$ $SPARK_HOME/sbin/start-slave.sh spark://SERVER1:7077,SERVER2:7077
(4)GridData Analytics StudioまたはGridData Analytics Serverの設定ファイルを修正する
GridData Analytics StudioまたはGridData Analytics Serverにて、 設定ファイルspark-env.shを編集し、SPARK_MASTER_HOSTの値を一台目のマスター・サーバのホスト名に変更します。
$ vi $SPARK_HOME/conf/spark-env.sh
……
(修正後)
SPARK_MASTER_HOST=SERVER1
以上でSparkクラスタの起動と設定は完了です。
5.2.4. Sparkクラスタを停止する¶
(1)マスター・サーバ(SERVER1)にてSparkを停止します。
$ $SPARK_HOME/sbin/stop-all.sh
以上でSparkクラスタの停止は完了です。
5.2.5. ZooKeeperを停止する¶
ZooKeeperの停止手順は以下の通りです。
(1)ZooKeeperを停止します。各サーバでそれぞれ実行します。
$ zkServer.sh stop
以上でZooKeeperの停止は完了です。
注釈
ZooKeeperはHDFSのNameNodeやSparkのマスターを二重化し、 HA(High Availability)の構成を行うための管理用ソフトフェアです。 そのため、HDFSやSparkが起動した状態でZooKeeperを停止することは避けてください。
5.2.6. クラスタのノードを縮退する¶
本項では各ノードの縮退手順について、SERVER3のノードを縮退する場合を例に説明します。 各作業はgriddataユーザーで行います。
■ 縮退の前準備
(1)hosts.excludeの修正
SERVER1(マスター・ノード)にログインし、エクスクルードファイル($HADOOP_HOME/conf/hosts.exclude)を編集します。 エクスクルードファイルがない場合、新たにファイルを作成してください。 hosts.excludeを開き、次のように縮退対象となるノード名(例:SERVER3)を記載します。
SERVER3
(2)hdfs-site.xmlの修正
この作業はScale Serverをインストールした全てのマシン上で行います。
HDFSの設定ファイル($HADOOP_HOME/conf/hdfs-site.xml)を確認・編集します。
hdfs-site.xmlを開き、HDFSのレプリケーション数のパラメーターの設定値(dfs.replication)を確認します。 もし、縮退したあとのDataNode数よりも大きな値になっている場合、縮退したあとのDataNode数以下の値に修正してください。 なお、dfs.replicationが記述されていない場合、レプリケーション数はデフォルト値の3となります。
■ Spark/HDFSノードを縮退させる
(1)HDFSクラスタに設定を反映する
マスター・ノード(SERVER1)にて、以下のようにノードのリフレッシュを行います
$ hadoop dfsadmin -refreshNodes
縮退するノード(SERVER3)にログインし、以下のようにDataNodeを停止します
$ hadoop-daemon.sh stop datanode
(2)Spark Workerを停止する
縮退するノード(SERVER3)にログインし、以下のようにSparkのWorkerを停止します。
$ $SPARK_HOME/sbin/stop-slave.sh
以上で縮退処理は完了です。
5.2.7. クラスタのノードを復帰する¶
本項では各ノードの復帰手順について、SERVER3のノードを復帰する場合を例に説明します。
■ 復帰の前準備
SERVER1にgriddataユーザーでログインをしたのち、 エクスクルードファイル($HADOOP_HOME/conf/hosts.exclude)内にあるSERVER3という記述を削除し、エクスクルードファイルの内容を空にします。
■ HDFSクラスタに設定を反映する
マスター・ノード(SERVER1)にて、エクスクルードファイルの編集結果を反映するため、次のようにしてHDFSのリフレッシュを行います。
$ hadoop dfsadmin -refreshNodes
■ DataNodeの復帰
復帰するノード(SERVER3)にてgriddataユーザーでログインをし、 次のようにDataNodeを起動し、また起動ができたことをプロセスから確認します。
$ hadoop-daemon.sh start datanode
$ jps
(中略)
XXX DataNode
■ Sparkの起動
SERVER3でSparkのスレーブを起動します。
$ $SPARK_HOME/sbin/start-slave.sh spark://SERVER1:7077,SERVER2:7077
以上でノードの復帰処理は完了です。
5.2.8. クラスタのノードを増設する¶
本項ではノードの増設手順について、新たにホスト名がSERVER4、IPアドレスが10.0.0.4のマシンをスレーブサーバとして増設する場合を例に説明します。
各作業はgriddataユーザで行います。
(1)ホスト名とIPの登録
Scale Serverの全てのマシンにて、 以下のコマンドを実行し、ホスト名とIPアドレスを/etc/hostsに登録します。
$ sudo echo '10.0.0.4 SERVER4' >> /etc/hosts
(2)hosts.includeの更新
Scale Serverの全てのマシンにて、インクルードファイル($HADOOP_HOME/conf/hosts.include)を開き、 次のように各マシンのホスト名を追記します
SERVER1
SERVER2
SERVER3
SERVER4
(2)slavesの更新
Scale Serverの全てのマシンにて、新たなスレーブサーバのホスト名を、 HadoopとSparkの設定ファイル(slaves)に登録します。
$ echo 'SERVER4' >> $HADOOP_HOME/conf/slaves
$ echo 'SERVER4' >> $Spark_HOME/conf/slaves
(3)DataNodeの起動
SERVER4にて以下のコマンドを実行します
$ hadoop-daemon.sh start datanode
(4)SparkのWorkerの起動
$ $SPARK_HOME/sbin/start-slave.sh spark://SERVER1:7077,SERVER2:7077
以上でノードの増設は完了です。
5.2.9. クラスタの特定のノードを除外する¶
本項ではノードの除外手順について、SERVER4のノードを除外する場合を例に説明します。
あらかじめ クラスタのノードを縮退する に基づき、ノードの縮退を行ってください。
(1)hosts.include、hosts.excludeの更新
SERVER4を除く全てのScale Serverにて、$HADOOP_HOME/confにある インクルードファイル(hosts.include)とエクスクルードファイル(hosts.exclude)からSERVER4の記述を削除します。
(2)slavesの更新
HadoopとSparkの設定ファイル($HADOOP_HOME/conf/slaves、$Spark_HOME/conf/slaves)から、 SERVER4の記述を削除します。
■ ノードのリフレッシュ
マスター・ノード(SERVER1)にて以下のコマンドを実行し、ノードのリフレッシュを行います。
$ hadoop dfsadmin -refreshNodes
以上でノードの除外処理は完了です。
5.2.10. 各プロセスを個別に起動・停止する¶
本項では、GridData Analytics Scale 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://SERVER1:7077,SERVER2:7077
マスター・ノードの場合は以下のコマンドを実行します。
$ $SPARK_HOME/sbin/start-master.sh
■ Sparkの停止
スレーブ・ノードの場合は以下のコマンドを実行します。
$ $SPARK_HOME/sbin/stop-slave.sh
マスター・ノードの場合は以下のコマンドを実行します。
$ $SPARK_HOME/sbin/stop-master.sh