MapReduce
MapReduce(マップリデュース)は、2004年にGoogleで提案された、大規模なデータ集合を複数の計算機で並列処理するための…
MapReduce(マップリデュース)は、2004年にGoogleで提案された、大規模なデータ集合を複数の計算機で並列処理するためのプログラミングモデルである。 ビッグデータ処理基盤における基本的な計算方式の一つとして位置づけられ、後の分散コンピューティングの設計に影響を与えた。
検索インデックス生成やデータログの集計など、大量データを効率的に処理する用途で利用される。 処理を分割して実行するMap段階と、その結果を統合するReduce段階から構成される点を特徴とする。
概要
MapReduceは巨大なデータセットを持つ高度に並列可能な問題に対して、多数のコンピュータ(ノード)の集合であるクラスター(各ノードが同じハードウェア構成を持つ場合)もしくはグリッド(各ノードが違うハードウェア構成を持つ場合)を用いて並列処理させるためのフレームワークである。処理は、ファイルシステム(非構造的)もしくはデータベース(構造的)に格納されたデータに対して行うことができる。
Map ステップ - マスターノードは、入力データを受け取り、それをより細かい単位に分割し、複数のワーカーノードに配置する。受け取ったワーカーノードが、更に細かい単位に分割し、他の複数のワーカーノードに配置するという、より深い階層構造の分割を行うこともある。そして、各ワーカーノードは、その細かい単位のデータを処理し、処理結果を、マスターノードへと返す。
Reduce ステップ - 続いて、マスターノードが、Mapステップでの処理結果を集約し、目的としていた問題に対する答え(結果)を何らかの方法によって出力する。
MapReduceの特徴は、MapとReduceの各ステップで並列処理が可能なことである。それぞれのMap処理は、他のMap処理と完全独立であり、理論的に全て並列実行することができる(実際には、データソースやCPUの数により制限がかかる)。続くReduceステップでは、Mapステップでの処理結果がキーごとにまとめられてReduce処理に送られることになるが、これも同様に並列処理が可能である。
MapReduce による一連の処理は、逐次実行アルゴリズムと比較してしばしば非効率にみえるが、MapReduce は一般の汎用サーバが取り扱うことが可能なデータ量をはるかに超える大きなデータセットに対しても適用することができる。多数のサーバを持っていれば、MapReduce を使いペタバイト級のデータの並べ替えをわずか数時間で行うことも可能である。
また、処理が並列的であることで、複数あるサーバやストレージの一部に障害が起こり、Map処理やReduce処理が実行できないノードが発生した場合でも、入力データがまだ利用可能である場合は、処理を再スケジュールして実行させることが可能となる。これにより、障害に対して、しばしば処理継続中のリカバリーが可能になる。
参考文献
- 日経BP出版局著 「クラウド大全 サービス詳細から基盤技術まで」2009年 ISBN 9784822283889
関連事項
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.