What are the Hadoop MapReduce concepts?

Què vol dir amb Map-Redueix la programació?

MapReduce és un model de programació dissenyat per al processament de grans volums de dades en paral·lel dividint el treball en un conjunt de tasques independents.

El model de programació MapReduce s'inspira en els llenguatges funcionals i es dirigeix ​​als càlculs de dades intensius. El format de dades d'entrada és d'aplicació específica, i s'especifica per l'usuari. La sortida és un conjunt de <clau,valor> parells. L'usuari expressa un algoritme utilitzant dues funcions, Mapa i Reduir. La funció de mapa s'aplica sobre les dades d'entrada i produeix una llista de compost intermedi <clau,valor> parells. La funció Reduir s'aplica a tots els parells intermedis amb la mateixa clau. Se sol dur a terme algun tipus d'operació de fusió i produeix zero o més parells de sortida. finalment, els parells de sortida s'ordena d'acord al valor de la clau. En la forma més simple dels programes de MapReduce, el programador proporciona només la funció Mapa. Totes les altres funcions, incloent l'agrupació dels parells intermedis que tenen la mateixa clau i la classificació final de, és proporcionat pel temps d'execució.

Fases del model MapReduce

La unitat de nivell superior de treball en MapReduce és un treball. Un treball en general té un mapa i una fase de reduir, tot i que la fase de reduir es pot ometre. For example, considerar un treball MapReduce que compta el nombre de vegades que cada paraula s'utilitza a través d'un conjunt de documents. La fase mapa compte les paraules en cada document, llavors la fase de reduir afegeix les dades de cada document en el nombre de paraules que abasten tota la col·lecció.

Durant la fase de mapa, les dades d'entrada es divideix en divisions d'entrada per a l'anàlisi per tasques mapa que s'executen en paral·lel al clúster Hadoop. Per defecte, el marc MapReduce obté dades d'entrada del sistema d'arxius distribuït Hadoop (HDFS).

La fase reduir utilitza els resultats de les tasques mapa com a entrada a un conjunt de tasques paral·leles reduir. Les tasques de reduir consoliden les dades en els resultats finals. Per defecte, les botigues de marc MapReduce resultats en HDFS.

Tot i que la fase reduir depèn de la sortida de la fase mapa, mapejar i reduir el procés no està necessàriament seqüencials. Això és, reduir les tasques poden començar tan aviat com es completi qualsevol tasca mapa. No cal per a totes les tasques mapa per completar abans de qualsevol reduir tasca pot començar.

MapReduce opera en parells de valors clau. conceptualment, un treball MapReduce pren un conjunt d'entrada parells de valors clau i produeix un conjunt de parells de clau i valor de sortida fent passar les dades a través d'un mapa i redueix les funcions. Les tasques mapa produeixen un conjunt intermedi de parells de valors clau que les tasques de reduir els usos com a entrada.

Les claus dels parells de sortida de mapa no tenen per què ser únic. Entre el processament de mapa i el processament reduir, un pas aleatòria ordena tots els valors de sortida de mapa amb la mateixa clau en una sola entrada reduir (clau, valor-llista) parell, on el "valor’ és una llista de tots els valors que comparteixen la mateixa clau. Thus, l'entrada a una tasca de reduir és en realitat un conjunt de (clau, valor-llista) parells.

Tot i que cada conjunt de parells de valors clau és homogènia, els parells de valors clau en cada pas no necessita tenir el mateix tipus de. For example, els parells de valors clau en el conjunt d'entrada (KV1) pot ser (string, string) parells, amb la producció de la fase de mapa (string, enter) parells com a resultats intermedis (KV2), i en reduir la producció de fase (enter, string) parells dels resultats finals (KV3).

Les claus dels parells de sortida de mapa no tenen per què ser únic. Entre el processament de mapa i el processament reduir, un pas aleatòria ordena tots els valors de sortida de mapa amb la mateixa clau en una sola entrada reduir (clau, valor-llista) parell, on el "valor’ és una llista de tots els valors que comparteixen la mateixa clau. Thus, l'entrada a una tasca de reduir és en realitat un conjunt de (clau, valor-llista) parells.

