Hadoop では、分散処理のマスタとなるノード(サーバ)の

冗長化が課題となることがあると思います。


たとえば下記のあたりの障害対策をどうするかが、よく話題になっています。

  • HDFS のマスタノード(NameNode)
  • MapReduce のマスタノード(JobTrackser)

 

vSphere Big Data Extensions(BDE) と

vSphere での冗長化については、

マニュアルだと下記のあたりにそれとなく記載があります。

VMware vSphere Big Data Extensions Administrator's and User's Guide

  > Managing Hadoop and HBase Clusters

About vSphere High Availability and vSphere Fault Tolerance

http://pubs.vmware.com/bde-2/topic/com.vmware.bigdataextensions.admin.doc/GUID-C69A72A1-93B8-4EB9-A2B2-16E1FCAC108D.html

 

FT では当然、保護可能だと思います。

ただし FT は vSphere 5.5 までだと 1vCPU しか割り当てられないので

実際のところは vSphere HA が有効そうな気がします。


そして、vSphere HA については

マスタノードのプロセス検知まで対応しているのか気になったので試してみました。

 

BDE で自動構築した VM の HA 保護構成について


BDE で自動構築(テンプレートからクローン)された VM のうち、

マスタノードになるものは、デフォルトで

共有データストア(Shared datastores)に配置されます。


DataMaster が、HDFS の NameNode で、

ComputeMaster が、MapReduce の JobTracker です。

bde-vha-02.png

 

vSphere HA での VM の保護設定を確認してみると、

マスタノードは HA が有効で、それ以外は無効になっていました。

※仮想マシンの監視は「仮想マシンとアプリケーションの監視」にしてあります。

bde-vha-03.png

 

マスタノードの確認

 

ためしにマスタノード障害を発生させてみるために、

マスタノードを確認します。

BDE では、BDE の Web Client プラグイン画面から、マスタノードがわかります。

それぞれゲスト OS の、IP アドレスがわかります。

bde-vha-01.png

 

他にも、BDE の管理サーバに SSH して

Serengeti CLI からマスタノードを確認することもできます。

[serengeti@192 ~]$ serengeti

=================================================

*  _____                                 _   _  *

* / ____|  ___ _ __ ___ _ __   __ _  ___| |_(_) *

* \____ \ / _ \ '__/ _ \ '_ \ / _` |/ _ \ __| | *

*  ____) |  __/ | |  __/ | | | (_| |  __/ |_| | *

* |_____/ \___|_|  \___|_| |_|\__, |\___|\__|_| *

*                             |___/             *

*                                               *

=================================================

Version: 2.0.0

Welcome to Serengeti CLI

serengeti>connect --host localhost:8443

Enter the username: vmad\administrator ★vCenterSSOで認証可能なユーザでログイン

Enter the password: **********

Connected

serengeti>cluster target --name hdp_cluster01

serengeti>cfg info

Hadoop [1.2.1 rev.1503152][fs=hdfs://192.168.5.128:8020][jt=192.168.5.125:8021]

「fs=~」が HDFS のマスタノード(NameNode)、

「jt=~」が MapReduce のマスタノード(JobTracker)です。

 

 

マスタノードを停止してみる。

 

まず、HDFS のマスタノードを停止してみます。

hdp_cluster01-DataMaster-0 に SSH でログインして

NameNode プロセスを停止してみました。

[root@192 ~]# uname -n

192.168.5.128  ★ホスト名は IP アドレスと同じになっている。

[root@192 ~]# jps

4930 NameNodeMonitor

25430 Jps

2680 NameNode

 

kill コマンドで、プロセス停止してみました。

[root@192 ~]# kill 2680

[root@192 ~]# jps

4930 NameNodeMonitor

25466 Jps

 

少し待つと、vSphere HA が作動します。

bde-vha-04.png

 

プロセスの再起動ではなく、

VM がリセットされ、ゲスト OS があらためて起動されます。

bde-vha-05.png

 

VM が vSphere HA でリセットされたことが

イベント にも残っています。

bde-vha-06.png

 

ゲスト OS 起動後は、

NameNode のプロセスが自動起動します。

[root@192 ~]# uname -n

192.168.5.128

[root@192 ~]# uptime

13:45:38 up 6 min,  1 user,  load average: 0.10, 0.45, 0.29

[root@192 ~]# jps

2716 NameNodeMonitor

2309 NameNode

2830 Jps

 

同様に、MapResuce の JobTracker のプロセスを停止してみました。

hdp_cluster01-ComputeMaster-0 に SSH でログインして、

JobTracker のプロセスを停止してみます。

[root@192 ~]# uname -n

192.168.5.125  ★ホスト名は IP アドレスと同じになっている。

[root@192 ~]# jps

2656 JobTracker

15403 Jps

2802 JobTrackerMonitor

[root@192 ~]# kill 2656

[root@192 ~]# jps

15418 Jps

2802 JobTrackerMonitor

 

しばらくすると、JobTracker の VM も

vSphere HA によってリセットされました。

VM がリセットされることで、

ゲスト OS の起動に合わせて JobTracker のプロセスが起動(復旧)されます。

bde-vha-07.png

 

vSphere HA では、ESXi ホスト障害や、VM(ゲスト OS)のハングといった

障害は標準で検知でき、自動復旧できます。

アプリケーション障害を検知する場合には

そのアプリケーション側で vSphere HA に対応している必要があるのですが、

BDE で自動構築した Apache Haoop のマスタノードは

NameNode も、JobTracker も vSphere HA のアプリケーション監視に

対応しているようです。

 

BDE については、こちらもどうぞ・・・

vSphere で Hadoop してみる。(Big Data Extentions) 第1回

 

以上、BDE と vSphere HA についてでした。