今回は、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 のラックとして認識させることになります。
このとき Hadoop のラック認識として、
ESXi を選ぶと物理ラックが境界として認識できず、
物理ラックを選ぶと ESXi が境界として認識できなくなってしまいます。
※下の図だと、オレンジ点線の部分が Hadoop から認識できなくなってしまいます。
そして、境界が下記の赤枠のように認識されるので、
うまくラック内にデータ転送を収めたりできなくなったり(HOST_AS_RACK)
同一 ESXi で稼働する VM 同士でデータの複製を持ったり(RACK_AS_RACK)
することが起こりえます。
そこで、HVE を使用することで
VM、ESXi、物理ラック それぞれを意識した
トポロジ 構成のマッピングファイルを自動生成できるようになります。
BDE のホワイトペーパーなどでは、ESXi は「Node Group」という概念で説明されています。
というわけで、Hadoop ディストリビューションが HVE が対応しているのであれば
HVE にしておくのがよいと思います。結構、HVE 対応しているようです。
VMware vSphere Big Data Extensions Administrator's and User's Guide
> Managing Hadoop Distributions
Hadoop Distribution Deployment Types
以上、BDE のトポロジ認識についてでした。
つづく・・・