MapReduce: Simplified Data Processing on Large Cluster Authors: Jeffrey Dean and Sanjay Ghemawat Presented by: Yang Liu, University of Michigan EECS 582.

Slides:



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

Overview of MapReduce and Hadoop
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
CS 345A Data Mining MapReduce. Single-node architecture Memory Disk CPU Machine Learning, Statistics “Classical” Data Mining.
Map Reduce Allan Jefferson Armando Gonçalves Rocir Leite Filipe??
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.
MapReduce Simplified Data Processing On large Clusters Jeffery Dean and Sanjay Ghemawat.
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:
Map Reduce Architecture
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.
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.
Leroy Garcia. What is Map Reduce?  A patented programming model developed by Google Derived from LISP and other forms of functional programming  Used.
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.
Map Reduce for data-intensive computing (Some of the content is adapted from the original authors’ talk at OSDI 04)
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.
MapReduce: Hadoop Implementation. Outline MapReduce overview Applications of MapReduce Hadoop overview.
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 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: Simplified Data Processing on Large Clusters
Pregel: A System for Large-Scale Graph Processing Grzegorz Malewicz, Matthew H. Austern, Aart J. C. Bik, James C. Dehnert, Ilan Horn, Naty Leiser, and.
MapReduce How to painlessly process terabytes of data.
MapReduce M/R slides adapted from those of Jeff Dean’s.
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.
CS 345A Data Mining MapReduce. Single-node architecture Memory Disk CPU Machine Learning, Statistics “Classical” Data Mining.
SLIDE 1IS 240 – Spring 2013 MapReduce, HBase, and Hive University of California, Berkeley School of Information IS 257: Database Management.
SECTION 5: PERFORMANCE CHRIS ZINGRAF. OVERVIEW: This section measures the performance of MapReduce on two computations, Grep and Sort. These programs.
MapReduce and the New Software Stack CHAPTER 2 1.
By Jeff Dean & Sanjay Ghemawat Google Inc. OSDI 2004 Presented by : Mohit Deopujari.
MapReduce: Simplified Data Processing on Large Clusters Lim JunSeok.
MapReduce Computer Engineering Department Distributed Systems Course Assoc. Prof. Dr. Ahmet Sayar Kocaeli University - Fall 2015.
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.
1 Student Date Time Wei Li Nov 30, 2015 Monday 9:00-9:25am Shubbhi Taneja Nov 30, 2015 Monday9:25-9:50am Rodrigo Sanandan Dec 2, 2015 Wednesday9:00-9:25am.
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.
Large-scale file systems and Map-Reduce
MapReduce: Simplified Data Processing on Large Clusters
Auburn University COMP7330/7336 Advanced Parallel and Distributed Computing MapReduce - Introduction Dr. Xiao Qin Auburn.
MapReduce Simplified Data Processing on Large Cluster
MapReduce Simplied Data Processing on Large Clusters
Map-Reduce framework -By Jagadish Rouniyar.
CS 345A Data Mining MapReduce This presentation has been altered.
Cloud Computing MapReduce, Batch Processing
MapReduce: Simplified Data Processing on Large Clusters
5/7/2019 Map Reduce Map reduce.
MapReduce: Simplified Data Processing on Large Clusters
Presentation transcript:

MapReduce: Simplified Data Processing on Large Cluster Authors: Jeffrey Dean and Sanjay Ghemawat Presented by: Yang Liu, University of Michigan EECS 582 – W161

About the Authors EECS 582 – W162 Jeff DeanSanjay Ghemawat

Motivation Challenge at google Input data too large -> distributed computing Most computations are straightforward(log processing, inverted index) -> boring work Complexity of distributed computing Machine failure Scheduling EECS 582 – W163

Solution: MapReduce MapReduce as the distributed programing infrastructure Simple Programming interface: Map + Reduce Distributed implementation that hides all the messy details Fault tolerance I/O scheduling parallelization EECS 582 – W164

Programming Model EECS 582 – W165 Inspired by map and reduce functions in Lisp and other functional programing languages Lisp: Map #‘length’ (() (a) (ab) (abc)) Reduce #‘+’ ( )

Programing Model Programmer only need to specify two functions: Map Function map (in_key, in_value) -> list(out_key, intermediate_value) Process input key/value pair Produce set of output key/intermediate value pairs Reduce Function reduce (out_key, intermediate_value) -> list(out_value) Process intermediate key/value pairs Combines intermediate values per unique key Produce a set of merged output values(usually just one) EECS 582 – W166

Programming Model EECS 582 – W167 [input (key, value)] [Intermediate (key, value)] [Unique key, output value list] Map Function Shuffle (merge sort by key)Reduce function

Example: WordCount EECS 582 – W168 the small brown fox a fox speaks to another fox brown cow cross the road Input Shuffle Split the small brown fox a fox speaks to another fox brown cow cross the road Map Reduce Output a, 1 another 1 brown, 2 cross, 1 cow, 1 fox, 3 road, 1 small, 1 speaks, 1 the, 2 to, 1

More Programs based on MR EECS 582 – W169 Inverted Index Distributed Sort Distributed Grep URL Frequency MapReduce Program in Google source tree

