33
Introduction to MapReduce Bhupesh Chawda [email protected] DataTorrent

Introduction to Map Reduce

Embed Size (px)

Citation preview

Page 1: Introduction to Map Reduce

Introduction to MapReduce

Bhupesh [email protected]

DataTorrent

Page 2: Introduction to Map Reduce

Why Hadoop?Data Growth is mind boggling. Forecast for 2020: 40 Trillion GB

Cost effective

Scalable

Fast

Open source

Source: https://rapidminer.com/rapidminer-acquires-radoop/Image: http://seikun.kambashi.com/images/blog/interning_at_placeiq/2.jpg

Page 3: Introduction to Map Reduce

What is MapreduceIt is a powerful paradigm for parallel computation

Hadoop uses MapReduce to execute jobs on files in HDFS

Hadoop will intelligently distribute computation over cluster

Take computation to data

Page 4: Introduction to Map Reduce

Analogy: Counting FansGiven a cricket stadium, count the number of fans for each player /

team

Traditional way

Smart way

Smarter way?

Page 5: Introduction to Map Reduce
Page 6: Introduction to Map Reduce
Page 7: Introduction to Map Reduce
Page 8: Introduction to Map Reduce

Origin: Functional ProgrammingMap - Returns a list constructed by applying a function (the first

argument) to all items in a list passed as the second argumentmap f [a, b, c] = [f(a), f(b), f(c)]

map sq [1, 2, 3] = [sq(1), sq(2), sq(3)] = [1,4,9]

Reduce - Returns a list constructed by applying a function (the first argument) on the list passed as the second argument. Can be identity (do nothing).

reduce f [a, b, c] = f(a, b, c)

reduce sum [1, 4, 9] = sum(1, sum(4,sum(9,sum(NULL)))) = 14

Page 9: Introduction to Map Reduce

Sum of squares example

Page 10: Introduction to Map Reduce

Sum of squares of even and odd numbers

Page 11: Introduction to Map Reduce

Programming model - Key Value PairsFormat of input- output

(key, value)

Map: (k1 , v1 ) → list (k2 , v2 )

Reduce: (k2 , list v2 ) → list (k3 , v3 )

Page 12: Introduction to Map Reduce

Sum of squares of odd, even and prime

Page 13: Introduction to Map Reduce

Map reduce overview

Page 14: Introduction to Map Reduce

Map reduce with combiner

Page 15: Introduction to Map Reduce

The Big Picture

Image Source: http://blog.csdn.net/bingduanlbd/article/details/51933914

Page 16: Introduction to Map Reduce

The Bigger Picture

Image Source: http://blog.csdn.net/bingduanlbd/article/details/51933914

Page 17: Introduction to Map Reduce

MapReduce Code Example - Word Count

Page 18: Introduction to Map Reduce

Image Source: http://arnon.me/2014/06/mapreduce/

Page 19: Introduction to Map Reduce

MapReduce - The Mapper

Source: https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html

Page 20: Introduction to Map Reduce

MapReduce - The Reducer

Source: https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html

Page 21: Introduction to Map Reduce

MapReduce - The Driver

Page 22: Introduction to Map Reduce

Image Source: https://memegenerator.net/instance/56997204

Page 23: Introduction to Map Reduce

Hadoop Distributions

Page 24: Introduction to Map Reduce

Who is using Hadoop?

Page 25: Introduction to Map Reduce

Referenceshttps://hadoop.apache.org/

www.slideshare.net/SandeepDeshmukh5/hadoopintroduction-46841859

Hadoop - The Definitive Guide - 4th Edition

Images shamelessly stolen from the internet - Have credited though!

Page 26: Introduction to Map Reduce

AcknowledgementsSandeep Deshmukh, DataTorrent - For some of the slides

Page 28: Introduction to Map Reduce

Extra Slides

Page 29: Introduction to Map Reduce

Anatomy of a Map reduce runIn Map reduce context

The client which submits the job

Job tracker which coordinates the run

Task trackers which run the map and reduce tasks

HDFS

In YARN context - Will see later

The client which submits the job

YARN resource manager

YARN node managers

Map Reduce App Master

HDFS

Page 30: Introduction to Map Reduce

Map reduce in YARN - Will see later

Page 31: Introduction to Map Reduce

The Map Side - DetailsMap task writes to a circular buffer which it writes the output to

Once it reaches a threshold, it starts to spill the contents to local disk

Before writing to disk, the data is partitioned corresponding to the reducers that the data will be sent to

Each partition is sorted by key and combiner is run on the sorted output

Multiple spill files may be created by the time map finishes. These spill files are merged into a single partitioned, sorted output file

The output file partitions are made available to reducers over HTTP

Page 32: Introduction to Map Reduce

The Reduce Side - DetailsThe map outputs are sitting on local disks. Reduce tasks will need this

data in order to proceed with the reduce task

Reduce task needs the map output for its particular partition from several maps across the cluster

The reduce task starts copying the map outputs as soon as each map completes. This is the copy phase. The map outputs are fetched in parallel by multiple threads.

Map outputs are copied to jvm’s memory if small enough, else copied to disk. As copies accumulate, they are merged into larger sorted files. When all are copied, they are merged maintaining their sort order

Reduce function is invoked for each key in sorted output and output is written directly to HDFS

Page 33: Introduction to Map Reduce

Map reduce as unix commandsProblem:

Input1 TB file containing

color names - Red, Blue, Green, Yellow, Purple, Maroon

OutputNumber of occurrences

of colors Blue and Green