MapReduceを使った並列化 20111212

782 views
642 views

Published on

もう流行り終わったMapReduce(Hadoop)の概要

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
782
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
3
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

MapReduceを使った並列化 20111212

  1. 1. MapReduceを使った並列化 2011-12-12 多田 篤志
  2. 2. 目次 • • • • • • • • • MapReduce・Hadoopとは? なぜ今並列化なのか? 従来の並列化と問題点 Mapとは? Reduceとは? MapReduceの仕組み MapReduceのメリット MapReduceのデメリット MapReduceの活用ポイント
  3. 3. MapReduce・Hadoopとは? • MapReduce…Googleに2004年に導入された大量 データを多数のコンピュータで処理する仕組み • Hadoop…MapReduceの論文を元にApache Software FoundationがJavaで実装したフリーウェア 分散コンピューティング ビッグデータ 多数のコンピュータ 大量のデータ 数千のコンピュータ テラ・ペタバイト級
  4. 4. なぜ今並列化なのか? • CPU性能の限界 ▫ クロック数は伸びず、コア数の増加 • インフラの低コスト化 ▫ クラウド・仮想化で大量のコンピュータの導入が 可能に • BToCの台頭 ▫ 大量のユーザ・大量のデータ
  5. 5. 従来の並列化の問題点 処理1 競合の 回避 処理2 処理・デー タの分散 処理3 処理4 データ 複数マシン の管理 処理n 複雑 数千の処理 ペタバイト
  6. 6. Mapとは? • MapReduceは関数型言語(Scala, Haskel, Erlang…)のmap 処理とreduce処理からアイデアを受けたものです データ リストA 1 2 3 4 5 6 7 8 9 10 関数 データ全てに 同じ処理を施 す multiply x = x * 3 Map処理 map multiply リストA 結果リスト 3 6 9 12 15 18 21 24 27 30
  7. 7. Reduceとは? データ 1 リストA 2 3 4 5 6 7 8 9 10 関数 データを集計 するもの add x y = x + y Reduce処理 ※ 畳み込み関数(実際には左から畳み込むものと右から畳み込むものがある) reduce add リストA ※ foldとも言う 55 (add 1 (add 2 (add 3 (add 4 (add 5 (add 6 (add 7 (add 8 (add 9 10)))))))))の結果
  8. 8. MapReduceの仕組み(1) ~全体像~ ※ データの流れをコントロール マスターサーバ Map処理 入力 Reduce処理 Sort & Shuffle 処理 分散ファイルシステム(HDFS) 結果
  9. 9. MapReduceの仕組み(2) ~Map処理~ • 大量のテキストファイルの単語ごとの出現回数 をカウントする処理を例にします ビッグ データ Split処理 Map処理 出力データ dog cat 入力データ Mapper 1 dog cat 1 1 cat pig Mapper 2 cat pig 1 1 pig dog Mapper 3 pig dog 1 1 dog dog Mapper n dog dog 1 1 ※ Split処理はデフォルト64MBごとに分割
  10. 10. MapReduceの仕組み(3) ~Sort & Shuffle処理~ 入力データ dog cat 1 1 cat pig 1 1 pig dog 1 1 dog dog 1 1 Sort処理 Sort Shuffle処理 dog dog dog dog cat cat pig pig 1 1 1 1 1 1 1 1 出力データ dog Shuffle cat pig 1 1 1 1 1 1 1 1
  11. 11. MapReduceの仕組み(4) ~Reduce処理~ 入力データ Reduce処理 出力データ 1 1 1 1 Reducer 1 cat 1 1 Reducer 2 cat 2 pig 1 1 Reducer n pig 2 dog dog 結果 4 dog cat pig 4 2 2
  12. 12. MapReduceのメリット • • • • • • 1台のマシンでは扱えない大量のデータが扱える 複数のマシンに分散することにより処理が高速 Map処理とReduce処理を書くのは簡単 対障害性バッチリ(らしい) スケールアウト・スケールダウンしやすい Map処理・Reduce処理を多段に組むことで複雑 な処理も可能
  13. 13. MapReduceのデメリット • バッチ処理でしか使えない • 小規模ではボトルネックの方が大きく遅い • 処理やデータが依存しまくっていて細かく分割 できない場合は使えない
  14. 14. MapReduceの活用ポイント • Apacheログなど大量のログの集計 • Webなど大量のテキストの集計 • SNSなどユーザごとの大量データの処理 株価 テクニカル アルゴリズム取引

×