データ管理機能の並列分散処理をインストールする前の準備作業について説明します。
各サーバで必要な作業を以下に示します。
設定順序/設定項目 | サーバ種別 | ||||
---|---|---|---|---|---|
マスタサーバ | スレーブ | 開発実行 | |||
プライマリ | セカンダリ | ||||
1 | ○ | ○ | ○ | ○ | |
2 | ○ | ○ | ○ | ○ | |
3 | ○ | ○ | ○ | ○ | |
4 | ○ | ○ | ○ | ○ | |
5 | ○ | ○ | ○ | ○ | |
6 | ○ | ○ | ○ | ○ | |
7 | ○ | ○ | ○ | ○ | |
8 | ○ | ○ | ○ | ○ | |
9 | ○ | ○ | ― | ― | |
10 | ○ | ○ | ○ | ○ | |
11 | ○ | ○ | ○ | ○ |
○:作業あり
―:作業無し
各サーバのBOS設定を以下のように設定する必要があります。
マスタサーバ、スレーブサーバ、および開発実行環境サーバのハイパースレッディング機能を無効化してください。
ポイント
ハイパースレッディング機能によってパフォーマンスが向上することは、必ずしも保証されていません。そのため、本機能ではハイパースレッディングを無効にした条件下で Apache Hadoopのパラメーターを最適化します。
Apache Hadoopのパラメーターの詳細は、“分散処理編 ユーザーズガイド”の“Hadoop設定パラメーター”を参照してください。
仮想環境に導入する場合は、ホストマシンのシステム BIOS を設定します。
SELinux(Security-Enhanced Linux)機能が有効に設定されている Linux 環境には、本機能をインストールすることができません。
本機能をインストールするには、SELinux 機能を無効に設定してから、本機能をインストールしてください。
参照
SELinux機能を無効に設定する方法は、Linuxのオンラインマニュアルなどを参照してください。
システムパラメーターのチューニングを行う必要があります。
以下の手順でシステムパラメーターのチューニングを実施してください。
以下のコマンドを使用して、現在システムに設定されている該当するパラメーターの設定値を確認します。
# /sbin/sysctl -a <Enter>
例
# /sbin/sysctl -a <Enter> ・・・ 省略 ・・・ kernel.sem = 250 32000 32 128 kernel.msgmnb = 4194304 kernel.msgmni = 8192 kernel.msgmax = 65536 kernel.shmmni = 4096 kernel.shmall = 4294967296 kernel.shmmax = 68719476736 ・・・ 省略 ・・・
“3.1.1.3.5 システムパラメーター”を参照し、現在の設定値と比較を行い、パラメーターごとに最大/加算の種別を考慮して、適切な設定値を算出します。
ポイント
パラメーターの “種別”により、以下のように設定してください。
種別が“最大”の場合
すでに設定されている値(初期値または以前の設定値)がパラメーターの“設定値(チューニング値)”以上の場合は変更不要です。チューニング値より小さい場合は、チューニング値に変更してください。
種別が“加算” の場合
すでに設定されている値(初期値または以前の設定値)にパラメーターの“設定値(チューニング値)”を加算してください。加算する前にシステム上限値を確認し、加算した値がシステム上限値を超える場合は、システム上限値を設定してください。
詳細については、OSのマニュアルなどを参照してください。
/etc/sysctl.conf を編集します。以下の例のように編集します。
例
kernel.sem = 250 32011 32 130 kernel.shmmni = 4096 kernel.msgmnb = 4194304 kernel.msgmni = 8192
/etc/sysctl.conf へ編集内容が反映されていることを、以下のコマンドで確認します。
# /bin/cat /etc/sysctl.conf <Enter>
3.の設定を有効にするために、次のどちらかの方法を実行します。
システムを再起動して設定を反映
# /sbin/shutdown -r now <Enter>
/sbin/sysctl -p を使用して設定を反映
# /sbin/sysctl -p /etc/sysctl.conf <Enter> (注)
注) このコマンドを使用した場合は、システムの再起動は必要ありません。
設定したシステムパラメーターが反映されていることを、以下のコマンドの出力で確認します。
# /sbin/sysctl -a <Enter>
例
# /sbin/sysctl -a <Enter> ・・・ 省略 ・・・ kernel.sem = 250 32002 32 130 kernel.msgmnb = 4194304 kernel.msgmni = 8192 kernel.msgmax = 65536 kernel.shmmni = 4096 kernel.shmall = 4294967296 kernel.shmmax = 68719476736 ・・・ 省略 ・・・
ファイアーウォール機能を利用している環境に本機能をインストールする場合には、ファイアーウォール機能に対して必要な通信(ポート)を許可する必要があります。
ファイアーウォール機能に対して必要な通信(ポート)を許可する方法については、OSのマニュアルを参照してください。
本機能が使用するポートについては、“分散処理編 ユーザーズガイド”の“ポート一覧”を参照し、接続を許可する必要があります。
マスタサーバ、スレーブサーバおよび開発実行環境サーバにおいて、Apache Hadoopで使用するホスト名の設定が必要です。hostsファイルに、各サーバの業務 LAN に接続するNICに対応するホスト名を記述してください。
/etc/hosts
hostsファイルの詳細については、オンラインマニュアルページを参照してください。
ポイント
マスタサーバを二重化構成とする場合は、マスタサーバ(プライマリ)とマスタサーバ(セカンダリ)のhostsファイルの内容を一致させてください。
スレーブサーバ、開発実行環境サーバのhostsファイルに記述するホスト情報は、マスタサーバで追加したホスト名を設定してください。
マスタサーバ、スレーブサーバ、および開発実行環境サーバの業務 LAN に接続するNICに対応するホスト名は、サーバ名と一致させてください。詳しくは、“4.1.2.6 サーバ名の設定”を参照してください。
注意
hosts ファイルにローカルホストを登録する場合、以下に注意してください。
“127.0.0.1”にローカルホスト名を設定する場合、必ずリモートから参照可能なIPアドレスを先に記述してください。または、“127.0.0.1”にはローカルホスト名を設定しないでください。
ホスト名にエイリアス名は設定しないでください。
例
各サーバの業務 LAN に接続するNICに割り当てる IP アドレスとホスト名の設定例:
| :10.10.10.11 | :master1 |
| :10.10.10.12 | :master2 |
| :10.10.10.21 ~ 10.10.10.25 | :slave1 ~ slave5 |
| :10.10.10.30 | :develop |
マスタサーバの hosts ファイルには以下のように設定します。
10.10.10.11 master1 10.10.10.12 master2 127.0.0.1 localhost.localdomain localhost 10.10.10.21 slave1 10.10.10.22 slave2 10.10.10.23 slave3 10.10.10.24 slave4 10.10.10.25 slave5 10.10.10.30 develop
サーバ名(hostname コマンドなどで出力されるシステムのホスト名)は、業務 LAN に接続する NIC に対応するホスト名と同じである必要があります。
異なる場合は、以下の手順でホスト名の設定をしてください。
RHEL6の場合
“4.1.2.5 ホスト名の設定”で設定したホスト名をnetworkファイルに設定してください。
/etc/sysconfig/network
HOSTNAME パラメーターにサーバ名を設定します。
例
マスタサーバ(プライマリ)のサーバ名を確認します。
# hostname <Enter> master1
サーバ名を変更する場合は、network ファイルを編集します。
NETWORKING=yes HOSTNAME=master1
RHEL7の場合
hostnamectlコマンドでホスト名の設定をしてください。
例
サーバ名を変更する場合は、hostnamectlコマンドを使用します。
# hostnamectl set-hostname master1 <Enter>
各サーバの業務LANのネットワークインターフェースは、本機能を導入する前に、IPアドレスが設定されており、かつ、活性状態である必要があります。
対象となるネットワークインターフェースの状態を ifconfigコマンド、ipコマンドで確認して、未設定および未活性の状態であれば、IPアドレスの設定および活性化を行ってください。
RHEL6の場合
例
# ifconfig eth1 <Enter> eth1 Link encap:Ethernet HWaddr 00:19:99:8D:7E:90 inet addr:10.10.10.11 Bcast:10.10.10.255 Mask:255.255.255.0 ・・・ 中略・・・ RX bytes:2440357552 (2.2 GiB) TX bytes:1144015405 (1.0 GiB) Memory:cd400000-cd480000
RHEL7の場合
例
# ip a show ens192 <Enter> 3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:af:5f:c4 brd ff:ff:ff:ff:ff:ff inet 192.168.1.192/24 brd 192.168.1.255 scope global ens192 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:feaf:5fc4/64 scope link valid_lft forever preferred_lft forever
マスタサーバ、スレーブサーバおよび開発実行環境サーバのシステム時刻は、NTP(Network Time Protocol)を使用し、同じ時刻に同期するように設定してください。
マスタサーバは自身に対してパスワードなしで ssh の通信ができるように設定する必要があります。
また、マスタサーバを二重化構成にする場合、マスタサーバ(プライマリ)とマスタサーバ(セカンダリ)間でパスワードなしでsshの通信ができるように設定する必要があります。
マスタサーバ(プライマリ)およびマスタサーバ(セカンダリ)において、それぞれ公開鍵を作成してroot権限でパスワードなしで ssh 接続できるようにしてください。
参照
公開鍵の作成については、ssh-keygen コマンドのヘルプを参照してください。
注意
本機能のApache Hadoopの起動・停止などを行う場合、Apache Hadoopはssh経由にて通信を行います。
また、Apache Hadoopのセットアップおよび HDFS ファイルシステムの構成を行うには、マスタサーバ上の定義ファイルの内容を各サーバと合わせる必要があります。本書では、scpを使用してマスタサーバ上の定義ファイルをコピーする手順を用います。
ssh/scpを使用する場合は、パスワードの入力を促すプロンプトが表示されることに留意してください。
各サーバ間のssh接続の有無について、以下に示します。
接続元 | 接続先サーバ | ||||
---|---|---|---|---|---|
マスタサーバ | スレーブ | 開発実行 | |||
プライマリ | セカンダリ | ||||
マスタサーバ | プライマリ | ○(注1) | ○(注1) | ○(注2) | ○ |
セカンダリ | ○(注1) | ○(注1) | ○(注2) | ○ | |
スレーブ | × | × | × | × | |
開発実行環境 | × | × | × | × |
○:root 権限で ssh 接続を行う
×:ssh 接続は行わない
注1) パスワードなしで ssh 接続できるように設定する必要があります。
注2) Apache Hadoopの起動・停止ではマスタサーバからスレーブサーバに対してssh経由で通信を行うため、パスワードなしでssh接続できるように設定していない場合はスレーブサーバの数だけパスワードの入力が必要となります。
マスタサーバ、スレーブサーバおよび開発実行環境サーバに対して、関連ソフトウェアであるJREをインストールしてください。
関連ソフトウェアについては、“3.2.3 関連ソフトウェア”を参照してください。
マスタサーバ、スレーブサーバおよび開発実行環境サーバに対して、環境変数 JAVA_HOMEにJREをインストールしたディレクトリを設定し、“4.2 インストール”の直前に有効になるようにしてください。
例
JREのインストールパスが /usr/lib/jre8 ディレクトリの場合
bash、BシェルまたはKシェルの場合
JAVA_HOME=/usr/lib/jre8:$JAVA_HOME ; export JAVA_HOME
Cシェルの場合
setenv JAVA_HOME /usr/lib/jre8