各サーバのセットアップ完了後に、全サーバに関わるセットアップ作業について説明します。
特に説明のない処理はすべてroot権限で実施します。
セットアップ作業 | サーバ種別 | |||
---|---|---|---|---|
マスタサーバ | スレーブ | 開発実行 | ||
プライマリ | セカンダリ | |||
○ | ○ | - | - | |
○ | ○ | - | ○ | |
○ | ○ | ○ | ○ | |
○ | ○ | - | - | |
○ | ○ | - | - | |
○ | ○ | - | - | |
○ | ○ | - | - | |
○ | ○ | - | - | |
○ | ○ | - | - |
○:作業あり
-:作業なし
マスタサーバのhdfsユーザー、yarnユーザーから各サーバにsshパスワードなしssh通信の設定を行います。
マスタサーバ(プライマリ)およびマスタサーバ(セカンダリ)において、それぞれ公開鍵を作成して各ユーザーからパスワードなしでssh接続できるように設定します。
マスタサーバ(プライマリ)およびマスタサーバ(セカンダリ)にて以下を実施してください。
hdfsユーザーのsshパスフレーズなし接続の設定
以下の例を参照して設定を実施しください。
例
以下の実行例に指定しているmaster1、master2、developはマスタサーバ(プライマリ)、マスタサーバ(セカンダリ)、各スレーブサーバ、および開発実行環境サーバのホスト名です。“4.1.2.5 ホスト名の設定”で設定した各サーバのホスト名に読み替えてください。
master1:マスタサーバ(プライマリ)ホスト名
master2:マスタサーバ(セカンダリ)ホスト名
slave1~slvae5:スレーブサーバホスト名
develop:開発実行環境サーバホスト名
以下のように実行します。
# sudo -i -u hdfs ssh-keygen <Enter> # sudo -i -u hdfs ssh-copy-id master1 <Enter> # sudo -i -u hdfs ssh-copy-id master2 <Enter> # sudo -i -u hdfs ssh-copy-id develop <Enter> # sudo -i -u hdfs ssh-copy-id slave1 <Enter> # sudo -i -u hdfs ssh-copy-id slave2 <Enter> # sudo -i -u hdfs ssh-copy-id slave3 <Enter> # sudo -i -u hdfs ssh-copy-id slave4 <Enter> # sudo -i -u hdfs ssh-copy-id slave5 <Enter>
yarnユーザーのsshパスフレーズなし接続の設定
以下の例を参照して設定を実施しください。
例
以下の実行例に指定しているmaster1、master2、developはマスタサーバ(プライマリ)、マスタサーバ(セカンダリ)、各スレーブサーバ、および開発実行環境サーバのホスト名です。“4.1.2.5 ホスト名の設定”で設定した各サーバのホスト名に読み替えてください。
master1:マスタサーバ(プライマリ)ホスト名
master2:マスタサーバ(セカンダリ)ホスト名
slave1~slvae5:スレーブサーバホスト名
develop:開発実行環境サーバホスト名
以下のように実行します。
# sudo -i -u yarn ssh-keygen <Enter> # sudo -i -u yarn ssh-copy-id master1 <Enter> # sudo -i -u yarn ssh-copy-id master2 <Enter> # sudo -i -u yarn ssh-copy-id develop <Enter> # sudo -i -u yarn ssh-copy-id slave1 <Enter> # sudo -i -u yarn ssh-copy-id slave2 <Enter> # sudo -i -u yarn ssh-copy-id slave3 <Enter> # sudo -i -u yarn ssh-copy-id slave4 <Enter> # sudo -i -u yarn ssh-copy-id slave5 <Enter>
参照
ssh-keygenコマンドの詳細については、各オンラインマニュアルページを参照してください。
Apache ZooKeeperを以下の手順で初期化します。
Apache ZooKeeperを起動します。
マスタサーバ(プライマリ)、マスタサーバ(セカンダリ)、開発実行環境サーバ機能で、以下を実行してApache ZooKeeperを起動してください。
# sudo -i -u zookeeper /opt/FJSVbsb/bdpp/engine/zookeeper/bin/zkServer.sh start <Enter>
Apache ZooKeeperを初期化します。
マスタサーバ(プライマリ)で以下を実行してApache ZooKeeperの初期化を実行してください。
# sudo -i -u hdfs hdfs zkfc -formatZK <Enter>
Hadoop運用ディレクトリを以下の手順で作成、権限設定を行います。
NameNode、DataNode、JournalNodeのデータ格納用ディレクトリの権限を変更します。
マスタサーバ(プライマリ)、マスタサーバ(セカンダリ)、スレーブサーバ、開発実行環境サーバで、以下を実行してデータ格納用ディレクトリの権限をhdfsユーザーからアクセス可能にします。
# mkdir -p /var/opt/FJSVbsb/bdpp/hdfs <Enter> # chown hdfs:hadoop /var/opt/FJSVbsb/bdpp/hdfs <Enter>
NameNode、DataNode、JournalNodeのログ格納用ディレクトリの作成、権限を変更します。
マスタサーバ(プライマリ)、マスタサーバ(セカンダリ)、スレーブサーバ、開発実行環境サーバで、以下を実行してログ格納用ディレクトリの作成、およびディレクトリの権限をhdfsユーザーらアクセス可能にします。
# mkdir -p /var/opt/FJSVbsb/bdpp/log/hadoop/hdfs <Enter> # chown hdfs:hadoop /var/opt/FJSVbsb/bdpp/log/hadoop/hdfs <Enter>
NameNode チェックポイント用ディレクトリの作成、権限を設定します。
マスタサーバ(プライマリ)、マスタサーバ(セカンダリ)で、以下を実行してNameNode チェックポイント用ディレクトリの作成、およびディレクトリの権限をhdfsユーザーからアクセス可能にします。
# mkdir -p /var/opt/FJSVbsb/bdpp/hdfs/namesecondary <Enter> # chown hdfs:hadoop /var/opt/FJSVbsb/bdpp/hdfs/namesecondary <Enter>
Hadoopの一時作業用ディレクトリの作成、権限を設定します。
マスタサーバ(プライマリ)、マスタサーバ(セカンダリ)、スレーブサーバ、開発実行環境サーバで、以下を実行してHadoopの一時作業用ディレクトリの作成、およびディレクトリの権限をhdfsユーザーからアクセス可能にします。
# mkdir -p /var/opt/FJSVbsb/bdpp/tmp <Enter> # chown hdfs:hadoop /var/opt/FJSVbsb/bdpp/tmp <Enter>
HDFS PID 用ディレクトリの権限を変更します。
マスタサーバ(プライマリ)、マスタサーバ(セカンダリ)、スレーブサーバ、開発実行環境サーバで、以下を実行してHDFS PID 用ディレクトリの権限をhdfsユーザーからアクセス可能にします。
# chown hdfs:hadoop /var/opt/FJSVbsb/bdpp/pid/hadoop <Enter>
NameNodeを以下の手順で初期化し、HDFSを起動します。
HDFSを起動します。
マスタサーバ(プライマリ)で、以下を実行してHDFSを起動してください。
# sudo -i -u hdfs /opt/FJSVbsb/bdpp/engine/hadoop/sbin/start-dfs.sh <Enter>
NameNodeを初期化します。
マスタサーバ(プライマリ)で以下を実行してNameNodeの初期化を実行してください。
# sudo -i -u hdfs hdfs namenode -format <Enter>
HDFSを再起動します。
マスタサーバ(プライマリ)で、以下を実行してHDFSを起動してください。
# sudo -i -u hdfs /opt/FJSVbsb/bdpp/engine/hadoop/sbin/stop-dfs.sh <Enter> # sudo -i -u hdfs /opt/FJSVbsb/bdpp/engine/hadoop/sbin/start-dfs.sh <Enter>
マスタサーバ(セカンダリ)上のNameNodeをStandby状態で起動可能とします。
マスタサーバ(セカンダリ)で、以下を実行してNameNodeの起動設定を行います。
# sudo -i -u hdfs hdfs namenode -bootstrapStandby <Enter>
マスタサーバ(セカンダリ)上でNameNodeを起動します。
マスタサーバ(セカンダリ)で、以下を実行してNameNodeを起動してください。
# sudo -i -u hdfs /opt/FJSVbsb/bdpp/engine/hadoop/sbin/hadoop-daemon.sh start namenode <Enter>
NameNodeの起動状態を確認します。
マスタサーバ(プライマリ)で、以下を実行してマスタサーバ(プライマリ)、マスタサーバ(セカンダリ)のNameNodeが起動していることを確認してください。
以下で指定するnn1、nn2 はNameNodeのIDです。以下が表示されることを確認してください。
# sudo -i -u hdfs hdfs haadmin -getServiceState nn1 <Enter> active # sudo -i -u hdfs hdfs haadmin -getServiceState nn2 <Enter> standby
スレーブサーバが認識されているか、以下の手順で確認します。
スレーブサーバが認識されているか確認します。
マスタサーバ(プライマリ)で、以下を実行してスレーブサーバが認識されているか確認します。
表示された各スレーブサーバのDecommission StatusがNormalになっていれば正常に認識されています。
以下の実行例は以下のスレーブサーバ(slave1~slvae2)を定義した場合です。
# sudo -i -u hdfs hdfs dfsadmin -report <Enter> Configured Capacity: 70244081664 (65.42 GB) Present Capacity: 70244081664 (65.42 GB) DFS Used: 8192 (8 KB) DFS Used%: 0.00 Under replicated blocks: 0 Blocks with corrupt replicas: 0 Missing blocks: 0 Missing blocks (with replication factor 1): 0 ------------------------------------------------- Live datanodes (2) Name: 10.10.10.22:50010 (slave2) Hostname: slave2 Decommission Status : Normal Configured Capacity: 35122040832 (32.71 GB) DFS Used: 4096 (4 KB) Non DFS Used: 0 (0 B) DFS Remaining: 35122036736 (32.71 GB) DFS Used%: 0.00% DFS Remaining%: 100.00% Configured Cache Capacity: 0 (0 B) Cache Used: 0 (0 B) Cache Remaining: 0 (0 B) Cache Used%: 100.00% Cache Remaining%: 0.00% Xceivers: 1 Last contact: Wed Sep 12 12:55:20 JST 2018 Name: 10.10.10.21:50010 (slave1) Hostname: slave1 Decommission Status : Normal Configured Capacity: 35122040832 (32.71 GB) DFS Used: 4096 (4 KB) Non DFS Used: 0 (0 B) DFS Remaining: 35122036736 (32.71 GB) DFS Used%: 0.00% DFS Remaining%: 100.00% Configured Cache Capacity: 0 (0 B) Cache Used: 0 (0 B) Cache Remaining: 0 (0 B) Cache Used%: 100.00% Cache Remaining%: 0.00% Xceivers: 1 Last contact: Wed Sep 12 12:55:20 JST 2018
Spark ログディレクトリを以下の手順で作成、権限設定を行います。
Sparkのログ格納用ディレクトリの権限を変更します。
マスタサーバ(プライマリ)で以下を実行してログ格納用ディレクトリの権限を設定します。
# sudo -i -u yarn hadoop fs -mkdir -p /history/done/spark <Enter> # sudo -i -u yarn hadoop fs -chmod 777 /history/done/spark <Enter> # sudo -i -u yarn hadoop fs -chmod 777 /history/done <Enter> # sudo -i -u yarn hadoop fs -chmod 777 /history <Enter>
集計ログディレクトリを以下の手順で作成、権限設定を行います。
集計ログ格納用ディレクトリの権限を変更します。
マスタサーバ(プライマリ)で以下を実行してログ格納用ディレクトリの権限を設定します。
# sudo -i -u yarn hadoop fs -mkdir -p /history/done/yarn <Enter> # sudo -i -u yarn hadoop fs -chmod 777 /history/done/yarn <Enter> # sudo -i -u hdfs hadoop fs -mkdir -p /user/history <Enter> # sudo -i -u hdfs hadoop fs -chown hadoop:yarn /user/history <Enter> # sudo -i -u hdfs hadoop fs -chmod 777 /user/history <Enter>
HDFS上にジョブ実行ユーザーのホームディレクトリを以下の手順で作成、権限設定を行います。
ジョブ実行ユーザーのホームディレクトリを作成、権限変更します。
マスタサーバ(プライマリ)で以下を実行してアプリ実行ユーザーのホームディレクトリを作成、権限します。
ホームディレクトリ作成は、bdpp.confのBDPP_HADOOP_DEFAULT_USERSパラメーターに指定したユーザーすべてに実施してください。
また、ディレクトリへのグループ権限設定は、bdpp.confのBDPP_HADOOP_DEFAULT_GROUPパラメーターに指定したグループを指定してください
実行例は以下を定義した場合です。
BDPP_HADOOP_DEFAULT_USERS:bdppuser1,1500
BDPP_HADOOP_DEFAULT_GROUP:bdppgroup,1500
# sudo -i -u hdfs hadoop fs -mkdir -p /user/bdppuser1 <Enter> # sudo -i -u hdfs hadoop fs -chown bdppuser1:bdppgroup /user/bdppuser1 <Enter> # sudo -i -u hdfs hadoop fs -chmod 777 /user <Enter>
Group、Permission は、利用環境に応じて適切に設定してください。
ResourceManager/NodeManagerを以下の手順で起動します。
マスタサーバ(プライマリ)でResourceManager/NodeManagerを起動します。
マスタサーバ(プライマリ)で、以下を実行してマスタサーバ(プライマリ)上でResourceManager、スレーブサーバ上でNodeManagerを起動してください。
# sudo -i -u yarn /opt/FJSVbsb/bdpp/engine/hadoop/sbin/start-yarn.sh <Enter>
マスタサーバ(セカンダリ)でResourceManagerを起動します。
マスタサーバ(セカンダリ)で、以下を実行してマスタサーバ(セカンダリ)上でResourceManagerを起動してください。
# sudo -i -u yarn /opt/FJSVbsb/bdpp/engine/hadoop/sbin/yarn-daemon.sh start resourcemanager <Enter>
ResourceManagerの起動状態を確認します。
マスタサーバ(プライマリ)で、以下を実行してマスタサーバ(プライマリ)、マスタサーバ(セカンダリ)のResourceManagerが起動していることを確認してください。
以下で指定するrm1、rm2 はResourceManagerのIDです。以下が表示されることを確認してください。
# sudo -i -u yarn yarn rmadmin -getServiceState rm1 <Enter> active # sudo -i -u yarn yarn rmadmin -getServiceState rm2 <Enter> standby
YARNの状態表示で、対象のスレーブサーバの情報が表示されていることを確認します。
# sudo -i -u yarn yarn node -list <Enter> Total Nodes:2 Node-Id Node-State Node-Http-Address Number-of-Running-Containers slave1:33719 RUNNING slave1:8042 0 slave2:36104 RUNNING slave2:8042 0