What's the difference between shuffle phase and combiner phase?
<p>i'm pretty confused about the MapReduce Framework. I'm getting confused reading from different sources about that. By the way, this is my idea of a MapReduce Job </p>

<pre><code>1. Map()--&gt;emit &lt;key,value&gt;  
2. Partitioner (OPTIONAL) --&gt; divide
    intermediate output from mapper and assign them to different
    reducers
3. Shuffle phase used to make: &lt;key,listofvalues&gt;    
4. Combiner,    component used like a minireducer wich perform some
    operations on    datas and then pass those data to the reducer.
    Combiner is on local    not HDFS, saving space and time.    
5. Reducer, get the data from the    combiner, perform further
    operation(probably the same as the    combiner) then release the
    output.     
6.  We will have n outputs parts,    where n is the number
    of reducers
</code></pre>

<p>It is basically right? I mean, i found some sources stating that combiner is the shuffle phase and it basically groupby each record by key...</p>