MapReduce

概要

MapReduceとは、米グーグル(Google)が開発した、大規模なデータを効率的に分散処理するためのプログラミングモデル。計算過程を “Map” と “Reduce” と呼ばれる二つのステップに分けて構成する。

MapReduceでは、まず処理全体を管理するマスター(master)ノードがデータを多数の断片に分割し、複数のマッパー(mapper)ノードに送信する。各ノードはデータ断片を行いたい処理に応じてキーと値のペアに変換するマップ処理(mapping)を行う。

生成されたペアはキーの内容に応じて選択されたリデューサー(reducer)ノードへ送られる。この過程をシャッフル(shuffling)という。処理系によってはこの過程で整列(sortソート)や集約(combine:コンバイン)などの処理を行う場合もある。

各リデューサーは受け取ったキーと値のペア群から必要とする集計結果などを算出し、マスターノードへ報告するリデュース処理(reducing)を行う。マスターノードは各ノードから受け取った結果を集約して最終結果を得る。

MapReduceを利用する開発者は、自らが必要とする計算内容を実装したマップ処理とリデュース処理を用意し、MapReduceシステムに投入することにより具体的な計算を行う。マップ処理もレデュース処理も多数のノードで並列に分散処理でき、ノード数を増やすほど全体の処理性能を向上させることができる。

MapReduceは同社の内部システムで利用されているほか、「Apache Hadoop」や「Amazon Elastic MapReduce」(Amazon EMR)などMapReduceを行うための様々なシステムやフレームワークが開発・公開されている。

(2019.5.1更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。