Post on 18-Oct-2015
5/28/2018 Data Mining
1/68
CS246: Mining Massive DatasetsJure Leskovec, Stanford University
http://cs246.stanford.edu
5/28/2018 Data Mining
2/68
5/28/2018 Data Mining
3/68
We are producing more datathan we are able to store!
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 3
[The economist, 2010]
5/28/2018 Data Mining
4/68
Discovery of patterns and models that are: Valid: hold on new data with some certainty
Useful: should be possible to act on the item
Unexpected: non-obvious to the system Understandable:humans should be able to
interpret the pattern
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 4
5/28/2018 Data Mining
5/68
Descriptive Methods Find human-interpretable patterns that
describe the data
Predictive Methods
Use some variables to predict unknown
or future values of other variables
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 5
5/28/2018 Data Mining
6/68
Data mining overlaps with: Databases:Large-scale data, simple queries
Machine learning:Small data, Complex models
Statistics:Predictive Models
Different cultures: To a DB person, data mining
is an extreme form ofanalytic processingqueries that examine large
amounts of data Result is the query answer
To a stats/ML person, data-miningis the inference of models Result is the parameters of the model
In this class we will do both!
Machine Learning/
PatternRecognition
Statistics/AI
Data Mining
Databasesystems
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 6
5/28/2018 Data Mining
7/68
This class overlaps with machine learning,statistics, artificial intelligence, databases but
more stress on
Scalability(big data) Algorithmsand
architectures
Automation for handling
large data
1/8/2013 7Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu
Machine Learning/
PatternRecognition
Statistics/AI
Data Mining
Databasesystems
5/28/2018 Data Mining
8/68
We will learn to mine different types of data: Data is high dimensional
Data is a graph
Data is infinite/never-ending Data is labeled
We will learn to usedifferent models of
computation: MapReduce
Streams and online algorithms
Single machine in-memory
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 8
5/28/2018 Data Mining
9/68
We will learn to solve real-world problems: Recommender systems
Association rules
Link analysis Duplicate detection
We will learnvarious tools:
Linear algebra (SVD, Rec. Sys., Communities)
Optimization (stochastic gradient descent)
Dynamic programming (frequent itemsets)
Hashing (LSH, Bloom filters)
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 9
5/28/2018 Data Mining
10/68
High dim.data
Localitysensitivehashing
Clustering
Dimensionality
reduction
Graphdata
PageRank,SimRank
CommunityDetection
SpamDetection
Infinitedata
Filteringdatastreams
Webadvertising
Queries onstreams
Machinelearning
SVM
DecisionTrees
Perceptron,kNN
Apps
Recommender systems
AssociationRules
Duplicatedocumentdetection
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 10
5/28/2018 Data Mining
11/681/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 11How do you want that data?
5/28/2018 Data Mining
12/68
5/28/2018 Data Mining
13/68
TAs: We have 9 great TAs!
SeanChoi (Head TA), SumitArrawatia, JustinChen,
DingyiLi, AnshulMittal, RoseMarie Philip, Robi
Robaszkiewicz, LeYu, TongdaZhang
Office hours:
Jure:Wednesdays 9-10am, Gates 418
See course website for TA office hours
For SCPD students we will use Google Hangout
We will post Google Hangout links on Piazza
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 13
5/28/2018 Data Mining
14/68
Course website:http://cs246.stanford.edu
Lecture slides (at least 30min before the lecture)
Homeworks, solutions Readings
Readings:Book Mining of Massive Datasets
by Anand Rajaraman and Jeffrey UllmanFree online:
http://i.stanford.edu/~ullman/mmds.html
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 14
http://cs246.stanford.edu/http://i.stanford.edu/~ullman/mmds.htmlhttp://i.stanford.edu/~ullman/mmds.htmlhttp://cs246.stanford.edu/5/28/2018 Data Mining
15/68
Piazza Q&A website: https://piazza.com/class#winter2013/cs246
Use Piazza for all questions and public communicationwith the course staff
If you dont have @stanford.edu email address, send usyour email and we will manually register you to Piazza
For e-mailing us, always use:
cs246-win1213-staff@lists.stanford.edu
We will post course announcements toPiazza (make sure you check it regularly)
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 15
Auditors are welcome to sit-in & audit the class
https://piazza.com/classmailto:cs224w-aut1112-staff@lists.stanford.edumailto:cs224w-aut1112-staff@lists.stanford.eduhttps://piazza.com/class5/28/2018 Data Mining
16/68
(1+)4 longer homeworks:40% Theoretical and programming questions
HW0 (Hadoop tutorial) has just been posted
Assignments take lots of time. Start early!!
How to submit?
Homework write-up:
Stanford students:In class or in Gates submission box
SCPD students:Submit write-ups via SCPD Attach the HW cover sheet (and SCPD routing form)
Upload code:
Put the code for 1 question into 1 file and
submit at: http://snap.stanford.edu/submit/1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 16
http://www.stanford.edu/class/cs224w/submit/index.htmlhttp://www.stanford.edu/class/cs224w/submit/index.html5/28/2018 Data Mining
17/68
Short weekly quizzes:20% Short e-quizzes on Gradiance
You have exactly 7 days to complete it
No late days! First quiz is already online
Final exam:40%
Friday, March 22 12:15pm-3:15pm
Its going to be fun and hard work.
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 17
5/28/2018 Data Mining
18/68
Homework schedule:
2 late days (late periods) for HWs for the quarter:
1 late day expires at the start of next class
You can use max 1 late day per assignment
Date Out In
01/08, Tue HW0
01/10, Thu HW1
01/15, Tue HW001/24, Thu HW2 HW1
02/07, Thu HW3 HW2
02/21, Thu HW4 HW3
03/07, Thu HW4
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 18
5/28/2018 Data Mining
19/68
Algorithms (CS161) Dynamic programming, basic data structures
Basic probability(CS109 or Stat116)
Moments, typical distributions, MLE, Programming(CS107 or CS145)
Your choice, but C++/Java will be very useful
We provide some background, butthe class will be fast paced
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 19
5/28/2018 Data Mining
20/68
3 recitation sessions: Hadoop:Thurs. 1/10, 5:15-6:30pm
We prepared a virtual machine with Hadoop preinstalled
HW0helps you write your first Hadoop program
Review of probability&stats:1/17, 5:15-6:30pm
Review of linear algebra: 1/18, 5:15-6:30pm
All sessions will be held in Thornton 102,Thornton Center (Terman Annex)
Sessions will be video recorded!
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 20
http://campus-map.stanford.edu/?zoom=15&srch=Thornton%20Centerhttp://campus-map.stanford.edu/?zoom=15&srch=Thornton%20Center5/28/2018 Data Mining
21/68
InfoSeminar (CS545): http://i.stanford.edu/infoseminar
Great industrial & academic speakers
Topics include data mining and large scale data
processing CS341:Project in Data Mining (Spring 2013)
Research project on big data
Groups of 3 students
We provide interesting data, computing resources(Amazon EC2) and mentoring
We have big-data RA positions open!
I will post details on Piazza
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 21
http://infolab.stanford.edu/infoseminarhttp://infolab.stanford.edu/infoseminar5/28/2018 Data Mining
22/68
3 To-do items for you: Register to Piazza
Complete HW0: Hadoop tutorial
HW0 should take your about 1 hour to complete
(Note this is a toy homework to get you started. Real
homeworks will be much more challenging and longer)
Register to Gradiance and complete the first quiz
Use your SUNet ID to register! (so we can match grading records)
You have 7 days (sharp!) to do so
Quizzes typically take several hours
Additional details/instructions at
http://cs246.stanford.edu
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 22
http://cs246.stanford.edu/http://cs246.stanford.edu/5/28/2018 Data Mining
23/68
5/28/2018 Data Mining
24/68
Much of the course will be devoted tolarge scale computingfor data mining
Challenges:
How to distribute computation? Distributed/parallel programming is hard
Map-reduceaddresses all of the above
Googles computational/data manipulation model
Elegant way to work with big data
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 24
5/28/2018 Data Mining
25/68
Memory
Disk
CPU
Machine Learning, Statistics
Classical Data Mining
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 25
5/28/2018 Data Mining
26/68
20+ billion web pages x 20KB = 400+ TB 1 computer reads 30-35 MB/sec from disk
~4 months to read the web
~1,000 hard drives to store the web Takes even more to dosomething useful
with the data!
Today, a standard architecture for such
problems is emerging:
Cluster of commodity Linux nodes
Commodity network (ethernet) to connect them
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 26
5/28/2018 Data Mining
27/68
Mem
Disk
CPU
Mem
Disk
CPU
Switch
Each rack contains 16-64 nodes
Mem
Disk
CPU
Mem
Disk
CPU
Switch
Switch1 Gbps betweenany pair of nodesin a rack
2-10 Gbps backbone between racks
In 2011 it was guestimated that Google had 1M machines, http://bit.ly/Shh0RO1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 27
http://bit.ly/Shh0ROhttp://bit.ly/Shh0RO5/28/2018 Data Mining
28/68
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 28
5/28/2018 Data Mining
29/68
Large-scale computingfor data miningproblems on commodity hardware
Challenges:
How do you distribute computation? How can we make it easy to write distributed
programs?
Machines fail:
One server may stay up 3 years (1,000 days)
If you have 1,000 servers, expect to loose 1/day
People estimated Google had ~1M machines in 2011
1,000 machines fail every day!
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 29
5/28/2018 Data Mining
30/68
Issue:Copying data over a network takes time Idea:
Bring computation close to the data
Store files multiple times for reliability Map-reduceaddresses these problems
Googles computational/data manipulation model
Elegant way to work with big data
Storage Infrastructure File system
Google: GFS. Hadoop: HDFS
Programming model
Map-Reduce1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 30
5/28/2018 Data Mining
31/68
Problem: If nodes fail, how to store data persistently?
Answer:
Distributed File System: Provides global file namespace
Google GFS; Hadoop HDFS;
Typical usage pattern
Huge files (100s of GB to TB)
Data is rarely updated in place
Reads and appends are common
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 31
5/28/2018 Data Mining
32/68
Chunk servers File is split into contiguous chunks
Typically each chunk is 16-64MB
Each chunk replicated (usually 2x or 3x)
Try to keep replicas in different racks Master node a.k.a. Name Node in Hadoops HDFS
Stores metadata about where files are stored
Might be replicated Client library for file access Talks to master to find chunk servers
Connects directly to chunk servers to access data
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 32
5/28/2018 Data Mining
33/68
Reliable distributed file system Data kept in chunks spread across machines
Each chunk replicatedon different machines
Seamless recovery from disk or machine failure
C0 C1
C2C5
Chunk server 1
D1
C5
Chunk server 3
C1
C3C5
Chunk server 2
C2D0
D0
Bring computation directly to the data!
C0 C5
Chunk server N
C2D0
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 33Chunk servers also serve as compute servers
5/28/2018 Data Mining
34/68
Warm-up task: We have a huge text document
Count the number of times each
distinct word appears in the file
Sample application:
Analyze web server logs to find popular URLs
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 34
5/28/2018 Data Mining
35/68
Case 1: File too large for memory, but all
pairs fit in memory
Case 2:
Count occurrences of words:
words(doc.txt) | sort | uniq -c
where wordstakes a file and outputs the words in it,
one per a line
Case 2 captures the essence of MapReduce
Great thing is that it is naturally parallelizable
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 35
5/28/2018 Data Mining
36/68
Sequentially read a lot of data Map:
Extract something you care about
Group by key:Sort and Shuffle Reduce:
Aggregate, summarize, filter or transform
Write the result
Outline stays the same, Map and Reducechange to fit the problem
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 36
5/28/2018 Data Mining
37/68
vk
k v
k v
map
vk
vk
k v
map
Input
key-value pairs
Intermediate
key-value pairs
k v
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 37
5/28/2018 Data Mining
38/68
k v
k v
k v
k v
Intermediate
key-value pairs
Groupby key
reduce
reduce
k v
k v
k v
k v
k v
k v v
v v
Key-value groupsOutput
key-value pairs
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 38
5/28/2018 Data Mining
39/68
Input:a set of key-value pairs Programmer specifies two methods:
Map(k, v)*
Takes a key-value pair and outputs a set of key-value pairs E.g., key is the filename, value is a single line in the file
There is one Map call for every (k,v) pair
Reduce(k, *)*
All values vwith same key kare reduced togetherand processed in vorder
There is one Reduce function call per unique key k
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 39
5/28/2018 Data Mining
40/68
The crew of the space
shuttle Endeavor recently
returned to Earth as
ambassadors, harbingers of
a new era of space
exploration. Scientists at
NASA are saying that the
recent assembly of the
Dextre bot is the first step in
a long-term space-based
man/mache partnership.
'"The work we're doing now
-- the robotics we're doing -
- is what we're going to
need ..
Big document
(The, 1)(crew, 1)
(of, 1)(the, 1)
(space, 1)(shuttle, 1)(Endeavor, 1)(recently, 1)
.
(crew, 1)(crew, 1)
(space, 1)(the, 1)
(the, 1)(the, 1)(shuttle, 1)
(recently, 1)
(crew, 2)(space, 1)
(the, 3)
(shuttle, 1)(recently, 1)
MAP:Read input and
produces a set of
key-value pairs
Group by key:Collect all pairs
with same key
Reduce:Collect all values
belonging to the
key and output
(key, value)
Provided by theprogrammer Provided by theprogrammer
(key, value)(key, value)
Sequentia
lly
readt
hed
ata
Only
sequential
reads
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 40
5/28/2018 Data Mining
41/68
map(key, value):
/ / key: document name; val ue: t ext of t he documentf or each wor d w i n val ue:
emi t ( w, 1)
reduce(key, values):
/ / key: a wor d; val ue: an i t er at or over count sr esul t = 0
f or each count v i n val ues:r esul t += v
emi t ( key, r esul t )
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 41
5/28/2018 Data Mining
42/68
Map-Reduce environment takes care of: Partitioningthe input data
Schedulingthe programs execution across a
set of machines Performing the group by keystep
Handling machine failures
Managing required inter-machine
communication
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 42
5/28/2018 Data Mining
43/68
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 43
Big document
MAP:Read input and
produces a set of
key-value pairs
Group by key:Collect all pairs with
same key(Hash merge, Shuffle,
Sort, Partition)
Reduce:Collect all values
belonging to the
key and output
5/28/2018 Data Mining
44/68
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 44All phases are distributed with many tasks doing the work
5/28/2018 Data Mining
45/68
Input and final output are stored on adistributed file system (FS):
Scheduler tries to schedule map tasks close to
physical storage location of input data
Intermediate resultsare stored on local FS
of Map and Reduce workers
Output is often input to another
MapReduce task
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 46
5/28/2018 Data Mining
46/68
Master node takes care of coordination: Task status:(idle, in-progress, completed)
Idle tasksget scheduled as workers become
available
When a map task completes, it sends the master
the location and sizes of its Rintermediate files,
one for each reducer
Master pushes this info to reducers
Master pings workers periodically to detect
failures1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 47
5/28/2018 Data Mining
47/68
Map worker failure Map tasks completed or in-progress at
worker are reset to idle
Reduce workers are notified when task is
rescheduled on another worker
Reduce worker failure
Only in-progress tasks are reset to idle
Reduce task is restarted
Master failure
MapReduce task is aborted and client is notified
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 48
5/28/2018 Data Mining
48/68
Mmap tasks, Rreduce tasks Rule of a thumb:
Make Mmuch larger than the number of nodes
in the cluster
One DFS chunk per map is common
Improves dynamic load balancing and speeds up
recovery from worker failures
Usually Ris smaller than M
Because output is spread across Rfiles
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 49
5/28/2018 Data Mining
49/68
Fine granularity tasks: map tasks >> machines Minimizes time for fault recovery
Can do pipeline shuffling with map execution
Better dynamic load balancing
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 50
5/28/2018 Data Mining
50/68
Often a Map task will produce many pairs ofthe form (k,v1), (k,v2), for the same key k
E.g., popular words in the word count example
Can save network time by
pre-aggregating values inthe mapper:
combine(k, list(v1)) v2
Combiner is usually sameas the reduce function
Works only if reducefunction is commutative and associative
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 52
5/28/2018 Data Mining
51/68
Back to our word counting example: Combiner combines the values of all keys of a
single mapper (single machine):
Much less data needs to be copied and shuffled!
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 53
5/28/2018 Data Mining
52/68
Want to control how keys get partitioned Inputs to map tasks are created by contiguous
splits of input file
Reduce needs to ensure that records with the
same intermediate key end up at the same worker System uses a default partition function:
hash(key) mod R
Sometimes useful to override the hashfunction:
E.g., hash(hostname(URL)) mod Rensures URLsfrom a host end up in the same output file
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 54
5/28/2018 Data Mining
53/68
5/28/2018 Data Mining
54/68
Suppose we have a large web corpus Look at the metadata file
Lines of the form: (URL, size, date, )
For each host, find the total number of bytes That is, the sum of the page sizes for all URLs from
that particular host
Other examples: Link analysis and graph processing
Machine Learning algorithms
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 56
5/28/2018 Data Mining
55/68
Statistical machine translation: Need to count number of times every 5-word
sequence occurs in a large corpus of documents
Very easy with MapReduce: Map:
Extract (5-word sequence, count) from document
Reduce: Combine the counts
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 58
5/28/2018 Data Mining
56/68
Compute the natural join R(A,B) S(B,C) Rand Sare each stored in files
Tuples are pairs (a,b)or (b,c)
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 59
A B
a1 b1
a2 b1
a3 b2
a4 b3
B C
b2 c1
b2 c2
b3 c3
A C
a3 c1
a3 c2
a4 c3
=
R
S
5/28/2018 Data Mining
57/68
Use a hash function hfrom B-values to 1...k A Map process turns:
Each input tuple R(a,b)into key-value pair (b,(a,R))
Each input tuple S(b,c)into (b,(c,S))
Map processessend each key-value pair with
key bto Reduce process h(b)
Hadoop does this automatically; just tell it what kis. Each Reduce processmatches all the pairs
(b,(a,R))with all (b,(c,S)) and outputs (a,b,c).
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 60
5/28/2018 Data Mining
58/68
In MapReduce we quantify the cost of analgorithm using
1. Communication cost = total I/O of all
processes
2. Elapsed communication cost= max of I/O
along any path
3. (Elapsed) computation costanalogous, but
count only running time of processes
Note that here the big-O notation is not the most useful
(adding more machines is always an option)
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 61
5/28/2018 Data Mining
59/68
For a map-reduce algorithm: Communication cost =input file size + 2 (sum of
the sizes of all files passed from Map processes to
Reduce processes) + the sum of the output sizes of
the Reduce processes.
Elapsed communication costis the sum of the
largest input + output for any map process, plus
the same for any reduce process
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 62
5/28/2018 Data Mining
60/68
Either the I/O (communication) or processing(computation) cost dominates
Ignore one or the other
Total cost tells what you pay in rent from
your friendly neighborhood cloud
Elapsed cost is wall-clock time using
parallelism
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 63
5/28/2018 Data Mining
61/68
Total communication cost= O(|R|+|S|+|RS|) Elapsed communication cost= O(s)
Were going to pick kand the number of Map
processes so that the I/O limit sis respected We put a limit son the amount of input or output
that any one process can have. scould be:
What fits in main memory
What fits on local disk
With proper indexes, computation cost islinear in the input + output size
So computation cost is like comm. cost1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 64
5/28/2018 Data Mining
62/68
5/28/2018 Data Mining
63/68
Google Not available outside Google
Hadoop
An open-source implementation in Java
Uses HDFS for stable storage
Download: http://lucene.apache.org/hadoop/ Aster Data
Cluster-optimized SQL Database that alsoimplements MapReduce
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 66
http://lucene.apache.org/hadoop/http://lucene.apache.org/hadoop/5/28/2018 Data Mining
64/68
Ability to rent computing by the hour Additional services e.g., persistent storage
Amazons Elastic Compute Cloud (EC2)
Aster Data and Hadoop can both be run on
EC2
For CS341 (offered next quarter) Amazon will
provide free access for the class
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 67
5/28/2018 Data Mining
65/68
Jeffrey Dean and Sanjay Ghemawat:MapReduce: Simplified Data Processing on
Large Clusters
http://labs.google.com/papers/mapreduce.html
Sanjay Ghemawat, Howard Gobioff, and Shun-
Tak Leung: The Google File System
http://labs.google.com/papers/gfs.html
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 68
http://labs.google.com/papers/mapreduce.htmlhttp://labs.google.com/papers/gfs.htmlhttp://labs.google.com/papers/gfs.htmlhttp://labs.google.com/papers/mapreduce.html5/28/2018 Data Mining
66/68
Hadoop Wiki Introduction http://wiki.apache.org/lucene-hadoop/
Getting Started http://wiki.apache.org/lucene-
hadoop/GettingStartedWithHadoop Map/Reduce Overview http://wiki.apache.org/lucene-hadoop/HadoopMapReduce
http://wiki.apache.org/lucene-hadoop/HadoopMapRedClasses
Eclipse Environment http://wiki.apache.org/lucene-hadoop/EclipseEnvironment
Javadoc http://lucene.apache.org/hadoop/docs/api/
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 69
http://wiki.apache.org/lucene-hadoop/http://wiki.apache.org/lucene-hadoop/GettingStartedWithHadoophttp://wiki.apache.org/lucene-hadoop/GettingStartedWithHadoophttp://wiki.apache.org/lucene-hadoop/HadoopMapReducehttp://wiki.apache.org/lucene-hadoop/HadoopMapRedClasseshttp://wiki.apache.org/lucene-hadoop/HadoopMapRedClasseshttp://wiki.apache.org/lucene-hadoop/EclipseEnvironmenthttp://lucene.apache.org/hadoop/docs/api/http://lucene.apache.org/hadoop/docs/api/http://wiki.apache.org/lucene-hadoop/EclipseEnvironmenthttp://wiki.apache.org/lucene-hadoop/HadoopMapRedClasseshttp://wiki.apache.org/lucene-hadoop/HadoopMapRedClasseshttp://wiki.apache.org/lucene-hadoop/HadoopMapReducehttp://wiki.apache.org/lucene-hadoop/GettingStartedWithHadoophttp://wiki.apache.org/lucene-hadoop/GettingStartedWithHadoophttp://wiki.apache.org/lucene-hadoop/5/28/2018 Data Mining
67/68
Releases from Apache download mirrors http://www.apache.org/dyn/closer.cgi/lucene/had
oop/
Nightly builds of source
http://people.apache.org/dist/lucene/hadoop/nig
htly/
Source code from subversion
http://lucene.apache.org/hadoop/version_control.html
1/8/2013 Jure Leskovec, Stanford CS246: Mining Massive Datasets, http://cs246.stanford.edu 70
http://www.apache.org/dyn/closer.cgi/lucene/hadoop/http://www.apache.org/dyn/closer.cgi/lucene/hadoop/http://people.apache.org/dist/lucene/hadoop/nightly/http://people.apache.org/dist/lucene/hadoop/nightly/http://lucene.apache.org/hadoop/version_control.htmlhttp://lucene.apache.org/hadoop/version_control.htmlhttp://lucene.apache.org/hadoop/version_control.htmlhttp://lucene.apache.org/hadoop/version_control.htmlhttp://people.apache.org/dist/lucene/hadoop/nightly/http://people.apache.org/dist/lucene/hadoop/nightly/http://www.apache.org/dyn/closer.cgi/lucene/hadoop/http://www.apache.org/dyn/closer.cgi/lucene/hadoop/5/28/2018 Data Mining
68/68
Programming model inspired by functional languageprimitives
Partitioning/shuffling similar to many large-scale sortingsystems NOW-Sort ['97]
Re-execution for fault tolerance
BAD-FS ['04] and TACC ['97] Locality optimization has parallels with Active
Disks/Diamond work Active Disks ['01], Diamond ['04]
Backup tasks similar to Eager Scheduling in Charlotte
system Charlotte ['96]
Dynamic load balancing solves similar problem as River'sdistributed queues River ['99]