hadoop mapreduce tutorial with examples what is mapreduce
En aquest tutorial, comprendreem què és MapReduce, els seus avantatges i com funciona Hadoop Map Reduce amb exemples:
En el tutorial anterior, vam aprendre sobre Hadoop HDFS i els mecanismes de lectura i escriptura. Ara explorem un altre component Hadoop, és a dir, MapReduce.
Vegem amb detall el següent:
- Què és MapReduce?
- Els seus beneficis
- Quin és l'enfocament exacte de MapReduce?
=> Visiteu aquí la sèrie exclusiva de cursos de formació BigData.
Què aprendreu:
Què és MapReduce?
Seguim i comencem amb Components Hadoop. Com s’ha explicat anteriorment, hi ha dos components principals d’Hadoop, és a dir, Hadoop HDFS i Hadoop Map Reduce.
L'Hadoop HDFS és un sistema de distribució de fitxers que s'utilitza per emmagatzemar una gran quantitat de dades en diversos bastidors.
Aquí parlarem de la unitat de processament d’Hadoop, és a dir, MapReduce.
La següent pregunta que sorgeix és 'què és Reduir mapa i per què es requereix?'
format de casos de prova en proves de programari
Hadoop MapReduce és el 'Unitat de processament' i mitjançant aquest component, podem processar el Big Data emmagatzemat a Hadoop HDFS.
Però, quin és el requisit exacte? Per què necessitem aquest component d’Hadoop?
El Big Data emmagatzemat a Hadoop HDFS no s’emmagatzema tradicionalment. Les dades es divideixen en trossos de dades emmagatzemats en els respectius DataNodes. Per tant, totes les dades no s’emmagatzemen en una ubicació centralitzada.
Per tant, una aplicació de client natiu com Java o qualsevol altra aplicació d’aquest tipus no pot processar les dades en el format actual i necessitem un marc especial que pugui processar els blocs de dades fragmentats emmagatzemats en els respectius nodes de dades.
El processament es fa mitjançant el processament de Hadoop MapReduce.
Reduir mapa en poques paraules
El diagrama anterior proporciona una visió general de Map Reduce, les seves característiques i usos.
Comencem per les aplicacions de MapReduce i on s’utilitza. Per exemple, s'utilitza per Classificadors, indexació i cerca , i Creació de Motors de recomanació en llocs de comerç electrònic (Flipkart, Amazon, etc.) També s’utilitza com a Analítica per diverses empreses.
Quan veiem des de la perspectiva de les característiques, és un Model de programació i es pot utilitzar per Distribuïda a gran escala Model com Hadoop HDFS i té la capacitat de programació en paral·lel que el fa molt útil.
Quan veiem les funcions a Map Reduce, s’executen dues funcions, és a dir, Funció de mapa i Funció de reducció.
Aquesta tecnologia ha estat implementada per grans organitzacions com Google, Yahoo, Facebook i també ha estat adoptada per Apache Hadoop com HDFS, PIG, HIVE i per emmagatzemar dades o executar i processar el Big Data mitjançant HBase, que també es coneix com No-SQL.
Avantatges de reduir el mapa
Aquesta tecnologia té dos avantatges.
# 1) Processament paral·lel
El primer avantatge és el processament en paral·lel. Mitjançant Map Reduce sempre podem processar les dades en paral·lel.
Segons el diagrama anterior, hi ha cinc màquines esclaves i hi ha dades que resideixen en aquestes màquines. Aquí, les dades es processen paral·lelament amb Hadoop Map Reduce i, per tant, el processament es fa ràpid.
En realitat, el que passa aquí és que tota la part de dades es divideix per Hadoop HDFS en HDFS Block i Map-Reduce processa aquests fragments de dades i, per tant, el processament es fa ràpid.
# 2) Localitat de dades
Això és una cosa versàtil que proporciona Hadoop MapReduce, és a dir, podem processar les dades allà on es troben.
Què vol dir?
A l’anterior tutorial HDFS, vam entendre que les dades que vam traslladar a Hadoop Cluster es divideixen en blocs HDFS i aquests blocs es guarden a SlaveMachines o DataNodes. El mapa-reducció detecta el processament i la lògica als respectius nodes esclaus o nodes de dades on les dades es troben com a blocs HDFS.
El processament s'executa en paral·lel sobre una petita part de dades en diverses ubicacions. Això estalvia molt de temps, així com l’amplada de banda de xarxa necessària per moure el Big Data d’una ubicació a una altra.
Recordeu que les dades que processem són Big Data desglossades en trossos i, si comencem a moure el Big Data directament a través dels canals de xarxa assignats a una màquina centralitzada i el processem, no ens donarà cap avantatge ja que consumirem tot l’ample de banda en moure les dades a un servidor centralitzat.
Avantatges:
Per tant, fent servir Hadoop MapReduce no ho fem només 'Processament paral·lel' , també estem processant les dades als respectius nodes esclaus o nodes de dades on hi ha trossos de dades i, per tant, també estem 'Estalvi de molta amplada de banda de xarxa' que és molt beneficiós.
Finalment, SlaveMachines es realitza amb el processament de dades emmagatzemades a SlaveMachines i envien els resultats a la màquina principal ja que els resultats no són tan grans com els blocs emmagatzemats a SlaveMachines. Per tant, no utilitzarà molta amplada de banda.
convertir el caràcter a cadena c ++
Les màquines esclaus tornen a enviar el resultat a la màquina principal, aquests resultats s’agrupen junts i el resultat final es torna a enviar a la màquina client que ha enviat el treball.
Aquí sorgeix una pregunta: qui decideix quines dades s’han de processar en quin DataNode?
El client envia el treball al gestor de recursos i el gestor de recursos és qui proporciona la direcció per executar el treball als respectius nodes de dades on resideixen les dades; decideix en funció del node de dades més proper que estigui disponible perquè hi hagi molta xarxa. No s’utilitza l’amplada de banda.
Tradicional vs. MapReduce Way
Per explicar-ho, farem una analogia de la vida real amb el recompte de sol·licituds de titulars de pòlisses de la companyia d’assegurances, tothom estaria al corrent de les polítiques de les companyies d’assegurances, ja que la majoria de les grans companyies d’assegurances tenen sucursals a diverses ciutats.
En aquestes oficines, hi ha 'n' nombre de persones que han sol·licitat pòlisses d'assegurança de vida.
Prenem un escenari en què disposem de cinc oficines d’assegurances on la gent ve i sol·licita polítiques d’assegurança de vida. Ara també tenim una seu d’aquesta companyia d’assegurances que té tota la informació sobre les oficines disponibles i ubicades.
No obstant això, quan la gent ve i sol·licita una pòlissa d’assegurança de vida a les respectives oficines A, B, C, D, E, les sol·licituds de pòlissa es conserven a les respectives oficines i aquesta informació no es comparteix amb la seu de la companyia d’assegurances.
Camí tradicional:
Vegem com la gent sol·licita la política tradicionalment. Per resoldre aquest problema tradicionalment, totes les sol·licituds es traslladaran a la seu de la companyia d'assegurances i s'iniciarà el procés de sol·licitud.
En aquest cas, hem de traslladar totes les sol·licituds a la seu de la companyia d’assegurances, cosa que és costosa, és a dir, hem de reunir totes les sol·licituds de les sucursals de la companyia d’assegurances i portar-les a la seu de la companyia d’assegurances.
Així és com s’implica el cost juntament amb els grans esforços per fer aquesta activitat.
Un altre aspecte d'això és la sobrecarregada seu de la companyia d'assegurances, ja que ha de processar totes les sol·licituds que les persones van aplicar per a pòlisses a les respectives oficines.
A mesura que la companyia d’assegurances processa les sol·licituds que s’han aplicat a totes les oficines, trigarà molt de temps. Al final, aquest procés no funciona molt bé.
MapReduce Way
Vegem com Map-Reduce resol aquest problema.
MapReduce segueix Data Locality, és a dir, no portarà totes les sol·licituds a la seu de la companyia d’assegurances, sinó que farà el processament de sol·licituds a les respectives oficines en paral·lel.
Un cop processades les sol·licituds aplicades a totes les oficines, tornen a enviar la informació processada a la seu de la companyia d’assegurances.
Ara la seu de la companyia d’assegurances només ha d’agregar el nombre de sol·licituds processades que s’envien des de les respectives oficines i conservar les dades a la seva base de dades o centre d’emmagatzematge respectius.
D’aquesta manera, el processament serà molt fàcil i ràpid i els prenedors d’assegurances obtindran els beneficis en poc temps.
Reduir mapa detalladament
En el nostre exemple anterior, teníem una entrada (aplicacions) que es distribuïen entre diverses branques i cada entrada era processada per la funció de mapa respectiva.
Sabem que MapReduce té dues funcions, és a dir, Funció de mapa i Funció de reducció.
La part de processament que es va fer a les respectives branques la va fer la funció de mapa. Per tant, cada entrada (aplicació) de cada sucursal es va processar mitjançant la funció Mapa, després les dades processades van ser enviades a la seu de la companyia d’assegurances i la part d’agregació la realitza la funció Reduir.
Els detalls de l'aplicació processada agregats es donen com a resultat.
Això és el que va passar al nostre exemple anterior. Tot el procés es va dividir en la tasca de mapa i la tasca de reducció.
La tasca de mapa obté una entrada i la sortida de la tasca de mapa es dóna a la tasca de reducció com a entrada i aquesta tasca de reducció dóna la sortida finalment al client.
Per entendre-ho d’una manera millor, repassem l’anatomia de MapReduce.
Una tasca MapReduce funciona en un parell clau-valor, de manera que quan parlem d’un mapa, el mapa pren l’entrada com a valor clau i dóna la sortida com una llista de valor-clau. Aquesta llista de valor-clau passa per una fase aleatòria i l’entrada de clau i una llista de valors van anar al reductor.
Finalment, el reductor ens proporciona una llista dels parells clau-valor.
Exemple MapReduce: procés de recompte de paraules
Prenguem un altre exemple, és a dir, processa el recompte de paraules de la manera MapReduce. Aquest exemple és el mateix que l'exemple introductori de programació Java, és a dir, 'Hello World'.
Segons el diagrama, teníem una entrada i aquesta entrada es divideix o es divideix en diverses entrades. Per tant, aquest procés s’anomena divisió d’entrada i tota l’entrada es divideix en fraccions de dades en funció del nou caràcter de línia.
La primera línia és la primera entrada, és a dir, Bigdata Hadoop MapReduce , la segona línia és la segona entrada, és a dir, MapReduce Hive Bigdata , de manera similar, per a la tercera entrada, ho és Hive Hadoop Hive MapReduce .
Passem a la següent fase, és a dir, a la fase de mapatge. Ara, a la fase de mapatge, creem una llista de parells clau-valor. Per tant, l’entrada és clau i valor, aquí la clau no és res més que el desplaçament del número de línia. El número de línia és la clau i tota la línia és el valor.
Per tant, per a la línia 1, el desplaçament és la clau i el valor és Bigdata Hadoop MapReduce . A la vida real, el número de línia o el desplaçament és un nombre hexadecimal, però, per fer-ho fàcil, només el considerarem com a número 1 o 2.
Per tant, la línia 1 serà la clau i tota la línia serà el valor. Quan passa per la funció de mapatge, farà el mapatge, crearà la llista de parells clau-valor. Per exemple, Dades massives , de manera que el que farà la funció és que llegirà totes les paraules de la línia i marcarà un (1) després de la coma.
Marcarà un (1) com a valor; M'agrada Bigdata, 1 Hadoop, 1 i MapReduce, 1 . Aquí la pregunta és per què posem un (1) després de cada paraula?
És perquè Dades massives és tan important Bigdata, 1 . De la mateixa manera, Hadoop, 1 i MapReduce, 1 és per això que marquem un (1) com a valor. De la mateixa manera que per a la segona línia o dir la línia 2 que tenim, MapReduce Hive Bigdata .
Així, de la mateixa manera, la funció de mapatge torna a crear la llista de parells clau-valor i, per tant, segons el recompte, es mostrarà la llista de parells clau-valor. MapReduce, 1 rusc, 1 i Bigdata, 1 .
Obtindrem el mateix com a resultat de la funció de mapatge de la línia 3, és a dir, Rusc, 2 Hadoop, 1 i MapReduce, 1 .
Passem a la fase de barreja, en aquesta fase per a cada clau hi ha una llista preparada. La fase de barreja trobarà l'aparença de Key Dades massives i afegirà els valors a la llista. Vegem, doncs, què passa aquí.
Com podem veure dues fletxes entrants, la primera fletxa prové de la llista 1 i una altra fletxa prové de la llista 2, de manera que el resultat serà Bigdata, (1,1) .
De la mateixa manera, quan veiem la paraula Hadoop , de nou per Hadoop es prepararà una altra llista per a Valors. Com podem veure, dues fletxes entrants apunten a Shuffling, que significa la paraula Hadoop es recollirà de la llista 2 i de la llista 3 respectivament, és a dir, el resultat final després de la barreja serà Hadoop, (1, 1) .
De la mateixa manera, obtindrem la resta de paraules com Rusc, (1, 1, 1) i MapReduce, (1, 1, 1) juntament amb la seva llista de valors o digueu la llista de recompte segons la disponibilitat de paraules a les llistes respectives.
Ara arribeu a la fase de reducció, en aquesta fase, iniciem l’agregació dels valors que hi havia a la llista en comparació amb cada clau. Així que per Dades massives, hi havia dos valors presents a la llista, és a dir, (1, 1) per tant, es farà la presentació d’aquests valors Bigdata, 2 .
De la mateixa manera, per a Hadoop el valor serà suma, és a dir, (1, 1) l’enviament serà Hadoop, 2 .
De la mateixa manera per a Rusc i MapReduce, l'enviament de la funció de reducció serà Rusc, 3 i MapReduce, 3 respectivament.
Finalment, el resultat final es retornarà al client tal com es mostra al diagrama següent de 'El procés global de recompte de paraules MapReduce'.
El procés global de recompte de paraules MapReduce
diferència entre les proves de sit i uat
Així és com funciona tot el procés de recompte de paraules quan utilitzeu MapReduce Way.
Conclusió
En aquest tutorial, hem après el següent:
- Hadoop Map Reduce és el 'Unitat de processament' de Hadoop.
- Per processar el Big Data emmagatzemat per Hadoop HDFS utilitzem Hadoop Map Reduce.
- S'utilitza a la cerca i indexació, classificació, recomanació i analítica.
- Té funcions com el model de programació, la programació en paral·lel i el model distribuït a gran escala.
- Els patrons de disseny de MapReduce són: Resum, classificació de registres destacats, ordenació i anàlisi, com ara unió i selecció.
- Només té dues funcions és a dir, la funció Mapper i la funció reductora.
- El processament en paral·lel i la localització de dades són els bons avantatges d’Hadoop MapReduce.
- El procés de MapReduce es divideix en sis fases, és a dir, INPUT, SPLITTING, MAPPING, SHUFFLING, REDUCING i RESULTAT FINAL.
Això és tot per a aquest tutorial, en els propers tutorials tractarem:
- Com funciona MapReduce amb YARN i els seus components?
- Flux de treball de l'aplicació de YARN.
- Què és Spark i quina diferència hi ha entre Hadoop i Spark?
=> Consulteu TOTS els tutorials de BigData aquí.
Lectura recomanada
- Què és Hadoop? Tutorial d'Apache Hadoop per a principiants
- Tutorial de Python DateTime amb exemples
- Tutorial de Data Mart: tipus, exemples i implementació de Data Mart
- Model de dades dimensionals a Data Warehouse: tutorial amb exemples
- Tutorial de longitud de matriu de Java amb exemples de codi
- Tutorial de Big Data per a principiants | Què és el Big Data?
- Tutorial de script Unix Shell amb exemples
- Tutorial Selenium Find Element By Text amb exemples