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