今回は、VMware vSphere Big Data Extensions(BDE) の

Hadoop 的なネットワークトポロジ 認識についての話です。


Hadoop には処理を効率化するためにネットワーク トポロジ(構成)を認識する仕組みがあります。

これは ラック ウェアネス などと呼ばれていて、

分散処理中の大量データ転送を避けるための考慮をしたりデータローカリティ)

HDFS でデータレプリカ配置をうまく分散して

ノード障害時の可用性向上、データ消失防止したりするために重要です。


トポロジ認識は、サーバ(Hadoop のノード)とサーバラックを

紐づけるマッピングファイルを用意することで実現しています。

たとえば、下記のようにサーバとラックの対応を定義して Hadoop にトポロジを伝えます。

# cat topology.data

hadoop-node1.vmad.local  /datacenter01/rack01

hadoop-node2.vmad.local  /datacenter01/rack02

 

BDE では Hadoop クラスタの自動構築時に、このマッピングファイルを自動生成できます。

さらに VMware による、サーバ仮想化レイヤを考慮できるようになる

Hadoop Virtualization Extensions(HVE)という機能拡張も利用することができます。

Hadoop Virtualization Extensions on VMware vSphere 5

http://www.vmware.com/files/pdf/Hadoop-Virtualization-Extensions-on-VMware-vSphere-5.pdf

 

Hadoop Common / HADOOP-8468

Umbrella of enhancements to support different failure and locality topologies

https://issues.apache.org/jira/browse/HADOOP-8468

 

トポロジ認識は、BDE で Hadoop クラスタを作成するときに

4種類の認識方法から選択できます。

  • NONE
    トポロジを気にしない。
  • HOST_AS_RACK
    ゲスト OS を Hadoop のノード、ESXi を Hadoop でのラックとして扱う。
  • RACK_AS_RACK
    ゲスト OS を Hadoop のノード、マッピングファイルでのラック を Hadoop でのラックとして扱う。
  • HVE
    ゲスト OS、ESXi、ラックそれぞれを認識する。
    ※ただし、Hadoop ディストリビューションでも HVE 対応が必要。

 

BDE では、デフォルトで上記のうち NONE と HOST_AS_RACK だけが選択でき、

BDE 管理サーバ(Serengeti)にラックと ESXi のマッピングを定義するファイル

(上の方で例とした topology.data ファイルとは別のもの)をアップロードすることで

RACK_AS_RACK と HVE が選択できるようになります。

 

たとえば、下記のようなマッピングファイルになります。

# cat /home/serengeti/rack_esxi_map.txt

rack01: esxi01.vmad.local,esxi02.vmad.local

rack02: esxi03.vmad.local,esxi04.vmad.local

 

BDE では HVE を使用しない場合、

BDE に は、物理ラックか、ESXi どちらかを

Hadoop のラックとして認識させることになります。

bde-topology -01.png


このとき Hadoop のラック認識として、

ESXi を選ぶと物理ラックが境界として認識できず、

物理ラックを選ぶと ESXi が境界として認識できなくなってしまいます。

※下の図だと、オレンジ点線の部分が Hadoop から認識できなくなってしまいます。

bde-topology -02.png


そして、境界が下記の赤枠のように認識されるので、

うまくラック内にデータ転送を収めたりできなくなったり(HOST_AS_RACK)

同一 ESXi で稼働する VM 同士でデータの複製を持ったり(RACK_AS_RACK)

することが起こりえます。

bde-topology -03.png

 

そこで、HVE を使用することで

VM、ESXi、物理ラック それぞれを意識した

トポロジ 構成のマッピングファイルを自動生成できるようになります。

BDE のホワイトペーパーなどでは、ESXi は「Node Group」という概念で説明されています。

bde-topology -04.png

 

というわけで、Hadoop ディストリビューションが HVE が対応しているのであれば

HVE にしておくのがよいと思います。結構、HVE 対応しているようです。

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

  > Managing Hadoop Distributions

Hadoop Distribution Deployment Types

 

以上、BDE のトポロジ認識についてでした。

つづく・・・

vShere BDE の Hadoop 的なトポロジ認識について。その2(HVE Topology 設定編)