MapReduceを使った並列化 20111212
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

MapReduceを使った並列化 20111212

  • 492 views
Uploaded on

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

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

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
492
On Slideshare
491
From Embeds
1
Number of Embeds
1

Actions

Shares
Downloads
2
Comments
0
Likes
0

Embeds 1

http://s.deeeki.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. MapReduceを使った並列化 2011-12-12 多田 篤志
  • 2. 目次 • • • • • • • • • MapReduce・Hadoopとは? なぜ今並列化なのか? 従来の並列化と問題点 Mapとは? Reduceとは? MapReduceの仕組み MapReduceのメリット MapReduceのデメリット MapReduceの活用ポイント
  • 3. MapReduce・Hadoopとは? • MapReduce…Googleに2004年に導入された大量 データを多数のコンピュータで処理する仕組み • Hadoop…MapReduceの論文を元にApache Software FoundationがJavaで実装したフリーウェア 分散コンピューティング ビッグデータ 多数のコンピュータ 大量のデータ 数千のコンピュータ テラ・ペタバイト級
  • 4. なぜ今並列化なのか? • CPU性能の限界 ▫ クロック数は伸びず、コア数の増加 • インフラの低コスト化 ▫ クラウド・仮想化で大量のコンピュータの導入が 可能に • BToCの台頭 ▫ 大量のユーザ・大量のデータ
  • 5. 従来の並列化の問題点 処理1 競合の 回避 処理2 処理・デー タの分散 処理3 処理4 データ 複数マシン の管理 処理n 複雑 数千の処理 ペタバイト
  • 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. 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. MapReduceの仕組み(1) ~全体像~ ※ データの流れをコントロール マスターサーバ Map処理 入力 Reduce処理 Sort & Shuffle 処理 分散ファイルシステム(HDFS) 結果
  • 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. 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. 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. MapReduceのメリット • • • • • • 1台のマシンでは扱えない大量のデータが扱える 複数のマシンに分散することにより処理が高速 Map処理とReduce処理を書くのは簡単 対障害性バッチリ(らしい) スケールアウト・スケールダウンしやすい Map処理・Reduce処理を多段に組むことで複雑 な処理も可能
  • 13. MapReduceのデメリット • バッチ処理でしか使えない • 小規模ではボトルネックの方が大きく遅い • 処理やデータが依存しまくっていて細かく分割 できない場合は使えない
  • 14. MapReduceの活用ポイント • Apacheログなど大量のログの集計 • Webなど大量のテキストの集計 • SNSなどユーザごとの大量データの処理 株価 テクニカル アルゴリズム取引