MapReduce M/R slides adapted from those of Jeff Dean’s.

Slides:



Advertisements
Similar presentations
Lecture 12: MapReduce: Simplified Data Processing on Large Clusters Xiaowei Yang (Duke University)
Advertisements

MAP REDUCE PROGRAMMING Dr G Sudha Sadasivam. Map - reduce sort/merge based distributed processing Best for batch- oriented processing Sort/merge is primitive.
MAP-REDUCE: WIN EPIC WIN MAP-REDUCE: WIN -OR- EPIC WIN CSC313: Advanced Programming Topics.
These are slides with a history. I found them on the web... They are apparently based on Dan Weld’s class at U. Washington, (who in turn based his slides.
Distributed Computations
MapReduce: Simplified Data Processing on Large Clusters Cloud Computing Seminar SEECS, NUST By Dr. Zahid Anwar.
CS 345A Data Mining MapReduce. Single-node architecture Memory Disk CPU Machine Learning, Statistics “Classical” Data Mining.
MapReduce Dean and Ghemawat. MapReduce: Simplified Data Processing on Large Clusters. Communications of the ACM, Vol. 51, No. 1, January Shahram.
MapReduce: Simplified Data Processing on Large Clusters J. Dean and S. Ghemawat (Google) OSDI 2004 Shimin Chen DISC Reading Group.
Homework 2 In the docs folder of your Berkeley DB, have a careful look at documentation on how to configure BDB in main memory. In the docs folder of your.
MapReduce Simplified Data Processing on Large Clusters Google, Inc. Presented by Prasad Raghavendra.
Distributed Computations MapReduce
L22: SC Report, Map Reduce November 23, Map Reduce What is MapReduce? Example computing environment How it works Fault Tolerance Debugging Performance.
Lecture 2 – MapReduce CPE 458 – Parallel Programming, Spring 2009 Except as otherwise noted, the content of this presentation is licensed under the Creative.
MapReduce : Simplified Data Processing on Large Clusters Hongwei Wang & Sihuizi Jin & Yajing Zhang
MapReduce: Simplified Data Processing on Large Clusters
U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science MapReduce:
Advanced Topics: MapReduce ECE 454 Computer Systems Programming Topics: Reductions Implemented in Distributed Frameworks Distributed Key-Value Stores Hadoop.
SIDDHARTH MEHTA PURSUING MASTERS IN COMPUTER SCIENCE (FALL 2008) INTERESTS: SYSTEMS, WEB.
Hadoop Ida Mele. Parallel programming Parallel programming is used to improve performance and efficiency In a parallel program, the processing is broken.
MapReduce.
Introduction to Parallel Programming MapReduce Except where otherwise noted all portions of this work are Copyright (c) 2007 Google and are licensed under.
By: Jeffrey Dean & Sanjay Ghemawat Presented by: Warunika Ranaweera Supervised by: Dr. Nalin Ranasinghe.
MapReduce. Web data sets can be very large – Tens to hundreds of terabytes Cannot mine on a single server Standard architecture emerging: – Cluster of.
Google MapReduce Simplified Data Processing on Large Clusters Jeff Dean, Sanjay Ghemawat Google, Inc. Presented by Conroy Whitney 4 th year CS – Web Development.
Introduction to MapReduce Amit K Singh. “The density of transistors on a chip doubles every 18 months, for the same cost” (1965) Do you recognize this.
Süleyman Fatih GİRİŞ CONTENT 1. Introduction 2. Programming Model 2.1 Example 2.2 More Examples 3. Implementation 3.1 ExecutionOverview 3.2.
Map Reduce and Hadoop S. Sudarshan, IIT Bombay
Take a Close Look at MapReduce Xuanhua Shi. Acknowledgement  Most of the slides are from Dr. Bing Chen,
Map Reduce for data-intensive computing (Some of the content is adapted from the original authors’ talk at OSDI 04)
Parallel Programming Models Basic question: what is the “right” way to write parallel programs –And deal with the complexity of finding parallelism, coarsening.
MapReduce: Simplified Data Processing on Large Clusters Jeffrey Dean and Sanjay Ghemawat.
1 The Map-Reduce Framework Compiled by Mark Silberstein, using slides from Dan Weld’s class at U. Washington, Yaniv Carmeli and some other.
MapReduce: Hadoop Implementation. Outline MapReduce overview Applications of MapReduce Hadoop overview.
Map Reduce: Simplified Processing on Large Clusters Jeffrey Dean and Sanjay Ghemawat Google, Inc. OSDI ’04: 6 th Symposium on Operating Systems Design.
MAP REDUCE : SIMPLIFIED DATA PROCESSING ON LARGE CLUSTERS Presented by: Simarpreet Gill.
MapReduce How to painlessly process terabytes of data.
Google’s MapReduce Connor Poske Florida State University.
Mass Data Processing Technology on Large Scale Clusters Summer, 2007, Tsinghua University All course material (slides, labs, etc) is licensed under the.
MapReduce Kristof Bamps Wouter Deroey. Outline Problem overview MapReduce o overview o implementation o refinements o conclusion.
Distributed Computations MapReduce/Dryad M/R slides adapted from those of Jeff Dean’s Dryad slides adapted from those of Michael Isard.
MapReduce and the New Software Stack CHAPTER 2 1.
By Jeff Dean & Sanjay Ghemawat Google Inc. OSDI 2004 Presented by : Mohit Deopujari.
Chapter 5 Ranking with Indexes 1. 2 More Indexing Techniques n Indexing techniques:  Inverted files - best choice for most applications  Suffix trees.
MapReduce: Simplified Data Processing on Large Clusters Lim JunSeok.
MapReduce : Simplified Data Processing on Large Clusters P 謝光昱 P 陳志豪 Operating Systems Design and Implementation 2004 Jeffrey Dean, Sanjay.
C-Store: MapReduce Jianlin Feng School of Software SUN YAT-SEN UNIVERSITY May. 22, 2009.
MapReduce: Simplified Data Processing on Large Clusters By Dinesh Dharme.
MapReduce: simplified data processing on large clusters Jeffrey Dean and Sanjay Ghemawat.
Dr Zahoor Tanoli COMSATS.  Certainly not suitable to process huge volumes of scalable data  Creates too much of a bottleneck.
MapReduce: Simplied Data Processing on Large Clusters Written By: Jeffrey Dean and Sanjay Ghemawat Presented By: Manoher Shatha & Naveen Kumar Ratkal.
COMP7330/7336 Advanced Parallel and Distributed Computing MapReduce - Introduction Dr. Xiao Qin Auburn University
MapReduce: Simplified Data Processing on Large Clusters Jeff Dean, Sanjay Ghemawat Google, Inc.
Lecture 3 – MapReduce: Implementation CSE 490h – Introduction to Distributed Computing, Spring 2009 Except as otherwise noted, the content of this presentation.
Some slides adapted from those of Yuan Yu and Michael Isard
MapReduce: Simplified Data Processing on Large Clusters
Auburn University COMP7330/7336 Advanced Parallel and Distributed Computing MapReduce - Introduction Dr. Xiao Qin Auburn.
Distributed Computations MapReduce/Dryad
MapReduce Computing Paradigm Basics Fall 2013 Elke A. Rundensteiner
MapReduce Simplied Data Processing on Large Clusters
湖南大学-信息科学与工程学院-计算机与科学系
Cse 344 May 2nd – Map/reduce.
February 26th – Map/Reduce
Cse 344 May 4th – Map/Reduce.
Distributed System Gang Wu Spring,2018.
Cloud Computing MapReduce, Batch Processing
Introduction to MapReduce
MapReduce: Simplified Data Processing on Large Clusters
5/7/2019 Map Reduce Map reduce.
MapReduce: Simplified Data Processing on Large Clusters
Presentation transcript:

MapReduce M/R slides adapted from those of Jeff Dean’s

Why distributed computations? How long to sort 1 TB on one computer? –One computer can read ~60MB from disk –Takes ~1 days!! Google indexes 100 billion+ web pages –100 * 10^9 pages * 20KB/page = 2 PB Large Hadron Collider is expected to produce 15 PB every year!

Solution: use many nodes! Data Centers at Amazon/Facebook/Google –Hundreds of thousands of PCs connected by high speed LANs Cloud computing –Any programmer can rent nodes in Data Centers for cheap The promise: –1000 nodes  1000X speedup

Distributed computations are difficult to program Sending data to/from nodes Coordinating among nodes Recovering from node failure Optimizing for locality Debugging Same for all problems

MapReduce A programming model for large-scale computations –Process large amounts of input, produce output –No side-effects or persistent state (unlike file system) MapReduce is implemented as a runtime library: –automatic parallelization –load balancing –locality optimization –handling of machine failures

MapReduce design Input data is partitioned into M splits Map: extract information on each split –Each Map produces R partitions Shuffle and sort –Bring M partitions to the same reducer Reduce: aggregate, summarize, filter or transform Output is in R result files

More specifically… Programmer specifies two methods: –map(k, v) → * –reduce(k', *) → * All v' with same k' are reduced together Usually also specify: –partition(k’, total partitions) -> partition for k’ often a simple hash of the key allows reduce operations for different k’ to be parallelized

Example: Count word frequencies in web pages Input is files with one doc per record Map parses documents into words –key = document URL –value = document contents Output of map: “doc1”, “to be or not to be” “to”, “1” “be”, “1” “or”, “1” …

Example: word frequencies Reduce: computes sum for a key Output of reduce saved “be”, “2” “not”, “1” “or”, “1” “to”, “2” key = “or” values = “1” “1”“1” key = “be” values = “1”, “1” “2”“2” key = “to” values = “1”, “1” “2”“2” key = “not” values = “1” “1”“1”

Example: Pseudo-code Map(String input_key, String input_value): //input_key: document name //input_value: document contents for each word w in input_values: EmitIntermediate(w, "1"); Reduce(String key, Iterator intermediate_values): //key: a word, same for input and output //intermediate_values: a list of counts int result = 0; for each v in intermediate_values: result += ParseInt(v); Emit(AsString(result));

MapReduce is widely applicable Distributed grep Document clustering Web link graph reversal Detecting duplicate web pages …

MapReduce implementation Input data is partitioned into M splits Map: extract information on each split –Each Map produces R partitions Shuffle and sort –Bring M partitions to the same reducer Reduce: aggregate, summarize, filter or transform Output is in R result files, stored in a replicated, distributed file system (GFS).

MapReduce scheduling One master, many workers –Input data split into M map tasks –R reduce tasks –Tasks are assigned to workers dynamically

MapReduce scheduling Master assigns a map task to a free worker –Prefers “close-by” workers when assigning task –Worker reads task input (often from local disk!) –Worker produces R local files containing intermediate k/v pairs Master assigns a reduce task to a free worker –Worker reads intermediate k/v pairs from map workers –Worker sorts & applies user’s Reduce op to produce the output

Parallel MapReduce Map Input data Input data Reduce Shuffle Reduce Shuffle Reduce Shuffle Partitioned output Master

WordCount Internals Input data is split into M map jobs Each map job generates in R local partitions “doc1”, “to be or not to be” “to”, “1” “be”, “1” “or”, “1” “not”, “1 “to”, “1” “be”,“1” “not”,“1” “or”, “1” R local partitions “doc234”, “do not be silly” “do”, “1” “not”, “1” “be”, “1” “silly”, “1 “be”,“1” R local partitions “not”,“1” “do”,“1” “to”,“1”,”1” Hash(“to”) % R

WordCount Internals Shuffle brings same partitions to same reducer “to”,“1”,”1” “be”,“1” “not”,“1” “or”, “1” “be”,“1” R local partitions R local partitions “not”,“1” “do”,“1” “to”,“1”,”1” “do”,“1” “be”,“1”,”1” “not”,“1”,”1” “or”, “1”

WordCount Internals Reduce aggregates sorted key values pairs “to”,“1”,”1” “do”,“1” “not”,“1”,”1” “or”, “1” “do”,“1” “to”, “2” “be”,“2” “not”,“2” “or”, “1” “be”,“1”,”1”

The importance of partition function partition(k’, total partitions) -> partition for k’ –e.g. hash(k’) % R What is the partition function for sort?

Load Balance and Pipelining Fine granularity tasks: many more map tasks than machines –Minimizes time for fault recovery –Can pipeline shuffling with map execution –Better dynamic load balancing Often use 200,000 map/5000 reduce tasks w/ 2000 machines

Fault tolerance What are the potential failure cases? –Lost packets –Temporary network disconnect –Servers crash and rebooted –Servers fail permanently (disk wipe)

Fault tolerance via re-execution On master failure: Lab1 assumes the master does not fail On worker failure: Re-execute in-progress map tasks Re-execute in-progress reduce tasks Task completion committed through master Is it possible a task is executed twice?

Avoid straggler using backup tasks Slow workers drastically increase completion time –Other jobs consuming resources on machine –Bad disks with soft errors transfer data very slowly –Weird things: processor caches disabled (!!) –An unusually large reduce partition Solution: Near end of phase, spawn backup copies of tasks –Whichever one finishes first "wins" Effect: Dramatically shortens job completion time

Performance Ideal speedup on N Machines? Why no ideal speedup in practice? Straggler: Slow workers drastically increase completion time –Other jobs consuming resources on machine –Bad disks with soft errors transfer data very slowly –Weird things: processor caches disabled (!!) –An unusually large reduce partition Solution: Near end of phase, spawn backup copies of tasks –Whichever one finishes first "wins" Effect: Dramatically shortens job completion time

MapReduce Sort Performance 1TB (100-byte record) data to be sorted 1700 machines M=15000 R=4000

MapReduce Sort Performance When can shuffle start? When can reduce start?