Può ridimensionare la mappa dire "Hello World"?

5

Raccogliendo che la riduzione della mappa viene utilizzata per elaborare enormi quantità di dati, ho deciso di capirlo.

Le mie query erano:

  • Quale classe di problemi mira a risolvere?
  • In che modo aiuta a risolvere problemi complessi?
  • Posso scrivere un'app di esempio, (localmente!) per iniziare?

Dopo un sacco di googling, blog e wikipedia, so chi lo sta usando, chi sta vendendo infrastrutture per questo. Ma, sono ancora all'oscuro delle query di cui sopra.

Il più vicino che ho ottenuto è questo tutorial su Amazon: " Pubblicità contestuale usando Apache Hive e Amazon Elastic MapReduce con istanze di High Performance Computing " link

Questo tutorial presume la comprensione della pubblicità online e della riduzione della mappa, quindi, è difficile da seguire.

Qualcuno ha qualche indizio su come un programmatore può iniziare sulla mappa-ridurre?

    
posta Amol 04.07.2011 - 16:55
fonte

2 risposte

25

Hadoop non è un programma tanto quanto un ecosistema software. Contiene un framework per l'esecuzione distribuita di lavori di riduzione delle mappe su enormi set di dati, di solito letti dal file system distribuito chiamato HDFS. La vera vittoria di Hadoop è che tu prendi il calcolo dei dati piuttosto che spostare i dati nel calcolo. L'obiettivo di Hadoop è ridurre e distribuire il carico I / O. Hadoop si occupa anche di tolleranza agli errori e garantisce che i tuoi lavori siano sempre completi rapidamente, anche se hai un nodo non valido nel tuo cluster.

MapReduce mira a risolvere problemi in cui è possibile suddividere facilmente i dati. Prendi forse l'intera biblioteca di Gutenberg. Puoi facilmente suddividerli sopra i confini delle parole, o anche i confini dei capitoli se sei abbastanza intelligente. Essendo l'idea, ti affidi il più possibile agli operatori associativi / commutativi in modo da poter tagliare il lavoro all'infinito, poi ridurlo in seguito.

Per quanto riguarda MapReduce, nell'esempio WordCount, diciamo che eseguiamo un'analisi di frequenza su parole con una lunghezza maggiore di quattro. Nel nostro Mapper, viene consegnato un set di dati. Hai diviso i tuoi paragrafi sui confini delle parole e poi emetti una coppia di valori, che verrà successivamente inviata a reducer . Quindi, se abbiamo la parola "hadoop", emetteremo ("hadoop", 1) come l'avevamo visto una volta. Facciamo questa emissione per ogni parola superiore a quattro caratteri. Questi vengono poi inviati ai riduttori. Ogni riduttore si occupa di una particolare chiave, quindi tutte le istanze di "hadoop" vanno a un riduttore specifico. Dal momento che abbiamo emesso un gruppo di ("hadoop", 1) chiavi possiamo poi comprimerle in qualcosa tipo ("hadoop", 17) e avere una singola coppia di valori chiave.

Più o meno, un Mapper è una funzione di trasformazione / filtro. Non deve essere, ma questo è il caso d'uso generale.

Apache Hive / Pig sono semplici astrazioni che utilizzano i lavori MapReduce per eseguire query su grandi set di dati, in particolare file di registro. Sono un ottimo modo per estrarre le analisi dai dati di registrazione in tempo reale da un cluster di server Web.

Puoi eseguirlo localmente. Dai un'occhiata alle versioni di Cloudera CDH , puoi iniziare quasi istantaneamente. Per impostazione predefinita, i lavori di riduzione della mappa vengono eseguiti sulla tua macchina in serie . È possibile configurare un cluster pseudo-distribuito sul computer locale per sfruttare i processori multipli, ma LocalJobRunner è progettato per testare la capacità di suddividere i dati e ottenere la risposta corretta, non per l'esecuzione di processi legittimi.

Cloudera ha anche rilasciato un pacchetto SCM Express che ti consente di installare un cluster con un massimo di 50 macchine in un tempo quasi inesistente.

    
risposta data 04.07.2011 - 17:51
fonte
1

Se vuoi scrivere una mappa semplice riduci il programma che viene eseguito localmente guarda lo streaming di hadoop.

link

Puoi semplicemente inviare pipe nei comandi unix e avere un programma di conteggio delle parole funzionante usando solo i comandi linux. Vi consiglio di giocherellare con questo e di provare a costruire lavori di mapreduce più complessi. Il vantaggio della riduzione della mappa è principalmente il quadro. Se vuoi divertirti e imparare come scrivere la mappa riduci i lavori, dovresti dare un'occhiata a questo tutorial:

link

e crea il tuo lavoro intorno a questo.

    
risposta data 04.07.2011 - 22:28
fonte

Leggi altre domande sui tag