Apache Hadoop 2.2.0 GA 〜 HDFSに追加された機能の補足〜

Apache Hadoop 2.2.0 GAの重要な機能(追加)

昨日書いたブログ祝! Apache Hadoop 2.2.0 GAリリースで漏れてしまった重要な機能の補足です。Apache Hadoop 2.2.0 でもGAになりました。これらはCDH4などで利用できていたので、既にご存知の方も多いと思います。なので新しい機能と思わず、ブログに書くのを忘れました。反省)

高可用性HDFS


従来のHDFSではネームノードが単一障害点でした。高可用性HDFSではアクティブ/スタンバイの2つのネームノードを利用しており、アクティブがダウンした場合、あるいはメンテナンスのためアクティブを停止しなければならない場合に、スタンバイに切り替える仕組みを提供しています。
高可用性HDFSのおおまかな仕組みは、データノードが両方のネームノードにブロックレポート、ハートビートを送ります。これによって両方のネームノードがメモリ上でHDFSのメタ情報を管理していると言う点が重要です。
つまり、一般的なクラスタソフトウェアを利用した場合、ネームノードのフェイルオーバ時にメタ情報をファイルから読み込み直す必要があり、ダウンタイムが長時間におよぶ可能性があります。高可用性HDFSではメモリ上にメタ情報を持っているため、フェイルオーバ時に差分だけを更新すれば良いため、ダウンタイムが短くてすみます。
高可用性を利用するかどうかは運用次第なのですが、ダウンタイムがあまり許容できない場合は利用すると良いでしょうね。

HDFSフェデレーション

HDFSのフェデレーションは、1台のネームノードで管理できない程大規模なデータを扱うために利用する技術です。ネームノードのメモリに収まりきらない程の”ビッグデータ”を扱う場合は有用かもしれません。
こちらも、クラスタ内に複数のネームノードを用意します。例えばネームノードAがある領域、ネームノードBが別の領域を管理します。わかりやすい例えで言えば、WindowsPCに複数のハードディスクがある場合、ハードディスクをCドライブ、Dドライブのように別々に管理するようなイメージです。(Linuxなら /dev/sda, /dev/sdbというように)
これをクライアントから(マウントするようなイメージで)利用します。Linuxに詳しい方は、/etc/fstabに、/dev/sdaは /home, /dev/sdbは/mnt だと書いていると考えるとわかり易いでしょう。

その他

HBaseやImpalaなどでも利用される、パフォーマンスに効果がある「ショートサーキットリード」も利用可能になっています。(過去のブログ:HDFSのショートサーキット雑感
今日はこの辺で。

コメント