MapReduce/Hadoopとは何か
「ビッグデータ」の保管・管理のためのテクノロジとしてNoSQLが注目されているのと同様に、「ビッグデータ」の処理のためのテクノロジとして注目を浴びているのがMapReduce/Hadoopだ。
MapReduceは並列「分析」フレームワークと呼ばれることもあるが、この認識はあまり正確ではなく、並列「処理」フレームワークととらえるべきだ(その応用として分析に使われることが多いというだけの話である)。なお、単にMapReduceと言ったときにはフレームワークを指すこともあるし、そのフレームワークに基づいて構築されたGoogle社内向けの実装(社外にはオープンにされていない)を指すこともある。Googleのサーチエンジンなどの多くのサービスがMapReduceにより実装されている。
そして、HadoopはMapReduceのフレームワークに触発されYahoo!が中心となって開発されたオープンソースソフトウェアである。現在はApacheのトッププロジェクトとなっている。
MapReduce/Hadoopの基本動作は、処理を複数のプロセスに分割して、多数のマシン上で実行し、結果を集約することである。要するに並列バッチ処理であり、考え方としてはそれほど新しいものではない(メインフレームにも似たような処理はある)。
しかし、実際にこのような並列バッチ処理を多数のマシンを使用して行おうとすると、プロセス間の負荷バランスやマシン障害時の回復などのやっかいな処理が必要となるため、これをひとつの共通基板上で実現できるHadoopの意義は大きい。
前述のeBayでは、オークションのユーザーがアップロードしたイメージの分析のためにHadoopを活用している。
たとえば、イメージの質が高いアイテムを上位に表示したり(これにより全体の落札率を向上できるそうだ)、他人のイメージをコピーした不正の疑いのある出品を検知したりするために使用しているようだ。そして、この分析結果をRDBMS上に保管した他のデータ(主にウェブログ)と組み合わせて分析することでさらなる価値を享受している。
「ビッグデータ」テクノロジの適材適所
NoSQL、そして、MapReduce/Hadoopというテクノロジについて見てきたが、おそらく、ほとんどの日本企業にとってはまだこれらのテクノロジが不可欠という段階には来ていないと思う。現実的なアプローチとしては、「ビッグデータ」の世界においても、なじみのあるRDBMSが中心ということになるだろう。そして、実験的な領域からHadoopを採用しRDBMSとうまく連携して活用していくことが将来的に重要となるだろう。
Keep up with ZDNet Japan
ZDNet JapanはFacebookページ、Twitter、RSS、Newsletter(メールマガジン)でも情報を配信しています。現在閲覧中の記事は、画面下部の「Meebo Bar」を通じてソーシャルメディアで共有できます。東日本大震災の情報は、特設サイト「ZDNet Japan after 3.11」にまとめています。