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.