CS 61C: Great Ideas in Computer Architecture (Machine Structures) Warehouse-Scale Computing, MapReduce, and Spark

Similar documents
CS 61C: Great Ideas in Computer Architecture (Machine Structures) Warehouse-Scale Computing, MapReduce, and Spark

CS 61C: Great Ideas in Computer Architecture. MapReduce

E.g., Google s Oregon WSC. In the news. Server, Rack, Array. Containers in WSCs 7/27/15. New- School Machine Structures (It s a bit more complicated!

CS 61C: Great Ideas in Computer Architecture Lecture 21: Warehouse- Scale Compu1ng, MapReduce, and Spark

CS 61C: Great Ideas in Computer Architecture (Machine Structures) Warehouse-Scale Computing

Warehouse-Scale Computing

In the news. Request- Level Parallelism (RLP) Agenda 10/7/11

Agenda. Request- Level Parallelism. Agenda. Anatomy of a Web Search. Google Query- Serving Architecture 9/20/10

Today s Lecture. CS 61C: Great Ideas in Computer Architecture (Machine Structures) Map Reduce

Instructors Randy H. Katz hdp://inst.eecs.berkeley.edu/~cs61c/fa13. Power UVlizaVon Efficiency. Datacenter. Infrastructure.

Parallel Computing: MapReduce Jin, Hai

Cloud Programming. Programming Environment Oct 29, 2015 Osamu Tatebe

Review. Agenda. Request-Level Parallelism (RLP) Google Query-Serving Architecture 8/8/2011

Parallel Programming Principle and Practice. Lecture 10 Big Data Processing with MapReduce

CSE Lecture 11: Map/Reduce 7 October Nate Nystrom UTA

The MapReduce Abstraction

Distributed Computations MapReduce. adapted from Jeff Dean s slides

MapReduce, Hadoop and Spark. Bompotas Agorakis

MapReduce Spark. Some slides are adapted from those of Jeff Dean and Matei Zaharia

Overview. Why MapReduce? What is MapReduce? The Hadoop Distributed File System Cloudera, Inc.

Big Data Management and NoSQL Databases

MapReduce: Simplified Data Processing on Large Clusters 유연일민철기

ECE5610/CSC6220 Introduction to Parallel and Distribution Computing. Lecture 6: MapReduce in Parallel Computing

Map Reduce Group Meeting

CS555: Distributed Systems [Fall 2017] Dept. Of Computer Science, Colorado State University

Smart Phone. Computer. Core. Logic Gates

Introduction to MapReduce. Adapted from Jimmy Lin (U. Maryland, USA)

MapReduce: Simplified Data Processing on Large Clusters

Where We Are. Review: Parallel DBMS. Parallel DBMS. Introduction to Data Management CSE 344

CS 345A Data Mining. MapReduce

PLATFORM AND SOFTWARE AS A SERVICE THE MAPREDUCE PROGRAMMING MODEL AND IMPLEMENTATIONS

Introduction to Data Management CSE 344

Batch Processing Basic architecture

Map Reduce. Yerevan.

Clustering Lecture 8: MapReduce

CSE 544 Principles of Database Management Systems. Alvin Cheung Fall 2015 Lecture 10 Parallel Programming Models: Map Reduce and Spark

MI-PDB, MIE-PDB: Advanced Database Systems

Database Systems CSE 414

Introduction to Data Management CSE 344

Parallel Programming Concepts

Motivation. Map in Lisp (Scheme) Map/Reduce. MapReduce: Simplified Data Processing on Large Clusters

Instructors: Randy H. Katz David A. PaHerson hhp://inst.eecs.berkeley.edu/~cs61c/fa10. Fall Lecture #9. Agenda

Announcements. Optional Reading. Distributed File System (DFS) MapReduce Process. MapReduce. Database Systems CSE 414. HW5 is due tomorrow 11pm

CS6030 Cloud Computing. Acknowledgements. Today s Topics. Intro to Cloud Computing 10/20/15. Ajay Gupta, WMU-CS. WiSe Lab

CSE 444: Database Internals. Lecture 23 Spark

Announcements. Parallel Data Processing in the 20 th Century. Parallel Join Illustration. Introduction to Database Systems CSE 414

Introduction to Map Reduce

L22: SC Report, Map Reduce

Lecture 20: WSC, Datacenters. Topics: warehouse-scale computing and datacenters (Sections )

Advanced Database Technologies NoSQL: Not only SQL

Chapter 5. The MapReduce Programming Model and Implementation

The MapReduce Framework

CPSC 426/526. Cloud Computing. Ennan Zhai. Computer Science Department Yale University

Principles of Data Management. Lecture #16 (MapReduce & DFS for Big Data)

CS /5/18. Paul Krzyzanowski 1. Credit. Distributed Systems 18. MapReduce. Simplest environment for parallel processing. Background.

Big data systems 12/8/17

CS427 Multicore Architecture and Parallel Computing

ΕΠΛ372 Παράλληλη Επεξεργάσια

Hadoop/MapReduce Computing Paradigm

Programming Systems for Big Data

Announcements. Reading Material. Map Reduce. The Map-Reduce Framework 10/3/17. Big Data. CompSci 516: Database Systems

Parallel Nested Loops

Parallel Partition-Based. Parallel Nested Loops. Median. More Join Thoughts. Parallel Office Tools 9/15/2011

Large-Scale GPU programming

CompSci 516: Database Systems

Lecture 12 DATA ANALYTICS ON WEB SCALE

MapReduce and Hadoop

Cloud Computing and Hadoop Distributed File System. UCSB CS170, Spring 2018

Introduction to MapReduce

1. Introduction to MapReduce

Distributed Systems. 18. MapReduce. Paul Krzyzanowski. Rutgers University. Fall 2015

Parallel Data Processing with Hadoop/MapReduce. CS140 Tao Yang, 2014

Introduction to Data Management CSE 344

CS 61C: Great Ideas in Computer Architecture (Machine Structures) Lecture 17 Datacenters and Cloud Compu5ng

Big Data Programming: an Introduction. Spring 2015, X. Zhang Fordham Univ.

MapReduce. Kiril Valev LMU Kiril Valev (LMU) MapReduce / 35

Distributed Systems. 05r. Case study: Google Cluster Architecture. Paul Krzyzanowski. Rutgers University. Fall 2016

Introduction to MapReduce

OS, Base & Bounds, Virtual Memory Intro. Instructor: Steven Ho

Database System Architectures Parallel DBs, MapReduce, ColumnStores

Lecture 11 Hadoop & Spark

Data Centers and Cloud Computing

Distributed computing: index building and use

CS / Cloud Computing. Recitation 3 September 9 th & 11 th, 2014

Systems Infrastructure for Data Science. Web Science Group Uni Freiburg WS 2013/14

Page 1. Goals for Today" Background of Cloud Computing" Sources Driving Big Data" CS162 Operating Systems and Systems Programming Lecture 24

CSE 124: THE DATACENTER AS A COMPUTER. George Porter November 20 and 22, 2017

Introduction to MapReduce

Concurrency for data-intensive applications

Data Centers and Cloud Computing. Data Centers

Data Clustering on the Parallel Hadoop MapReduce Model. Dimitrios Verraros

CIS 601 Graduate Seminar Presentation Introduction to MapReduce --Mechanism and Applicatoin. Presented by: Suhua Wei Yong Yu

MapReduce-style data processing

Informa)on Retrieval and Map- Reduce Implementa)ons. Mohammad Amir Sharif PhD Student Center for Advanced Computer Studies

