MapReduce基礎
Upcoming SlideShare
Loading in...5
×
 

MapReduce基礎

on

  • 1,770 views

Hadoop MapReduceデザインパターンの第2章MapReduce基礎のまとめです。 ...

Hadoop MapReduceデザインパターンの第2章MapReduce基礎のまとめです。

他の方の1章/2章まとめ
http://www.slideshare.net/shiumachi/dataintensive-text-processing-with-mapreducech1ch2

著者講義動画
http://videolectures.net/clspss09_lin_ditpm/

著者講義スライド資料
http://www.slideshare.net/gnap/dataintensive-text-processing-with-mapreduce-2688177

Statistics

Views

Total Views
1,770
Views on SlideShare
1,759
Embed Views
11

Actions

Likes
3
Downloads
14
Comments
0

2 Embeds 11

https://si0.twimg.com 10
https://twitter.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

MapReduce基礎 MapReduce基礎 Presentation Transcript

  • Chapter2 MapReduce Basics Joongjin Bae
  • Big Dataの解決方法• Divide and Conquerで解決可能 partition
  • なぜ苦労していたの?• どのように問題を小さいタスク分解するの か?• 多数マシンのworkerにどのように作業を分配 するのか?• Workerが必要なデータを得られることは、ど のように保証すればいいのか?• 等々 それでMapReduceが誕生
  • 2.1 FUNCTIONAL PROGRAMMING ROOTS• Foldは「折りたたむ」の意味 – 集合の各要素に演算を行い、値に縮める例)リストの和 入力:[1; 2; 3; 4; 5; 6; 7; 8; 9; 10] 出力:55scala> List("How","long","is","longest?").foldLeft(0)((i,s) => i max s.length)res3: Int = 8
  • 2.1 FUNCTIONAL PROGRAMMING ROOTS• Mapは入力データに対して演算を行いその結 果を集合体で戻す例) scala> List("How","long","are","we?") map (s => s.length)res0: List[Int] = List(3, 4, 3, 3)
  • 2.1 FUNCTIONAL PROGRAMMING ROOTS• MapReduceは関数型言語起源• MapとReduceは関数型言語のhigh-order関数 mapとfoldから来ている List Arry Fold(reduce) Map
  • 2.2 MAPPERS AND REDUCERSテキスト集合内の各単語カウンタを考えると• まず(textid, text)のマップを生成• Mapper – Input key-value pair (textid, text) → (word, 1) – 入力key-valueペアを取り、中間的なkey-valueペア に変換
  • 2.2 MAPPERS AND REDUCERS• Shuffle and Sort• Reducer – Input key-value pair (word, [1,4]) → (word,5) – 入力key-value(collection)ペアを取り、演算を行い key-valueペアの形式で出力 – 最終結果又は他のMapReduceの入力データにな る
  • 2.2 MAPPERS AND REDUCERS1: class Mapper2: method Map(docid a; doc d)3: for all term t 2 doc d do4: Emit(term t; count 1)1: class Reducer2: method Reduce(term t; counts [c1; c2; : : :])3: sum 04: for all count c 2 counts [c1; c2; : : :] do5: sum sum + c6: Emit(term t; count sum)
  • 2.2 MAPPERS AND REDUCERS
  • 2.3 THE EXECUTION FRAMEWORK実行フレームワークの処理事項• Scheduling• Data/code co-location• Synchronization• Error and fault handling
  • Scheduling• タスクの割り当てを担当 – タスクキュー管理 – 進行中のタスク進捗追跡• ジョブに属するタスクの制御 – MapReduceのジョブの実行速度はstragglerに左 右 – 投機的実行でフレームワークが最初終了したタ スク結果を使用 – Googleでは実行速度44%改善したと報告
  • Data/code co-location• コードの移動コストよりデータのコストが高い• ネットワークがボトルネックになる• データブロックにコードを移動しタスクを行う• 出来ない場合、他の場所でタスクを実行し データが移動• この場合、優先的に同じラックの他のノードで タスクを行う
  • Synchronization• 中間的な結果共有又は状態に関する情報共 有の待ち合わせ• MapReduceの中間的key-valueペアはグルー プ化が必要でこれはmapとreduceフェーズの 間のbarrierで実現• グループ化(suffle and sort)終了までreduceは 実行できない点が関数型プログラミングとの 違い
  • Error and fault handling• 障害は当たり前• MapReduceは障害が発生してもジョブを最後 まで実行する仕組みが必須
  • 2.4 PARTITIONERS AND COMBINERS• Partitionerは、中間keyスペースの分割と中間 key-valueペアをreducerへ渡す仕事を担当 – どのタスクに中間key-valueペアをコピーするかを 決める• Combinerは、最適化又はmini reducer – Shuffle and sortの前にreducerと同様集約処理を 行う
  • 2.4 PARTITIONERS AND COMBINERS
  • 2.5 THE DISTRIBUTED FILE SYSTEM• ネットワークファイルシステムの一種であり、 単一のファイルシステムが複数の物理コン ピュータノードに分散して存在する形態のも のを指す。• 分散ファイルシステムには一般に、透過的レ プリケーションとフォールトトレラント性に関す る機能がある。
  • DFS• データは大きめのブロック(64MB)に分割し、 複数(主に3)に複製され異なるノードに分散配 置• 名前空間はマスタ−が管理 – Google File System(GFS):GFS Master – Hadoop Distributed File System(HDFS): namenode
  • HDFS Architecture
  • HDFS namenodeの責任• ファイルの名前空間管理 – メタデータ、ディレクトリ構造、マッピングなど• ファイル操作の制御 – クライアントとデータノードが直接通信• ファイルシステムの全体的な健全性の管理 – Heartbeat message送受信 – 複製数が足りない場合追加、多い場合削除 – 全体データブロックの調整
  • GFSとHDFSの特徴• 比較的少数の大きなサイズのファイル• 負荷はバッチ処理が原因 – Latencyよりwide bandwidthが重要• APPはDFSの特徴を意識する必要• 多数のユーザの利用は想定してない – Hadoopはkerberos• 自己モニタリング及び自己修復 – コモディティシステムは信頼性が低い
  • Single Masterの特徴• CAP定理のConsistency重視 – 大規模システムではPartition-tolerance無理• このSingle MasterがDFSの弱点 – マスタが停止するとMapReduce全体が停止 – データ通信はクライアントとデータノードが直接す るため危険性の軽減 – warm standby namenodeで対応可能
  • 2.6 HADOOP CLUSTER ARCHITECTURE
  • 参考• http://www.slideshare.net/shiumachi/dataint ensive-text-processing-with- mapreducech1ch2• http://videolectures.net/clspss09_lin_ditpm/• http://www.slideshare.net/gnap/dataintensiv e-text-processing-with-mapreduce-2688177• Hadoop徹底入門