本文へスキップ

MapReduceとは?

まっぷりでゅーす

MapReduceとは、大規模データ複数サーバーで並列処理するためのプログラミングモデルで、Googleが考案してビッグデータ処理の基盤となりました。

MapReduceは、大量データ多数のコンピュータに分散して並列処理するためのプログラミングモデルフレームワークです。Googleのジェフ・ディーンとサンジャイ・ゲマワットが2004年に発表した論文で広く知られるようになり、その後オープンソースの実装であるApache Hadoopによって広く普及しました。

名前が示すとおり、処理は大きく2つのフェーズに分かれます。

  • Mapフェーズ:入力データをキーと値のペアに変換する処理を、データを分割して複数ノードで並列実行する
  • Reduceフェーズ:Mapの出力を同じキーでまとめ(シャッフル・ソート)、集計・結合などの最終的な計算を行う

この分割統治のアプローチにより、単一サーバーでは処理しきれないテラバイト・ペタバイト規模のデータでも、コモディティサーバーを多数並べることでスケールアウトできます。ノード障害時の自動再試行など、耐障害性も備えています。

典型的な用途としてはウェブのクロールデータの集計・ログ解析・機械学習の特徴量生成などがあります。現在はより高速なApache Spark(インメモリ処理)が多くの用途でMapReduceを置き換えつつありますが、バッチ処理の分散コンピューティングモデルの礎としての重要性は変わりません。

使い方・例文

「数十億件のウェブログから各ページのアクセス数を集計するバッチ処理にMapReduceを使い、数百台のサーバーで並列実行することで数時間を要していた処理を短時間で完了させた」のように、大規模データ処理・バッチ集計の文脈で登場します。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語