Hadoop では、ローカルディスクを活用をすることで知られています。
一方、サーバ仮想化環境は共有ディスクを使用することが一般的なので
Hadoop とサーバ仮想化はあまり相性がよくないといわれることがあります。
というわけで、
BDE はどのようにデータストア(ローカル / 共有ディスク)を使用するのか見てみました。
BDE でのデータストア利用イメージ
BDE にデフォルトで含まれている
Apache Hadoop 1.2 で、Basic Hadoop Cluster を作成した場合を
例にすると、だいたい下記のような感じです。
Hadoop でマスタノードと呼ばれるものは
一般的に、そこまでデータの I/O が無いとされていますが
そのかわり耐障害性が求められます。
今回の例では、下記がマスタノードにあたります。
- HDFS の NameNode(NN)
- MapReduce の JobTracker(JT)
一方スレーブノードは、
大量のデータを格納していて
それをもとに分散処理を実行したりするので
ローカルディスクを活用したいサーバです。
今回の例では、下記がマスタノードにあたります。
- HDFS の DataNode(DN)
- MapReduce の TaskTracker(TT)
BDE では、ノードの役割によって
ローカルデータストアと共有データストアを使い分けていて、
だいたい下記のような役割分担です。
- マスタノード → ESXi のローカルデータストアを使用する。
- スレーブノード → 共有データストアを利用する。
マスタノードは、共有データストアに
仮想マシン(VMDK ファイル)が配置されているため、
vMotion や、vSphere HA といった仮想化環境特有の
高可用性の機能を利用できるようになっています。
もうすぐ vSphere FT が複数 vCPU 対応になるようなので
そうなったらさらに有益かと思いました・・・
スレーブノードは、ローカルディスクを使用しますが、
もともと MapReduce / HDFS で冗長化が考慮されているので
ノード障害が発生してもそうに問題にならないという想定でしょう。
BDE でのデータストアの指定
BDE ではローカルデータストアと共有データストアを使い分けますが、
そのためにvSphere 環境で利用しているデータストアを
さらに BDE で使用するデータストアとしてリソース登録します。
BDE で Hadoop クラスタを作成するまえにリソース登録しておき、
Hadoop クラスタ作成時には
ノードグループごとにデータストアの種類(Local / Shared)だけ指定します。
BDE Web Client プラグイン画面での見え方。
ローカルデータストアを、BDE に登録する例です。
Local / Shared データストアは、それぞれ
まとめて1つのリソースとして登録することができます。
下記の例では、1つの BDE データストア リソースとして
4つのデータストア(VC Datastores)を登録しています。
逆に、VC データストアそれぞれを
1つずつ BDE データストア リソースとして登録することもできます。
その場合は、下記のようになります。
Hadoop のノードのデータストアの種類は
Hadoop クラスタの作成(Create New Big Data Cluster)の時に
選択することができます。デフォルトでは、
マスタノード(~Master Node Group)は共有データストア(Shared datastore)、
スレーブノード(Worker Node Group)はローカルデータストア(Local datastores)
になっています。
Resource template で「Customize」を選択すると
データストアを変更することができますが、データストア名を指定するわけではなく
「Local」もしくは「Shared」を指定することで
あとは BDE によって自動的にデータストアが選択されます。
設定はポリシーベースっぽい感じです。
マニュアルでは下記のあたり・・・
VMware vSphere Big Data Extensions Administrator's and User's Guide
Big Data Extensions: Add a Datastore
Create a Hadoop or HBase Cluster in the vSphere Web Client
BDE については、こちらもどうぞ。
vSphere で Hadoop してみる。(Big Data Extentions) 第1回
vSphere BDE(Hadoop)と vSphere HA の関係について。
以上、BDE とデータストアの話でした。