2013-02-22 9 views

risposta

4

Per ottenere l'ordinamento dei valori di ingresso riduttore utilizzando funzionalità incorporate di Hadoop, si può fare questo:

chiave mappa di output 1.Modify - Aggiunge mappa chiave di uscita con il corrispondente value.Emit questa chiave composita e il valore dalla mappa. Dal momento che hadoop utilizza l'intera chiave per impostazione predefinita, i record di output della mappa verranno ordinati per (chiave + valore precedente).

2. Anche se l'ordinamento viene eseguito nel passaggio 1, è stata manipolata la chiave di output della mappa nel processo. Hadoop esegue il partizionamento e il raggruppamento in base alla chiave per impostazione predefinita.

3.Since è stata modificata la chiave originale, si necessità di prendersi cura di modificare Partitioner e GroupingComparator di lavoro basato sulla vecchia chiave vale a dire, solo la prima parte della vostra chiave composita. Partizionatore - decide quali coppie di valori-chiave si trovano nella stessa istanza di Riduttore
GroupComparator - decide quali coppie di valori-chiave tra quelle che sono atterrite nel Riduttore vanno alla stessa chiamata del metodo di riduzione.

4. Infine (e ovviamente) è necessario estrarre la prima parte della chiave di input nel riduttore per ottenere la vecchia chiave.

Se avete bisogno di più (e una migliore) risposta, rivolgersi a Hadoop guida 3rd Edition -> Capitolo 8 -> smistamento -> ordinamento secondario

+0

Esattamente, David Gruzman ha fatto riferimento a un buon esempio su questo http://pkghosh.wordpress.com/2011/04/13/map-reduce-secondary-sort-does-it-all/ –

Problemi correlati