[解決済み] Map/Reduceとは?
質問
map/reduceについては、特にGoogleの超並列計算システムの文脈でよく耳にします。これはいったい何なのでしょうか?
どのように解決するのですか?
Googleのアブストラクトから MapReduce の研究発表ページより。
<ブロッククオートMapReduceはプログラミングモデルであり 関連する実装です。 大規模なデータセットを処理し、生成するための 実装です。ユーザはmap関数 を指定し、キーと値のペアを処理し 中間値を生成するmap関数と を生成するmap関数と、中間値を結合するreduce関数を指定する。 を指定し、同じ中間値に関連するすべての中間値を結合する をマージするreduce関数を指定する。 キーに関連するすべての中間値をマージするリデュース関数があります。
MapReduceの利点は、複数の処理ノード(複数のサーバー)で並列に処理を行うことができるため、非常に拡張性の高いシステムであることです。
をベースにしているので
関数型プログラミング
モデルに基づいているため
map
と
reduce
の各ステップは、それぞれ副作用を持ちません(各サブセクションの状態や結果は
map
プロセスの各サブセクションの状態や結果は別のものに依存しない)ので、マッピングされ、縮小されるデータセットはそれぞれ複数の処理ノードに分離することができる。
Joelの あなたのプログラミング言語ではこれができますか? の記事では、Googleが検索エンジンの動力源であるMapReduceを考え出すのに関数型プログラミングを理解することがいかに不可欠であったかを論じています。関数型プログラミングとそれがどのようにスケーラブルなコードを可能にするかについてよく知らないのであれば、これは非常に良い読み物です。
こちらもご覧ください。 ウィキペディア MapReduce
関連する質問 mapreduceを簡単に説明してください。
関連
-
[解決済み] 末尾再帰とは何ですか?
-
[解決済み] 抽象メソッドと仮想メソッドの違いは何ですか?
-
[解決済み] 並行処理と並列処理の違いは何ですか?
-
[解決済み] べき乗演算とは何ですか?
-
[解決済み] キュアリングと部分適用の違いは何ですか?
-
[解決済み】ビットシフト(bit-shift)演算子とは、どのようなもので、どのように機能するのですか?
-
[解決済み】.NETでMapとReduceを行う。
-
[解決済み] スタックオーバーフローを引き起こす最短のコードは何ですか?[クローズド]
-
[解決済み] パワーメーターの赤と緑の間の色を生成する?
-
[解決済み] 浮動小数点数の比較はどのようにすればよいのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] グリーンフィールド・アプリケーションとブラウンフィールド・アプリケーションとは?
-
[解決済み] Mac OS X で DYLD_LIBRARY_PATH を使ってもいいのでしょうか?また、それを使った動的ライブラリ検索アルゴリズムはどうなっていますか?
-
[解決済み] キュアリングと部分適用の違いは何ですか?
-
[解決済み] なぜハッシュ関数には素数モジュールが必要なのですか?
-
[解決済み] 直交性」とは何ですか?
-
[解決済み] お気に入りの(賢い)防御的プログラミングのベストプラクティス【非公開
-
[解決済み] パワーメーターの赤と緑の間の色を生成する?
-
[解決済み] セマンティックディフユーティリティ【終了しました
-
[解決済み] メモリマップドファイルの利点は何ですか?
-
[解決済み] レキサーの書き方の基本はどこで学べますか?