Big Data Infrastructure CS 489/698 Big Data Infrastructure (Winter 2017)

A Computer Scientist Looks at the Energy Problem

MapReduce & Resilient Distributed Datasets. Yiqing Hua, Mengqi(Mandy) Xia

Introduction to MapReduce. Adapted from Jimmy Lin (U. Maryland, USA)

Spark, Shark and Spark Streaming Introduction

CS 345A Data Mining. MapReduce

Transcription:

CS 61C: Great Ideas in Computer Architecture (Machine Structures) Warehouse-Scale Computing, MapReduce, and Spark Instructors: Bernard Boser & Randy H. Katz http://inst.eecs.berkeley.edu/~cs61c/ 11/11/16 Fall 2016 -- Lecture #21 1

New-School Machine Structures Software Parallel Requests Assigned to computer e.g., Search Randy Katz Parallel Threads Assigned to core e.g., Lookup, Ads Parallel Instructions >1 instruction @ one time e.g., 5 pipelined instructions Parallel Data >1 data item @ one time Hardware descriptions All gates @ one time Programming Languages Harness Parallelism & Achieve High Performance Hardware Warehouse Scale Computer Core Memory Input/Output Instruction Unit(s) Cache Memory Computer (Cache) Core Core Functional Unit(s) A 0 +B 0 A 1 +B 1 A 2 +B 2 A 3 +B 3 Smart Phone Logic Gates 11/11/16 Fall 2016 -- Lecture #21 2

