mapreduce がどのような問題を解決できるかを説明する理論的分析はありますか?
8 に答える
マルチコアでの機械学習のための Map-Reduce で、 Chuらは「統計クエリ モデルに適合するアルゴリズムは、特定の「合計形式」で記述できるため、マルチコア コンピューターで簡単に並列化できる」と説明しています。具体的には、map-reduce フレームワークを使用して、重み付き線形回帰、k-Means、Naive Bayes、SVM などを含む 10 のアルゴリズムを実装しています。
Apache Mahoutプロジェクトは、このホワイトペーパーのアイデアに基づくいくつかのメソッドの最近の Hadoop (Java) 実装をリリースしました。
大規模なデータセットの処理と生成が必要な問題の場合。銀行が保有するすべての口座に対して利息生成クエリを実行するとします。銀行で過去1年間に発生したすべてのトランザクションの監査データを処理するとします。最良の使用例はグーグルからです-グーグル検索エンジンの検索インデックスを生成します。
「めんどくさい並列」(素晴らしいフレーズ!) である多くの問題は、MapReduce を使用できます。http://en.wikipedia.org/wiki/Embarrassingly_parallel
この記事から.... http://www.businessweek.com/magazine/content/07_52/b4064048925836.htm ...
Hadoop (MapReduce のオープン ソース実装) の創設者である Doug Cutting は次のように述べています。
そして... 「The New York Times の技術チームは、Amazon のクラウドのコンピューティング パワーをレンタルし、Hadoop を使用して、1851 年にさかのぼる 1,100 万件のアーカイブされた記事を、デジタルで検索可能なドキュメントに変換しました。彼らは、他の方法では数か月かかっていたであろう仕事を 1 日で好転させました。」</p>
答えは、アルゴリズムの名前にあります。MapReduce は、いくつかの回答が示唆するように、汎用の並列プログラミング作業またはバッチ実行フレームワークではありません。Map Reduce は、大規模なデータ セットを処理する必要があり (マッピング フェーズ)、そこから特定の属性を派生させてから、それらの派生属性 (リダクション フェーズ) で要約する必要がある場合に非常に役立ちます。
大規模なデータセットに対して操作を行うことを伴うもので、問題をより小さな独立したサブ問題に分割し、その結果を集計して、より大きな問題に対する答えを生成することができます。
些細な例は、膨大な数のセットの合計を計算することです。セットを小さなセットに分割し、それらの小さなセットの合計を並行して計算し (さらに小さなセットに分割する必要がある場合もあります)、それらの結果を合計して最終的な答えに到達します。
動画 @ Googleもご覧いただけます。私自身も見ていますが、とても勉強になると思います。
MapReduce の Hello World 入門のようなもの
http://blog.diskodev.com/parallel-processing-using-the-map-reduce-prog
この質問は、その時間の前に尋ねられました。2009 年以降、実際に MapReduce 計算の理論的分析が行われています。ハワード・カーロフらのこの2010年の論文。理論家が P と NP を研究するのと同じ方法で、MapReduce を複雑性クラスとして形式化します。これらは、MapReduce と NC と呼ばれるクラス (共有メモリの並列マシンまたは制限された回路の特定のクラスと考えることができます) との間のいくつかの関係を証明しています。しかし、主要な作業はそれらの正式な定義です。