System Implementation: Overview Cluster Characteristic 100s/1000s of 2-CPU x86 machines, 2-4 GB of memory Limited bisection bandwidth Storage is on local IDE disks Infrastructure GFS: distributed file system manages data (SOSP'03) Job scheduling system: jobs made up of tasks, scheduler assigns tasks to machines (Borg?) EECS 582 – W1610

GFS Scheduler submit allocate Control Flow and data flow EECS 582 – W1611 User Program Worker Master Worker fork assign map assign reduce read remote read, sort Output File 0 Output File 1 write Split 0 Split 1 Split 2 Input Data MapReduce Architecture local write Notify location of local write

Execution EECS 582 – W1612

Parallel Execution EECS 582 – W1613

Coordinate EECS 582 – W1614 Master data structures Task status: (idle, in-progress, completed) Idle tasks get scheduled as workers become available When a map task completes, it sends the master the location and sizes of its R intermediate files, one for each reducer Master incrementally pushes this info to reducers Master pings workers periodically to detect failures

Fault Tolerance EECS 582 – W1615 Map worker failure Completed or in-progress tasks are reset to idle Reduce worker failure Only in-progress tasks are reset to idle Why? Master failure MapReduce Task is aborted and client is notified Reset tasks are rescheduled on another machine

Task Granularity EECS 582 – W1616 Many more map tasks than machines Minimizes time for fault recovery Can pipeline shuffling with map Better dynamic Load balancing Execution Often use 200,000 map/5000 reduce tasks w/ 2000 machines

Backup Tasks EECS 582 – W1617 Slow worker delay completion time Processor’s cache being disabled Bad disk with soft errors Start back-up tasks, for those in-progress as the job nears completion First task to complete is considered Disk

Disk Locality EECS 582 – W1618 Map tasks are scheduled close to data on nodes that have input data if not, on nodes that are nearer to input data Ex. Same network switch Conserves network bandwidth Leverage the Google File System

Combiner Function EECS 582 – W1619 Local reducer at the map worker Can save network time by pre-aggregating at mapper Works only if reduce function is commutative and associative combine(k1, list(v1)) Map

WordCount: No combine EECS 582 – W1620 the small brown fox a fox speaks to another fox brown cow cross the road Input Shuffle Split the small brown fox a fox speaks to another fox brown cow cross the road Map Reduce Output a, 1 another 1 brown, 2 cross, 1 cow, 1 fox, 3 road, 1 small, 1 speaks, 1 the, 2 to, 1

WordCount: Combine EECS 582 – W1621 the small brown fox a fox speaks to another fox brown cow cross the road Input Shuffle Split the small brown fox a fox speaks to another fox brown cow cross the road Map Reduce Output a, 1 another 1 brown, 2 cross, 1 cow, 1 fox, 3 road, 1 small, 1 speaks, 1 the, 2 to, 1

Partitioning Function EECS 582 – W1622 Records with the same intermediate key end up at the same reducer Default partition function e.g., hash(key) mod R Sometimes useful to override E.g., hash(hostname(URL)) mod R ensures URLs from a host end up in the same output file

More Features EECS 582 – W1623 Skipping Bad Records Input and Output Types Local Execution Status Information Counters etc...

Performance EECS 582 – W1624 Tests run on cluster of 1800 machines: 4 GB of memory 2 GHz Intel Xeon Dual-processor Dual 160 GB IDE disks Two benchmarks: MR_GrepScan byte records to extract records matching a rare pattern MR_SortSort byte records

Performance – MR_Grep EECS 582 – W1625 Locality optimization helps: 1800 machines read 1 TB of data at peak of ~31GB/s Without this, rack switches would limit to 10 GB/s Startup overhead is significant for short jobs

Performance – MR_Sort EECS 582 – W1626 Backup tasks reduce job completion time significantly System deals well with failures

Conclusion EECS 582 – W1627 Inexpensive commodity machines can be the basis of a large scale reliable system MapReduce hides all the messy details of distributed computing MapReduce provides a simple parallel programming interface

Lessons learn EECS 582 – W1628 General Design General Abstraction -> Solve many problems -> Success Simple Interface -> Fast Adaption -> Success Distributed System design Network is a scarce resource Locality matters Pre-aggregate whenever possible Master-Worker architecture is simple yet powerful

Influence EECS 582 – W1629 MapReduce is one of the MOST cited system paper : as for 03/08/ Together with Google File System, Bigtable, it inspires the Big Data Era What happen after MapReduce?

In Open source world: Hadoop EECS 582 – W : Doug Cutting and Michael J. Cafarella developed Hadoop to support distribution for the Nutch search engine project(invert index) Now:

In Google EECS 582 – W1631

Barrier Problem with MapReduce: I/O Barrier Any MR algorithm can be simulated on BSP and vice versa EECS 582 – W1632 Map Reduce GFSGFS GFSGFS

Post MapReduce System EECS 582 – W1633 Hadoop MapReduce Giraph... MapReduce MillWheel DataFlow Model(Apache Beam) TensorFlow Pregel Google Open Source MapReduce DAG Computing Graph Computing Stream Processing Machine Learning General Model Tez Spark FlumeJava MLib GraphX Spark Streaming Spark Net Storm

Questions? EECS 582 – W1634

References MapReduce Architecture: MapReduce Presentation: MapReduce Presentation: Operating system support for warehouse-scale computing: Apache Ecosystem Pic: MapReduce: osdi04.pdf/ osdi04.pdf/ FlumeJava: CloudPapers/FlumeJava.pdf/ CloudPapers/FlumeJava.pdf/ MillWheel: Pregel: EECS 582 – W1635

References Giraph: Spark: Tez: DataFlow: Tensorflow: Apache Beam: SparkNet: Caffe on Spark: distributed-deep-learning-on-hadoophttp://yahoohadoop.tumblr.com/post/ /large-scale- distributed-deep-learning-on-hadoop EECS 582 – W1636