Agenda Warehouse Scale Computing Cloud Computing Request Level Parallelism (RLP) Map-Reduce Data Parallelism And, in Conclusion 11/11/16 Fall 2016 -- Lecture #21 3

Agenda Warehouse Scale Computing Cloud Computing Request Level Parallelism (RLP) Map-Reduce Data Parallelism And, in Conclusion 11/11/16 Fall 2016 -- Lecture #21 4

Google s WSCs Ex: In Oregon 11/11/16 11/11/16 Fall 2016 -- Lecture #21 5 5

WSC Architecture 1U Server: 8 cores, 16 GB DRAM, 4x1 TB disk Rack: 40-80 severs, Local Ethernet (1-10Gbps) switch (30$/1Gbps/server) Array (aka cluster): 16-32 racks Expensive switch (10X bandwidth à 100x cost) 11/11/16 Fall 2016 -- Lecture #21 6

WSC Storage Hierarchy Lower latency to DRAM in another server than local disk Higher bandwidth to local disk than to DRAM in another server 1U Server: DRAM: 16GB, 100ns, 20GB/s Disk: 2TB, 10ms, 200MB/s Rack (80 severs): DRAM: 1TB, 300us, 100MB/s Disk: 160TB, 11ms, 100MB/s Array (30 racks): DRAM: 30TB, 500us, 10MB/s Disk: 4.80PB, 12ms, 10MB/s 11/11/16 Fall 2016 -- Lecture #21 7

Google Server Internals Google Server 11/11/16 Fall 2016 -- Lecture #21 8

Power Usage Effectiveness Energy efficiency Primary concern in the design of WSC Important component of the total cost of ownership Power Usage Effectiveness (PUE): Total Building Power IT equipment Power Power efficiency measure for WSC Not considering efficiency of servers, networking Perfection = 1.0 Google WSC s PUE = 1.2 11/11/16 Fall 2016 -- Lecture #21 10

Power Usage Effectiveness Datacenter Total Power In Infrastructure Infrastructure IT Equipment PUE = Total Power/IT Power PUE = 1.5 2 Air Conditioning, Power Distribution, UPS, Servers, Storage, Networks 11/11/16 Fall 2016 -- Lecture #21 11

Energy Proportionality The Case for Energy-Proportional Computing, Luiz André Barroso, Urs Hölzle, IEEE Computer December 2007 It is surprisingly hard to achieve high levels of utilization of typical servers (and your home PC or laptop is even worse) Figure 1. Average CPU utilization of more than 5,000 servers during a six-month period. Servers are rarely completely idle and seldom operate near their maximum utilization, instead operating most of the time at between 10 and 50 percent of their maximum 12

Energy Proportional Computing The Case for Energy-Proportional Computing, Luiz André Barroso, Urs Hölzle, IEEE Computer December 2007 Energy Efficiency = Utilization/Power Figure 2. Server power usage and energy efficiency at varying utilization levels, from idle to peak performance. Even an energy-efficient server still consumes about half its full power when doing virtually no work. 13

Energy Proportionality The Case for Energy-Proportional Computing, Luiz André Barroso, Urs Hölzle, IEEE Computer December 2007 Design for wide dynamic power range and active low power modes Energy Efficiency = Utilization/Power Figure 4. Power usage and energy efficiency in a more energy-proportional server. This server has a power efficiency of more than 80 percent of its peak value for utilizations of 30 percent and above, with efficiency remaining above 50 percent for utilization levels as low as 10 percent. 14

Agenda Warehouse Scale Computing Cloud Computing Request Level Parallelism (RLP) Map-Reduce Data Parallelism And, in Conclusion 11/11/16 Fall 2016 -- Lecture #21 15

Scaled Communities, Processing, and Data 11/11/16 Fall 2016 -- Lecture #21 16

Quality and Freshness Better, Faster, More Timely Results 0.44 Google Translation Quality vs. Corpora Size 0.42 Today s Cloud Cloud Increased Freshness Of Results Future Test data BLEU 0.40 0.38 0.36 0.34 target KN + ldcnews KN + webnews KN target SB + ldcnews SB + webnews SB + web SB 10 10 2 10 3 10 4 10 5 10 6 LM training data size, Million tokens 11/11/16 Fall 2016 -- Lecture #21 17

Cloud Distinguished by Shared platform with illusion of isolation Collocation with other tenants Exploits technology of VMs and hypervisors (next lectures!) At best fair allocation of resources, but not true isolation Attraction of low-cost cycles Economies of scale driving move to consolidation Statistical multiplexing to achieve high utilization/efficiency of resources Elastic service Pay for what you need, get more when you need it But no performance guarantees: assumes uncorrelated demand for resources 11/11/16 Fall 2016 -- Lecture #21 18

Cloud Services SaaS: deliver apps over Internet, eliminating need to install/run on customer's computers, simplifying maintenance and support E.g., Google Docs, Win Apps in the Cloud PaaS: deliver computing stack as a service, using cloud infrastructure to implement apps. Deploy apps without cost/complexity of buying and managing underlying layers E.g., Hadoop on EC2, Apache Spark on GCP IaaS: Rather than purchasing servers, sw, DC space or net equipment, clients buy resources as an outsourced service. Billed on utility basis. Amount of resources consumed/cost reflect level of activity E.g., Amazon Elastic Compute Cloud, Google Compute Platform 11/11/16 Fall 2016 -- Lecture #21 19

Administrivia Midterm II graded and regrade period open until Monday@11:59:59 PM What do about Friday labs and Veterans Day? Make ups for Friday labs posted on Piazza Project #4-1 released Simplified Project #5 coming soon (MapReduce) 11/11/16 Fall 2016 -- Lecture #21 20

Agenda Warehouse Scale Computing Cloud Computing Request Level Parallelism (RLP) Map-Reduce Data Parallelism And, in Conclusion 11/11/16 Fall 2016 -- Lecture #21 21

Request-Level Parallelism (RLP) Hundreds of thousands of requests per second Popular Internet services like web search, social networking, Such requests are largely independent Often involve read-mostly databases Rarely involve read-write sharing or synchronization across requests Computation easily partitioned across different requests and even within a request 11/11/16 Fall 2016 -- Lecture #21 22

Google Query-Serving Architecture 11/11/16 Fall 2016 -- Lecture #21 23

Web Search Result 11/11/16 Fall 2016 -- Lecture #2 24

Anatomy of a Web Search (1/3) Google Randy Katz 1. Direct request to closest Google Warehouse Scale Computer 2. Front-end load balancer directs request to one of many clusters of servers within WSC 3. Within cluster, select one of many Google Web Servers (GWS) to handle the request and compose the response pages 4. GWS communicates with Index Servers to find documents that contain the search words, Randy, Katz, uses location of search as well 5. Return document list with associated relevance score 11/11/16 Fall 2016 -- Lecture #21 25