Exemple que demostra conceptes MapReduce

L'exemple demostra concepte bàsic MapReduce calculant el nombre d'ocurrència de cada paraula en un conjunt d'arxius de text.

Les dades d'entrada MapReduce es divideix en divisions d'entrada, i les divisions es divideixen a més en entrada parells de valors clau. En aquest exemple, el conjunt de dades d'entrada és dels dos documents, document1 i document2. La subclasse InputFormat divideix el conjunt de dades en una fracció per document, per a un total de 2 escissions:

Nota: El marc MapReduce divideix les dades d'entrada es divideix en trossos anomenats usant la subclasse org.apache.hadoop.mapreduce.InputFormat subministrat en la configuració del treball. Escissions són creats pel Client d'ocupació local, i s'inclouen en la informació del treball a disposició del Job Tracker. El JobTracker crea un mapa de tasques per a cada divisió. Cada tasca utilitza un mapa RecordReader proporcionada per la subclasse InputFormat per transformar la divisió en entrada parells de valors clau.

La (número de línia, text) parell clau-valor es genera per a cada línia en un document d'entrada. La funció de mapa descarta el número de línia i produeix una línia per cada (paraula, comptar) parell per a cada paraula en la línia d'entrada. La fase produeix reduir (paraula, comptar) parells que representen el nombre de paraules agregades a través de tots els documents d'entrada. Tenint en compte les dades d'entrada que es mostren la progressió de mapes reduir exemple per al treball es:

El resultat de la fase de mapa conté diversos parells de valors clau amb la mateixa clau: Els 'civada’ i 'menjar’ tecles apareixen dues vegades. Recordem que el marc MapReduce consolida tots els valors amb la mateixa clau abans d'entrar a la fase de reduir, per la qual cosa l'entrada per reduir és en realitat (clau, valors) parells. per tant, la progressió completa de la sortida mapa, a través de reduir, que els resultats finals es mostra a dalt.

Cicle de Vida d'ocupació MapReduce

A continuació es presenta el cicle de vida d'un treball típic de MapReduce i les funcions del cicle de vida complet actors.The primària són més complexos del que aquí ens concentrarem en els components primaris.

La configuració Hadoop es pot fer de diferents maneres, però la configuració bàsica consisteix en el següent.

  • un únic node mestre executa Job Tracker
  • múltiples nodes de treball que executen tasques Rastrejador

A continuació es presenten els components del cicle de vida de treball MapReduce.

  • client d'ocupació local: El client de treball local es prepara el treball per la seva presentació i la hi dóna apagat a Job Tracker.
  • Job Tracker: El seguidor d'ocupació horaris de treball i la distribueix el mapa de treball entre els rastrejadors de tasques per al processament paral·lel.
  • tasca Rastrejador: Cada seguidor de tasques genera un mapa de tasques. El Rastrejador de Treball rep informació del progrés dels rastrejadors de tasques.

Una vegada que es disposa de resultats mapa, el Rastrejador d'ocupació distribueix el treball entre reduir els rastrejadors de tasques per al processament paral·lel.

Cada seguidor de tasques genera un Reduir tasques per realitzar el treball. El Rastrejador de Treball rep informació del progrés dels rastrejadors de tasques.

Totes les tasques mapa no han de completar abans de reduir les tasques comencin a publicar. Reduir les tasques poden començar tan aviat com comencen les tasques de completar el mapa. Thus, el mapa i reduir els passos sovint es superposen.

La funcionalitat dels diferents components de treball MapReduce

