Hadoop バージョン1(v1)の問題点を見ていこう。大きく三つの問題がある。うち二つは、各マシンのリソースを管理しているJobTrackerに起因するものだ。

 一つめは、MapReduce以外の分散処理フレームワークを同居させて利用する場合のリソース管理の問題だ。Hadoopの利用が進み、MapReduceに向かない処理がわかってきた。例えば、グラフ処理や機械学習など MapReduceを繰り返し実行するような計算で、分散ファイルシステムに毎回アクセスが生じて性能が出ない。

 そのため、MapReduceとは異なる分散処理フレームワークが多く提案されている。例えば、繰り返し計算を効率的に実行できる「Apache Spark」や、集約演算を高速に実行できる「Cloudera Impala」および「Presto」だ。また、ストリーミング処理向けには「Apache Storm」がある。いずれもオープンソースで提供されている。

 これらの分散処理フレームワークは用途に応じて使い分けることが望ましい。例えば、長時間かかるバッチ処理にMapReduceを使い、アドホッククエリーにはCloudera Impalaを、機械学習など反復処理にはApache Sparkを利用する。このように使い分ける場合、HDFSに保存されている大量データの移動を抑えるにはMapReduce、Cloudera Impala 、Apache Sparkを同一マシンに配置する必要がある。

 しかし、同一マシンに配置することによって新たな問題が生じる(図1)。MapReduce以外のフレームワークも、JobTracker相当のリソース管理機能を独自に備え、独立してリソース管理を行っているので、全体の計算リソースの利用効率を把握できないのだ。

図1●複数の分散処理フレームワークを利用する問題点
[画像のクリックで拡大表示]

この先は会員の登録が必要です。有料会員(月額プラン)は登録月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら