vSphere Big Data Extentions(BDE)の
Hadoop クラスタで Elastic Scaling を有効化してみました。
これまでの話は・・・
vSphere BDE で Elastic Scaling してみる。第1回
vSphere BDE で Elastic Scaling してみる。第2回(Compute-only Hadoop Cluster)
Elastic Scaling により、 BDE で構築した Compute-only Hadoop Cluster の
スレーブノード数(MapReduce の TaskTracker)が自動増減します。
ここでの「Compute-only」とは MapReduce と HDFS のうち、
「MapResuce 部分だけ」のクラスタということです。
※HDFS などのデータ格納領域は別途用意する想定の構成です。
ちなみに Elastic Scaling の設定は、BDE で Hadoop クラスタを
停止→起動するたびに Manual に戻るようになっているようなので、
有効化する場合は Hadoop クラスタを起動するたびに再設定します。
Elastic Scaling の設定(Web Client + BDE プラグインの場合)
Elastic Scaling はデフォルトでは無効なので、Elasticity Mode は「Manual」です。
「1 ComputeMaster」で「DataMaster」がないことから、
Compute-olny のクラスタ(HDFS が含まれない)クラスタであることがわかります。
Elastic Scaling を設定するクラスタを右クリックして
「Set Elasticity Mode」を開きます。
Elasticity Mode で「Auto」を選択して、
スレーブノード(Compute nodes)の最大数、最小数を設定します。
Elastic Scaling が有効化され、Elasticity Mode は「Auto」になりました。
Elastic Scaling の設定(Serengeti CLI の場合)
BDE 管理サーバの Serengeti CLI からでも Elastic Scaling を有効化できます。
Serengeti CLI についてはこちらもどうぞ。
vSphere で Hadoop してみる。BDE 第6回(Serengeti CLI)
デフォルトだと、Elastic Scaling は無効(AUTO ELASTIC : Disable)です。
serengeti> cluster list --name mr_cluster01
============================================================================
CLUSTER NAME : mr_cluster01
AGENT VERSION : 2.0.0
DISTRO : apache
TOPOLOGY : HVE
AUTO ELASTIC : Disable
MIN COMPUTE NODES NUM : Unset
MAX COMPUTE NODES NUM : Unset
IO SHARES : NORMAL
STATUS : RUNNING
EXTERNAL HDFS : hdfs://192.168.5.145:8020
GROUP NAME ROLES INSTANCE CPU MEM(MB) TYPE SIZE(GB)
------------------------------------------------------------------------------------------------
ComputeMaster [hadoop_jobtracker] 1 1 3748 SHARED 10
Worker [hadoop_tasktracker] 3 1 3748 LOCAL 20
Client [hadoop_client, pig, hive, hive_server] 1 1 3748 SHARED 20
============================================================================
Elastic Scale を有効にしてみます。
Serengeti CLI の「cluster setParam ~」で設定します。
- --elasticityMode AUTO → 「AUTO」だと自動スケールします。
- --minComputeNodeNum 2 → スレーブノードの最小数です。
- --maxComputeNodeNum 3 → スレーブノードの最大数です。
serengeti> cluster setParam --name mr_cluster01 --elasticityMode AUTO --minComputeNodeNum 2 --maxComputeNodeNum 3
cluster mr_cluster01 adjusted
有効化すると「AUTO ELASTIC : Enable」になります。
MIN COMPUTE NODES NUM と MAX COMPUTE NODES NUM も設定されました。
serengeti> cluster list --name mr_cluster01
============================================================================
CLUSTER NAME : mr_cluster01
AGENT VERSION : 2.0.0
DISTRO : apache
TOPOLOGY : HVE
AUTO ELASTIC : Enable
MIN COMPUTE NODES NUM : 2
MAX COMPUTE NODES NUM : 3
IO SHARES : NORMAL
STATUS : RUNNING
EXTERNAL HDFS : hdfs://192.168.5.145:8020
GROUP NAME ROLES INSTANCE CPU MEM(MB) TYPE SIZE(GB)
------------------------------------------------------------------------------------------------
ComputeMaster [hadoop_jobtracker] 1 1 3748 SHARED 10
Worker [hadoop_tasktracker] 3 1 3748 LOCAL 20
Client [hadoop_client, pig, hive, hive_server] 1 1 3748 SHARED 20
============================================================================
ちなみにこの機能は、デプロイ済みのスレーブ用 VM を 自動起動 / 自動停止します。
自動クローンでノード追加したりするような機能ではなく
maxComputeNodeNum を TaskTracker VM 数よりも多くしたりできません。
※今回のスレーブノードは 3 VM です。
serengeti> cluster setParam --name mr_cluster01 --elasticityMode AUTO --minComputeNodeNum 2 --maxComputeNodeNum 5
cluster mr_cluster01 setParam failed: Invalid value: maxComputeNodeNum=5. Value must be less than or equal to the number of compute-only nodes (3) and greater than or equal to minComputeNodeNum (2).
serengeti>
自動スケールイン / スケールアウトの様子
BDE の Elastic Scaling では、
自動スケールイン(ノード削除) / スケールアウト(ノード追加)は
クローン済みの VM を 停止 / 起動 することで実現されます。
たとえば、Hadoop クラスタではデフォルトでは
デフォルトではスレーブノード(Worker)がすべて起動されています。
Elastic Scaling を有効にすると
リソースに余裕がある状態では
自動的にスレーブノードが停止されます。(スケールイン)
リソースに余裕がなくなると
自動的にスレーブノードが起動され、クラスタに組み込まれます。(スケールアウト)
Web Clientの「ホストおよびクラスタ」のインベントリでも
「監視」→「タスク」タブで様子が見られます。
BDE 管理サーバのログファイル(/opt/serengeti/logs/serengeti.log)にも
スレーブノードの停止 / 起動 の様子が出力されます。
スレーブノードの停止
[2014-10-10T23:21:29.742+0000] INFO pool-2-thread-5| com.vmware.bdd.service.event.VmEventManager: synced power state poweredOff on vm: null:VirtualMachine:vm-346
[2014-10-10T23:21:29.749+0000] INFO pool-2-thread-5| com.vmware.bdd.service.event.VmEventManager: received vm Powered Off event for vm: mr_cluster01-Worker-2
スレーブノードの起動
[2014-10-10T16:19:58.269+0000] INFO pool-2-thread-3| com.vmware.bdd.service.event.VmEventManager: synced power state poweredOn on vm: null:VirtualMachine:vm-347
[2014-10-10T16:19:58.275+0000] INFO pool-2-thread-3| com.vmware.bdd.service.event.VmEventManager: received vm Powered On event for vm: mr_cluster01-Worker-1
マニュアルだと、下記のあたりです。
VMware vSphere Big Data Extensions Administrator's and User's Guide
> Managing Hadoop and HBase Clusters
About Resource Usage and Elastic Scaling
BDE については、こちらもどうぞ。
vSphere で Hadoop してみる。(Big Data Extentions) 第1回
vSphere BDE(Hadoop)と vSphere HA の関係について。
vSphere BDE の Hadoop 的なデータストア活用について。(Local / Shared)
vShere BDE の Hadoop 的なトポロジ認識について。(Rack awareness と HVE)
以上、BDE の Elastic Scaling についてでした。