client treball: Treball client realitza les següents tasques

  • Valida la configuració del treball
  • Genera les divisions d'entrada. Això és, bàsicament, dividint el treball d'entrada en trossos
  • Còpies els recursos del treball (configuració, fitxer JAR treball, escissions d'entrada) en una ubicació compartida, com ara un directori HDFS, on és accessible per al Rastrejador d'ocupació i rastrejadors de tasques
  • Presenta el treball a la Job Tracker

Job Tracker: Job Tracker realitza les següents tasques

  • Obté divisions d'entrada des de la ubicació compartida on el client col·loca la informació d'ocupació
  • Crea un mapa de tasques per a cada divisió
  • Assigna cada tasca mapa per un rastrejador de tasques (node treballador)

Després que la tasca s'ha completat mapa, Job Tracker fa les següents tasques

  • Crea reduir les tasques fins al màxim permès per la configuració del treball.
  • Assigna cada partició conseqüència mapa per a una tasca de reduir.
  • Assigna a cada tasca de reduir a un rastrejador de tasques.

tasca Rastrejador: Una tasca Rastrejador gestiona les tasques d'un node dels treballadors i els informes d'estat al Job Tracker.

Tasca Rastrejador fa les següents tasques quan un mapa o reduir tasca se li assigna

  • Obté recursos d'ocupació a nivell local
  • JVM genera un nen al node treballador per executar el mapa o reduir tasca
  • Els informes d'estat a la Job Tracker

Depuració de MapReduce

Hadoop manté registres d'esdeveniments importants durant l'execució del programa. Per defecte, aquests s'emmagatzemen en els registres / subdirectori del Hadoop-versio / directori on s'executa des Hadoop. Els arxius de registre es denominen Hadoop-usuari-servei-hostname.log. Les dades més recents es troba a l'arxiu .log; els registres anteriors tenen la seva data annexada a ells. El nom d'usuari en el nom del fitxer de registre es refereix al nom d'usuari amb el qual es va iniciar Hadoop — això no és necessàriament el mateix nom d'usuari que s'utilitza per executar programes. El nom del servei es refereix a quin dels diversos programes de Hadoop estan escrivint el registre; tesi pot ser JobTracker, namenode, DataNode, secondarynamenode, o TaskTracker. Tots aquests són importants per a la depuració d'una instal·lació sencera Hadoop. No obstant això, per als programes individuals, els registres TaskTracker seran els més rellevants. Qualsevol excepció llançada pel seu programa es registren en els registres TaskTracker.

El directori de registre també tindrà un subdirectori anomenat userlogs. Hi ha un altre subdirectori per a cada execució de la tasca. Cada tasca registra la seva stdout i stderr en dos arxius en aquest directori. Recordeu que en un clúster Hadoop de diversos nodes, aquests registres no s'agregaran centralment — vostè ha de comprovar els registres / userlogs / directori de cada TaskNode per a la seva producció.

La depuració en l'entorn distribuït és complicat i requereix iniciar sessió en diverses màquines per accedir a les dades de registre. Si és possible, els programes han de ser unitat provada mitjançant l'execució de Hadoop localment. La configuració per defecte desplegada per Hadoop s'executa en “única instància” manera, on tot el programa MapReduce s'executa en la mateixa instància de Java com crida JobClient.runJob(). L'ús d'un depurador com Eclipse, a continuació, pot establir punts d'interrupció al mapa() o reduir() mètodes per descobrir els seus errors.

És reduir el treball obligatori?

Alguns treballs poden completar tot el seu treball durant la fase de mapa. Pel que el treball pot ser un mapa únic treball. Per cancel·lar un treball després que el mapa es completa, establir el nombre de tasques de reduir a zero.

Conclusió

En aquest mòdul es descriu la plataforma d'execució MapReduce al cor del sistema Hadoop. Mitjançant l'ús de MapReduce, un alt grau de paral·lelisme es pot assolir per les aplicacions. El marc MapReduce ofereix un alt grau de tolerància a fallades per a aplicacions que s'executen en ell mitjançant la limitació de la comunicació que pot ocórrer entre els nodes.

============================================= ============================================== Buy best TechAlpine Books on Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share