dis13_ans -...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
CS61A Discussion Week 13   (mapreduce, analyzing evaluator)  TA: Evan OH: Monday 10:30-12p, 1-2p @ H50 LAB * (Know how to use ACCUMULATE/STREAM-ACCUMULATE) * MAPREDUCE (mapreduce <mapper> <reducer> <null-value> <input> <??>)   where  < mapper>  is a procedure of one argument with the following  domain/range:   key-value pair --> [<mapper> ] -->   LIST  of key-value pairs  < reducer>  is a procedure of two arguments, like the combiner of  accumulate:      curr-VALUE    --> [<reducer>]    accum-so-far  --> [         ] -->  next-accum-so-far  Note the reducer deals with the VALUES of the key-value pairs  returned by the mapper.  < null-value>  is the null-value used in accumulate < input>  is either:    a special string telling mapreduce to use a given input:     Input Directory           Format of input "/beatles-songs"          (Beatles album . song title ) "/gutenberg/shakespeare"  (Shakespeare play . line from play ) "/gutenberg/dickens"      (Dickens story . line from story  ) "/sample-emails"          (sample-email . (from to subject msg) )  OR it may be a result of a previous mapreduce!  <??>  is an optional flag, where if your provided reducer is  “commutative/associative” (i.e. output of reducer can be fed into  BOTH inputs of the reducer and still give correct results), it will  use an extra optimization step after the MAP phase. Also, we use the following data abstraction for kv-pairs:    make-kv-pair : cons         BUT, use data abstraction to help you  kv-key       : car          distinguish MAPREDUCE kv-pairs from  kv-value     : cdr          other pairs (i.e. pairs in values)
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Phase 1.  Map:       Take every key-value pair in the input. Apply mapper on it.  Result is collection of key-value pairs produced by the mapper.  (The data is split up and multiple processes are applying the mapper  at the same time) Phase 2.  Sort into Buckets For each key, make a bucket, and dump the values into it. Also,  sort the keys in some order.  (The same processes above are now  throwing the results into the appropriate bucket) Phase 3.  (Group) Reduce For each bucket, use the reducer repeatedly to combine all the  VALUES into a single value. Attach the result to the key again.  (IMPORTANT! Each bucket is handled by one task) The end result is a stream of pairs output by Phase 3 (one pair per  bucket) EXAMPLE (mapreduce (lambda (album-song-pair)               (list (make-kv-pair 'song (kv-value album-song-pair))))            (lambda (x y) (+ y 1))             0  
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 08/07/2010 for the course COMPUTER S 61A taught by Professor Harvey during the Spring '06 term at University of California, Berkeley.

Page1 / 8

dis13_ans -...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online