Jeffrey D. Ullman Stanford University. 2 Formal Definition Implementation Fault-Tolerance Example: Join.

Slides:



Advertisements
Similar presentations
LECTURE 2 Map-Reduce for large scale similarity computation.
Advertisements

Distributed Computing 1. Lower bound for leader election on a complete graph Shmuel Zaks ©
Assignment of Different-Sized Inputs in MapReduce Shantanu Sharma 2 joint work with Foto N. Afrati 1, Shlomi Dolev 2, Ephraim Korach 2, and Jeffrey D.
Outline. Theorem For the two processor network, Bit C(Leader) = Bit C(MaxF) = 2[log 2 ((M + 2)/3.5)] and Bit C t (Leader) = Bit C t (MaxF) = 2[log 2 ((M.
Jeffrey D. Ullman Stanford University. 2  Communication cost for a MapReduce job = the total number of key-value pairs generated by all the mappers.
Greedy Algo. for Selecting a Join Order The "greediness" is based on the idea that we want to keep the intermediate relations as small as possible at each.
CPSC 668Set 4: Asynchronous Lower Bound for LE in Rings1 CPSC 668 Distributed Algorithms and Systems Fall 2009 Prof. Jennifer Welch.
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.
Google’s Map Reduce. Commodity Clusters Web data sets can be very large – Tens to hundreds of terabytes Cannot mine on a single server Standard architecture.
1  Caches load multiple bytes per block to take advantage of spatial locality  If cache block size = 2 n bytes, conceptually split memory into 2 n -byte.
Google’s Map Reduce. Commodity Clusters Web data sets can be very large – Tens to hundreds of terabytes Standard architecture emerging: – Cluster of commodity.
Google’s Map Reduce. Commodity Clusters Web data sets can be very large – Tens to hundreds of terabytes Cannot mine on a single server Standard architecture.
1 Generalizing Map-Reduce The Computational Model Map-Reduce-Like Algorithms Computing Joins.
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
Google Distributed System and Hadoop Lakshmi Thyagarajan.
Jeffrey D. Ullman Stanford University.  Mining of Massive Datasets, J. Leskovec, A. Rajaraman, J. D. Ullman.  Available for free download at i.stanford.edu/~ullman/mmds.html.
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.
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.
Jeffrey D. Ullman Stanford University. 2 Chunking Replication Distribution on Racks.
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.
Meta-MapReduce A Technique for Reducing Communication in MapReduce Computations Foto N. Afrati 1, Shlomi Dolev 2, Shantanu Sharma 2, and Jeffrey D. Ullman.
CS525: Special Topics in DBs Large-Scale Data Management Hadoop/MapReduce Computing Paradigm Spring 2013 WPI, Mohamed Eltabakh 1.
MapReduce: Simplified Data Processing on Large Clusters Jeffrey Dean and Sanjay Ghemawat.
MapReduce and Hadoop 1 Wu-Jun Li Department of Computer Science and Engineering Shanghai Jiao Tong University Lecture 2: MapReduce and Hadoop Mining Massive.
1 The Map-Reduce Framework Compiled by Mark Silberstein, using slides from Dan Weld’s class at U. Washington, Yaniv Carmeli and some other.
Cloud and Big Data Summer School, Stockholm, Aug., 2015 Jeffrey D. Ullman.
MapReduce: Hadoop Implementation. Outline MapReduce overview Applications of MapReduce Hadoop overview.
Hadoop/MapReduce Computing Paradigm 1 Shirish Agale.
f ACT s  Data intensive applications with Petabytes of data  Web pages billion web pages x 20KB = 400+ terabytes  One computer can read
Large-scale file systems and Map-Reduce Single-node architecture Memory Disk CPU Google example: 20+ billion web pages x 20KB = 400+ Terabyte 1 computer.
MAP REDUCE : SIMPLIFIED DATA PROCESSING ON LARGE CLUSTERS Presented by: Simarpreet Gill.
MapReduce How to painlessly process terabytes of data.
MapReduce M/R slides adapted from those of Jeff Dean’s.
IT253: Computer Organization
CS 345A Data Mining MapReduce. Single-node architecture Memory Disk CPU Machine Learning, Statistics “Classical” Data Mining.
Foto Afrati — National Technical University of Athens Anish Das Sarma — Google Research Semih Salihoglu — Stanford University Jeff Ullman — Stanford University.
Alternative Wide Block Encryption For Discussion Only.
MapReduce Algorithm Design Based on Jimmy Lin’s slides
SECTION 5: PERFORMANCE CHRIS ZINGRAF. OVERVIEW: This section measures the performance of MapReduce on two computations, Grep and Sort. These programs.
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.
CS525: Big Data Analytics MapReduce Computing Paradigm & Apache Hadoop Open Source Fall 2013 Elke A. Rundensteiner 1.
CS425: Algorithms for Web Scale Data Most of the slides are from the Mining of Massive Datasets book. These slides have been modified for CS425. The original.
COMPSCI 102 Discrete Mathematics for Computer Science.
IBM Research ® © 2007 IBM Corporation Introduction to Map-Reduce and Join Processing.
C-Store: MapReduce Jianlin Feng School of Software SUN YAT-SEN UNIVERSITY May. 22, 2009.
Hadoop/MapReduce Computing Paradigm 1 CS525: Special Topics in DBs Large-Scale Data Management Presented By Kelly Technologies
MapReduce: Simplified Data Processing on Large Clusters By Dinesh Dharme.
MapReduce and the New Software Stack. Outline  Algorithm Using MapReduce  Matrix-Vector Multiplication  Matrix-Vector Multiplication by MapReduce 
MapReduce: Simplied Data Processing on Large Clusters Written By: Jeffrey Dean and Sanjay Ghemawat Presented By: Manoher Shatha & Naveen Kumar Ratkal.
Jeffrey D. Ullman Stanford University.  A real story from CS341 data-mining project class.  Students involved did a wonderful job, got an “A.”  But.
MapReduce and Hadoop Debapriyo Majumdar Data Mining – Fall 2014 Indian Statistical Institute Kolkata November 10, 2014.
Assignment Problems of Different- Sized Inputs in MapReduce Foto N. Afrati 1, Shlomi Dolev 2, Ephraim Korach 2, Shantanu Sharma 2, and Jeffrey D. Ullman.
Lecture 3 – MapReduce: Implementation CSE 490h – Introduction to Distributed Computing, Spring 2009 Except as otherwise noted, the content of this presentation.
Theory of MapReduce Algorithms
Upper and Lower Bounds on the cost of a Map-Reduce Computation
Large-scale file systems and Map-Reduce
Overview of the Course MapReduce Other Parallel-Computing Systems
Assignment Problems of Different-Sized Inputs in MapReduce
MapReduce Computing Paradigm Basics Fall 2013 Elke A. Rundensteiner
Theory of MapReduce Algorithms
湖南大学-信息科学与工程学院-计算机与科学系
February 26th – Map/Reduce
Cse 344 May 4th – Map/Reduce.
CS 345A Data Mining MapReduce This presentation has been altered.
5/7/2019 Map Reduce Map reduce.
Presentation transcript:

Jeffrey D. Ullman Stanford University

2 Formal Definition Implementation Fault-Tolerance Example: Join

 MapReduce is designed to make parallel programming easy on large collections of commodity compute nodes (processor + memory + disk).  Compute nodes are placed in racks and connected, typically by 1Gb Ethernet.  Racks are also interconnected by somewhat faster switches. 3

 Input: a set of key/value pairs.  User supplies two functions:  map(k*v)  set(k1*v1)  reduce(k1*list(v1))  set(v2)  Technically, the input consists of key-value pairs of some type, but usually only the value is important.  (k1*v1) is the type of an intermediate key/value pair.  Output is a set of (k1*v2) pairs.

 MapReduce job =  Map function (inputs -> key-value pairs) +  Reduce function (key and list of values -> outputs).  Map and Reduce Tasks apply Map or Reduce function to (typically) many of their inputs.  Unit of parallelism – a task is assigned to a single compute node.  Mapper = application of the Map function to a single input.  Reducer = application of the Reduce function to a single key and its list of values. 5

6  The Map tasks generate key-value pairs.  Each takes one or more chunks of input (typically 64MB) from the input (typically stored replicated in a distributed file system).  The system takes all the key-value pairs from all the Map tasks and sorts them by key.  Then, it forms key-(list-of-all-associated-values) pairs and passes each key-(value-list) pair to one of the Reduce tasks.

7 Map tasks Reduce tasks Input from DFS Output to DFS “key”-value pairs

8  MapReduce is designed to deal with compute nodes failing to execute a task.  Re-executes failed tasks, not whole jobs.  Failure modes: 1.Compute-node failure (e.g., disk crash). 2.Rack communication failure. 3.Software failures, e.g., a task requires Java n; node has Java n-1.

9  Key point: MapReduce tasks have the blocking property: no output is used until task is complete.  Thus, we can restart a Map task that failed without fear that a Reduce task has already used some output of the failed Map task.

 Join of R(A,B) with S(B,C) is the set of tuples (a,b,c) such that (a,b) is in R and (b,c) is in S.  Mappers need to send R(a,b) and S(b,c) to the same reducer, so they can be joined there.  Mapper output: key = B-value, value = relation and other component (A or C).  Example: R(1,2) -> (2, (R,1)) S(2,3) -> (2, (S,3)) 10

11 Mapper for R(1,2) R(1,2)(2, (R,1)) Mapper for R(4,2) R(4,2) Mapper for S(2,3) S(2,3) Mapper for S(5,6) S(5,6) (2, (R,4)) (2, (S,3)) (5, (S,6))

 There is a reducer for each key.  Every key-value pair generated by any mapper is sent to the reducer for its key. 12

13 Mapper for R(1,2) (2, (R,1)) Mapper for R(4,2) Mapper for S(2,3) Mapper for S(5,6) (2, (R,4)) (2, (S,3)) (5, (S,6)) Reducer for B = 2 Reducer for B = 5

 The input to each reducer is organized by the system into a pair:  The key.  The list of values associated with that key. 14

15 Reducer for B = 2 Reducer for B = 5 (2, [(R,1), (R,4), (S,3)]) (5, [(S,6)])

 Given key b and a list of values that are either (R, a i ) or (S, c j ), output each triple (a i, b, c j ).  Thus, the number of outputs made by a reducer is the product of the number of R’s on the list and the number of S’s on the list. 16

17 Reducer for B = 2 Reducer for B = 5 (2, [(R,1), (R,4), (S,3)]) (5, [(S,6)]) (1,2,3), (4,2,3)

 A real story from Stanford’s CS341 data-mining project class.  Data consisted of records for 3000 drugs.  List of patients taking, dates, diagnoses.  About 1M of data per drug.  Problem was to find drug interactions.  Example: two drugs that when taken together increase the risk of heart attack.  Must examine each pair of drugs and compare their data. 19

 The first attempt used the following plan:  Key = set of two drugs {i, j}.  Value = the record for one of these drugs.  Given drug i and its record R i, the mapper generates all key-value pairs ({i, j}, R i ), where j is any other drug besides i.  Each reducer receives its key and a list of the two records for that pair: ({i, j}, [R i, R j ]). 20

21 Mapper for drug 2 Mapper for drug 1 Mapper for drug 3 Drug 1 data {1, 2} Reducer for {1,2} Reducer for {2,3} Reducer for {1,3} Drug 1 data {1, 3} Drug 2 data {1, 2} Drug 2 data {2, 3} Drug 3 data {1, 3} Drug 3 data {2, 3}

22 Mapper for drug 2 Mapper for drug 1 Mapper for drug 3 Drug 1 data {1, 2} Reducer for {1,2} Reducer for {2,3} Reducer for {1,3} Drug 1 data {1, 3} Drug 2 data {1, 2} Drug 2 data {2, 3} Drug 3 data {1, 3} Drug 3 data {2, 3}

23 Drug 1 data {1, 2} Reducer for {1,2} Reducer for {2,3} Reducer for {1,3} Drug 1 data Drug 2 data {2, 3} Drug 3 data {1, 3} Drug 3 data

 3000 drugs  times 2999 key-value pairs per drug  times 1,000,000 bytes per key-value pair  = 9 terabytes communicated over a 1Gb Ethernet  = 90,000 seconds of network use. 24

 The team grouped the drugs into 30 groups of 100 drugs each.  Say G 1 = drugs 1-100, G 2 = drugs ,…, G 30 = drugs  Let g(i) = the number of the group into which drug i goes. 25

 A key is a set of two group numbers.  The mapper for drug i produces 29 key-value pairs.  Each key is the set containing g(i) and one of the other group numbers.  The value is a pair consisting of the drug number i and the megabyte-long record for drug i. 26

 The reducer for pair of groups {m, n} gets that key and a list of 200 drug records – the drugs belonging to groups m and n.  Its job is to compare each record from group m with each record from group n.  Special case: also compare records in group n with each other, if m = n+1 or if n = 30 and m = 1.  Notice each pair of records is compared at exactly one reducer, so the total computation is not increased. 27

 The big difference is in the communication requirement.  Now, each of 3000 drugs’ 1MB records is replicated 29 times.  Communication cost = 87GB, vs. 9TB.  But we can still get 435-way parallelism if we have enough compute nodes. 28

1. A set of inputs.  Example: the drug records. 2. A set of outputs.  Example: One output for each pair of drugs, telling whether a statistically significant interaction was detected. 3. A many-many relationship between each output and the inputs needed to compute it.  Example: The output for the pair of drugs {i, j} is related to inputs i and j. 30

31 Drug 1 Drug 2 Drug 3 Drug 4 Output 1-2 Output 1-3 Output 2-4 Output 1-4 Output 2-3 Output 3-4

32  = i j j i

 Reducer size, denoted q, is the maximum number of inputs that a given reducer can have.  I.e., the length of the value list.  Limit might be based on how many inputs can be handled in main memory.  Or: make q low to force lots of parallelism. 33

 The average number of key-value pairs created by each mapper is the replication rate.  Denoted r.  Represents the communication cost per input. 34

 Suppose we use g groups and d drugs.  A reducer needs two groups, so q = 2d/g.  Each of the d inputs is sent to g-1 reducers, or approximately r = g.  Replace g by r in q = 2d/g to get r = 2d/q. 35 Tradeoff! The bigger the reducers, the less communication.

 What we did gives an upper bound on r as a function of q.  A solid investigation of map-reduce algorithms for a problem includes lower bounds.  Proofs that you cannot have lower r for a given q. 36

 A mapping schema for a problem and a reducer size q is an assignment of inputs to sets of reducers, with two conditions: 1.No reducer is assigned more than q inputs. 2.For every output, there is some reducer that receives all of the inputs associated with that output.  Say the reducer covers the output.  If some output is not covered, we can’t compute that output. 37

 Every MapReduce algorithm has a mapping schema.  The requirement that there be a mapping schema is what distinguishes MapReduce algorithms from general parallel algorithms. 38

 d drugs, reducer size q.  Each drug has to meet each of the d-1 other drugs at some reducer.  If a drug is sent to a reducer, then at most q-1 other drugs are there.  Thus, each drug is sent to at least  (d-1)/(q-1)  reducers, and r >  (d-1)/(q-1) .  Or approximately r >  d/q .  Half the r from the algorithm we described.  Better algorithm gives r = d/q + 1, so lower bound is actually tight. 39

 Given a set of bit strings of length b, find all those that differ in exactly one bit.  Example: For b=2, the inputs are 00, 01, 10, 11, and the outputs are (00,01), (00,10), (01,11), (10,11).  Theorem: r > b/log 2 q.  (Part of) the proof later. 41

 We can use one reducer for every output.  Each input is sent to b reducers (so r = b).  Each reducer outputs its pair if both its inputs are present, otherwise, nothing.  Subtle point: if neither input for a reducer is present, then the reducer doesn’t really exist. 42

 Alternatively, we can send all inputs to one reducer.  No replication (i.e., r = 1).  The lone reducer looks at all pairs of inputs that it receives and outputs pairs at distance 1. 43

 Assume b is even.  Two reducers for each string of length b/2.  Call them the left and right reducers for that string.  String w = xy, where |x| = |y| = b/2, goes to the left reducer for x and the right reducer for y.  If w and z differ in exactly one bit, then they will both be sent to the same left reducer (if they disagree in the right half) or to the same right reducer (if they disagree in the left half).  Thus, r = 2; q = 2 b/2. 44

 Lemma: A reducer of size q cannot cover more than (q/2)log 2 q outputs.  Induction on b; proof omitted.  (b/2)2 b outputs must be covered.  There are at least p = (b/2)2 b /((q/2)log 2 q) = (b/q)2 b /log 2 q reducers.  Sum of inputs over all reducers > pq = b2 b /log 2 q.  Replication rate r = pq/2 b = b/log 2 q.  Omits possibility that smaller reducers help. 45

Algorithms Matching Lower Bound q = reducer size b b/2 2b2b All inputs to one reducer One reducer for each output Splitting Generalized Splitting 46 r = replication rate r = b/log 2 q

 Represent problems by mapping schemas  Get upper bounds on number of outputs covered by one reducer, as a function of reducer size.  Turn these into lower bounds on replication rate as a function of reducer size.  For All-Pairs (“drug interactions”) problem and HD1 problem: exact match between upper and lower bounds. 47

 Get matching upper and lower bounds for the Hamming-distance problem for distances greater than 1.  Ugly fact: For HD=1, you cannot have a large reducer with all pairs at distance 1; for HD=2, it is possible.  Consider all inputs of weight 1 and length b. 48

1. Give an algorithm that takes an input-output mapping and a reducer size q, and gives a mapping schema with the smallest replication rate. 2. Is the problem even tractable? 3. A recent extension by Afrati, Dolev, Korach, Sharma, and U. lets inputs have weights, and the reducer size limits the sum of the weights of the inputs received.  What can be extended to this model? 49