# MapReduce
## 概要
[[Google]]が開発した長時間実行バッチジョブ向けの大規模計算フレームワークであり、原論文は[[Jeffrey Dean]]・[[Sanjay Ghemawat]]による[[@2004__OSDI__MapReduce - Simplified Data Processing on Large Clusters]](OSDI 2004)。利用者が指定するmap関数とreduce関数だけで並列化・耐障害性・データ分散・負荷分散の詳細を隠蔽するプログラミングモデルである。[[@2010__VLDB__Dremel - Interactive Analysis of Web-Scale Datasets]]では、MapReduce(MR)はDremelと競合するものではなく補完関係にあるシステムとして位置づけられる。Dremelは、従来MRの一連のジョブを要していた対話的分析を数秒で処理できるが、MR自体を置き換える設計ではなく、MRパイプラインの出力を分析したりMR以前のプロトタイピングに使われたりする(Source: [[@2010__VLDB__Dremel - Interactive Analysis of Web-Scale Datasets]] §1, §10)。
Dremel論文の実験では、Sawzallで書かれたMRジョブをrecord-oriented・columnar-orientedの2通りのストレージで実行し比較しており、MR-on-recordsが87TBを読むのに対し、カラム型ストレージへの変更だけでMR-on-columnsは約0.5TBしか読まず、実行時間が1桁短縮される(時間→分)ことが示された。DremelへのさらなるMR-native実行への切り替えでもう1桁短縮される(分→秒)(Source: [[@2010__VLDB__Dremel - Interactive Analysis of Web-Scale Datasets]] §7 MR and Dremel, §8 Observations)。
MRの成功はHadoopをはじめとする多数のサードパーティ実装や、並列DBMSとMRを組み合わせたハイブリッドシステム(HadoopDBなど)を生んだ(Source: [[@2010__VLDB__Dremel - Interactive Analysis of Web-Scale Datasets]] §9 Related Work)。
## 関連
- ソース: [[@2010__VLDB__Dremel - Interactive Analysis of Web-Scale Datasets]] / [[@2004__OSDI__MapReduce - Simplified Data Processing on Large Clusters]]
- エンティティ: [[Google]] / [[Jeffrey Dean]] / [[Sanjay Ghemawat]]
- 概念: [[列指向OLAPデータベース]] / [[並列データベース]] / [[タスク並列フレームワーク]]
## 出典
- [[@2010__VLDB__Dremel - Interactive Analysis of Web-Scale Datasets]]
- [[@2004__OSDI__MapReduce - Simplified Data Processing on Large Clusters]]