Anatomy of a Web Search (2/3) In parallel, Ad system: books by Katz at Amazon.com Images of Randy Katz Use docids (document IDs) to access indexed documents Compose the page Result document extracts (with keyword in context) ordered by relevance score Sponsored links (along the top) and advertisements (along the sides) 11/11/16 Fall 2016 -- Lecture #21 26

Anatomy of a Web Search (3/3) Implementation strategy Randomly distribute the entries Make many copies of data (aka replicas ) Load balance requests across replicas Redundant copies of indices and documents Breaks up hot spots, e.g., Justin Bieber Increases opportunities for request-level parallelism Makes the system more tolerant of failures 11/11/16 Fall 2016 -- Lecture #21 27

Agenda Warehouse Scale Computing Cloud Computing Request Level Parallelism (RLP) Map-Reduce Data Parallelism And, in Conclusion 11/11/16 Fall 2016 -- Lecture #21 28

Data-Level Parallelism (DLP) SIMD Supports data-level parallelism in a single machine Additional instructions & hardware (e.g., AVX) e.g., Matrix multiplication in memory DLP on WSC Supports data-level parallelism across multiple machines MapReduce & scalable file systems 11/11/16 Fall 2016 -- Lecture #21 29

Problem Statement How process large amounts of raw data (crawled documents, request logs, ) every day to compute derived data (inverted indices, page popularity, ) when computation conceptually simple but input data large and distributed across 100s to 1000s of servers so that finish in reasonable time? Challenge: Parallelize computation, distribute data, tolerate faults without obscuring simple computation with complex code to deal with issues 11/11/16 Fall 2016 -- Lecture #21 30

Solution: MapReduce Simple data-parallel programming model and implementation for processing large datasets Users specify the computation in terms of a map function, and a reduce function Underlying runtime system Automatically parallelize the computation across large scale clusters of machines Handles machine failure Schedule inter-machine communication to make efficient use of the networks Jeffrey Dean and Sanjay Ghemawat, MapReduce: Simplified Data Processing on Large Clusters, 6 th USENIX Symposium on Operating Systems Design and Implementation, 2004. (optional reading, linked on course homepage a digestible CS paper at the 61C level) 11/11/16 Fall 2016 -- Lecture #21 31

Inspiration: Map & Reduce Functions, ex: Python 4 n=1 Calculate : n 2 A = [1, 2, 3, 4] def square(x): return x * x def sum(x, y): return x + y reduce(sum, map(square, A)) 1 2 3 4 1 4 9 16 5 25 11/11/16 Fall 2016 -- Lecture #21 32 30

MapReduce Programming Model Map: (in_key, in_value) à list(interm_key, interm_val) map(in_key, in_val): // DO WORK HERE emit(interm_key,interm_val) Slice data into shards or splits and distribute to workers Compute set of intermediate key/value pairs Reduce: (interm_key, list(interm_value)) à list(out_value) reduce(interm_key, list(interm_val)): // DO WORK HERE emit(out_key, out_val) Combines all intermediate values for a particular key Produces a set of merged output values (usually just one) 11/11/16 Fall 2016 -- Lecture #21 33

Fine granularity tasks: many more map tasks than machines Bucket sort to get same keys together 2000 servers => 200,000 Map Tasks, 5,000 Reduce tasks MapReduce Execution 11/11/16 Fall 2016 -- Lecture #21 34

MapReduce Word Count Example Distribute that that is is that that is not is not is that it it is Map 1 Map 2 Map 3 Map 4 that is 1, that 1, that 1, that 1, is 1 Is 1, that 1, that 1 is 1, not is 1, 1, not is 1,not 1 is 1, that is 1, it 1, 1, it it 1, 1, it that 1, is 1 Local Sort Shuffle Collect is 1,1,1,1,1,1 that 1,1,1,1,1 it 1,1 not 1,1 Reduce 1 Reduce 2 is 6; it 2 not 2; that 5 is 6; it 2; not 2; that 5 11/11/16 Fall 2016 -- Lecture #2 35

MapReduce Word Count Example Task of counting the number of occurrences of each word in a large collection of documents User-written Map function reads the document data and parses the words. For each word, it writes the (key, value) pair of (word, 1). The word is treated as the intermediate key and the associated value of 1 means that we saw the word once. Map phase: (doc name, doc contents) à list(word, count) // I do I learn à [( I,1),( do,1),( I,1),( learn,1)] map(key, value): for each word w in value: emit(w, 1) 11/11/16 Fall 2016 -- Lecture #21 36

MapReduce Word Count Example Task of counting the number of occurrences of each word in a large collection of documents. Intermediate data is then sorted by MapReduce by keys and the user s Reduce function is called for each unique key. In this case, Reduce is called with a list of a "1" for each occurrence of the word that was parsed from the document. The function adds them up to generate a total word count for that word. Reduce phase: (word, list(counts)) à (word, count_sum) // ( I, [1,1]) à ( I,2) reduce(key, values): result = 0 for each v in values: result += v emit(key, result) 11/11/16 Fall 2016 -- Lecture #21 37

11/11/16 Fall 2016 -- Lecture #21 38

The Combiner (Optional) One missing piece for our first example: Many times, the output of a single mapper can be compressed to save on bandwidth and to distribute work (usually more map tasks than reduce tasks) To implement this, we have the combiner: combiner(interm_key,list(interm_val)): // DO WORK (usually like reducer) emit(interm_key2, interm_val2) 8/07/2016 Summer 2016 -- Lecture #26 39

Our Final Execution Sequence Map Apply operations to all input key, val Combine Apply reducer operation, but distributed across map tasks Reduce Combine all values of a key to produce desired output 8/07/2016 Summer 2016 -- Lecture #26 40

MapReduce Processing Example: Count Word Occurrences Pseudo Code: for each word in input, generate <key=word, value=1> Reduce sums all counts emitted for a particular word across all mappers map(string input_key, String input_value): // input_key: document name // input_value: document contents for each word w in input_value: EmitIntermediate(w, "1"); // Produce count of words combiner: (same as below reducer) reduce(string output_key, Iterator intermediate_values): // output_key: a word // intermediate_values: a list of counts int result = 0; for each v in intermediate_values: result += ParseInt(v); // get integer from key-value Emit(output_key, result); 8/07/2016 Summer 2016 -- Lecture #26 41

MapReduce Word Count Example (with Combiner) Distribute that that is is that that is not is not is that it it is Map 1 Map 2 Map 3 Map 4 Local Sort is 1, that is 1, 1, that that 2 1 Is 1, that is 1, 1, that that 2 1 is 1, is 1, 2, not 1,not 2 1 is 1, is 1, 2, it 1, 2, it that 1, that 1 1 Combine Shuffle Collect is 1,1,2,2 that 2,2,1 It 2 not 2 Reduce 1 Reduce 2 is 6; it 2 not 2; that 5 is 6; it 2; not 2; that 5 11/11/16 Fall 2016 -- Lecture #2 42

MapReduce Processing Shuffle phase 11/11/16 Fall 2016 -- Lecture #2 43

MapReduce Processing 1. MR 1st splits the input files into M splits then starts many copies of program on servers Shuffle phase 11/11/16 Fall 2016 -- Lecture #2 44

2. One copy the master is special. The rest are workers. The master picks idle workers and assigns each 1 of M map tasks or 1 of R reduce tasks. MapReduce Processing Shuffle phase 11/11/16 Fall 2016 -- Lecture #2 45

MapReduce Processing 3. A map worker reads the input split. It parses key/value pairs of the input data and passes each pair to the user-defined map function. (The intermediate key/value pairs produced by the map function are buffered in memory.) Shuffle phase 11/11/16 Fall 2016 -- Lecture #2 46

4. Periodically, the buffered pairs are written to local disk, partitioned into R regions by the partitioning function. MapReduce Processing Shuffle phase 11/11/16 Fall 2016 -- Lecture #2 47

5. When a reduce worker has read all intermediate data for its partition, it bucket sorts using intermediate keys so that occurrences of same keys are grouped together MapReduce Processing (The sorting is needed because typically many different keys map to the same reduce task ) Shuffle phase 11/11/16 Fall 2016 -- Lecture #2 48

6. Reduce worker iterates over sorted intermediate data and for each unique intermediate key, it passes key and corresponding set of values to the user s reduce function. MapReduce Processing The output of the reduce function is appended to a final output file for this reduce partition. Shuffle phase 11/11/16 Fall 2016 -- Lecture #2 49

7. When all map tasks and reduce tasks have been completed, the master wakes up the user program. The MapReduce call in user program returns back to user code. MapReduce Processing Output of MR is in R output files (1 per reduce task, with file names specified by user); often passed into another MR job so don t concatenate Shuffle phase 11/11/16 Fall 2016 -- Lecture #2 50

Big Data Framework: Hadoop & Spark Apache Hadoop Open-source MapReduce Framework Hadoop Distributed File System (HDFS) MapReduce Java APIs Apache Spark Fast and general engine for large-scale data processing. Originally developed in the AMP lab at UC Berkeley Running on HDFS Provides Java, Scala, Python APIs for Database Machine learning Graph algorithm 11/11/16 Fall 2016 -- Lecture #21 51

WordCount in Hadoop s Java API 11/11/16 Fall 2016 -- Lecture #21 52

Word Count in Spark s Python API // RDD: primary abstraction of a distributed collection of items file = sc.textfile( hdfs:// ) // Two kinds of operations: // Actions: RDD à Value // Transformations: RDD à RDD // e.g. flatmap, Map, reducebykey file.flatmap(lambda line: line.split()).map(lambda word: (word, 1)).reduceByKey(lambda a, b: a + b) See http://spark.apache.org/examples.html 11/11/16 Fall 2016 -- Lecture #21 53

MapReduce Processing Time Line Master assigns map + reduce tasks to worker servers As soon as a map task finishes, worker server can be assigned a new map or reduce task Data shuffle begins as soon as a given Map finishes Reduce task begins as soon as all data shuffles finish To tolerate faults, reassign task if a worker server dies 11/11/16 Fall 2016 -- Lecture #21 54

Show MapReduce Job Running ~41 minutes total ~29 minutes for Map tasks & Shuffle tasks ~12 minutes for Reduce tasks 1707 worker servers used Map (Green) tasks Shuffle (Red) tasks read 0.8 TB, write 0.5 TB read 0.5 TB, write 0.5 TB Reduce (Blue) tasks read 0.5 TB, write 0.5 TB 11/11/16 Fall 2016 -- Lecture #21 55

11/11/16 Fall 2016 -- Lecture #21 56

11/11/16 Fall 2016 -- Lecture #21 57

11/11/16 Fall 2016 -- Lecture #21 58

11/11/16 Fall 2016 -- Lecture #2 59

11/11/16 Fall 2016 -- Lecture #21 60

11/11/16 Fall 2016 -- Lecture #21 61

11/11/16 Fall 2016 -- Lecture #21 62

11/11/16 Fall 2016 -- Lecture #21 63

11/11/16 Fall 2016 -- Lecture #21 64

11/11/16 Fall 2016 -- Lecture #21 65

11/11/16 Fall 2016 -- Lecture #21 66

And, in Conclusion... Warehouse-Scale Computers (WSCs) New class of computers Scalability, energy efficiency, high failure rate Cloud Computing Benefits of WSC computing for third parties Elastic pay as you go resource allocation Request-Level Parallelism High request volume, each largely independent of other Use replication for better request throughput, availability MapReduce Data Parallelism Map: Divide large data set into pieces for independent parallel processing Reduce: Combine and process intermediate results to obtain final result Hadoop, Spark 11/11/16 Fall 2016 -- Lecture #21 67