Kako deluje MapReduce? - Delo, faze in prednosti MapReduce

Kazalo:

Anonim

Uvod v MapReduce

MapReduce je računalniška komponenta okvira Hadoop za enostavno pisanje aplikacij, ki vzporedno obdelujejo velike količine podatkov in jih shranjujejo na velikih grozdih poceni blagovnih strojev na zanesljiv in napak. V tej temi bomo spoznali, kako deluje MapReduce?

MapReduce lahko izvaja porazdeljene in vzporedne izračune z uporabo velikih nizov podatkov v velikem številu vozlišč. Delo MapReduce običajno razdeli vhodne nabore podatkov in jih nato vsaka neodvisno obdela z nalogami Map na popolnoma vzporeden način. Izhod se nato razvrsti in vnese za zmanjšanje opravil. Vhod in izhod opravila sta shranjena v datotečnih sistemih. Naloge so načrtovane in jih spremlja okvir.

Kako deluje MapReduce?

MapReduce arhitektura vsebuje dve temeljni komponenti kot storitve Daemon, ki so odgovorne za izvajanje mapper in reducer opravil, spremljanje in ponovno izvajanje nalog ob neuspehu. V Hadoopu 2 ​​sta Nadzornik virov in Upravitelj vozlij storitve demona. Ko odjemalec posla pošlje opravilo MapReduce, ti demoni začnejo delovati. Prav tako so odgovorni za vzporedno obdelavo in odstopanje napak v opravilih MapReduce.

V Hadoopu 2 ​​je upravljanje virov in razporejanje delovnih mest ali spremljanje funkcionalnosti ločeno z YARN (še en pogajalec o virih) kot različni demoni. V primerjavi s Hadoopom 1 z Job Trackerjem in sledilcem opravil, Hadoop 2 vsebuje globalni upravitelj virov (RM) in upravitelje aplikacij (AM) za vsako aplikacijo.

  • Job odjemalec odda nalogo upravitelju virov.
  • Planer razporejevalnika YARN Resource Manager je odgovoren za koordinacijo razporeditve virov v grozdu med tekočimi aplikacijami.
  • Upravljalec vozlišč YARN deluje na vsakem vozlišču in ne upravlja z viri na ravni vozlišča, usklajuje pa se z upraviteljem virov. Zažene in spremlja kontejnerje za računanje na stroju na grozdu.
  • Upravitelj aplikacij pomaga z viri upravitelja virov in uporablja upravitelja vozlij za izvajanje in koordinacijo nalog MapReduce.

  • HDFS se običajno uporablja za skupno rabo datotek opravil med drugimi subjekti.

Faze modela MapReduce

Model MapReduce ima tri glavne in eno izbirno fazo:

1. Mapper

  • Je prva faza programiranja MapReduce in vsebuje logiko kodiranja funkcije mapperja.
  • Pogojna logika se uporablja za 'n' število podatkovnih blokov, razporejenih po različnih vozliščih podatkov.
  • Mapper funkcija sprejema pare ključ-vrednost kot vhod kot (k, v), kjer ključ predstavlja odmični naslov vsakega zapisa in vrednost predstavlja celotno vsebino zapisa.
  • Izhod faze Mapper bo tudi v formatu ključ-vrednost kot (k ', v').

2. Premešajte in razvrstite

  • Rezultat različnih preslikav (k ', v') nato preide v fazo Shuffle in Sort.
  • Vse podvojene vrednosti so odstranjene, različne vrednosti pa so združene na podlagi podobnih ključev.
  • Izhod faze Shuffle and Sort bo ponovno par-ključ-vrednost kot ključ in matrika vrednosti (k, v ()).

3. reduktor

  • Izhod faze Shuffle and Sort (k, v ()) bo vhod faze Reducer.
  • V tej fazi se izvaja logika funkcije reduktorja in vse vrednosti so združene z ustreznimi tipkami.
  • Reduktor konsolidira izhode različnih preslikav in izračuna končni izid opravila.
  • Končni izhod se nato zapiše v eno datoteko v izhodni imenik HDFS.

4. Kombinator

  • To je neobvezna faza v modelu MapReduce.
  • Faza kombiniranja se uporablja za optimizacijo uspešnosti opravil MapReduce.
  • V tej fazi se različni izhodi zemljevidov lokalno zmanjšajo na ravni vozlišča.
  • Na primer, če različni izhodi preslikav (k, v), ki prihajajo iz enega vozlišča, vsebujejo podvojenike, se ti združijo, tj. Lokalno zmanjšajo kot en sam (k, v ()) izhod.
  • S to fazo je delo Shuffle in Sort še hitrejše, kar omogoča dodatne zmogljivosti v opravilih MapReduce.

Vse te faze v MapReduce opravilu so lahko prikazane kot spodaj:

Na primer, logika MapReduce za iskanje števila besed v matriki besed je prikazana kot spodaj:

sadje_array = (jabolko, pomaranča, jabolko, guava, grozdje, pomaranča, jabolko)

  • Faza Mapper tokenizira vhodni niz besed v 'n' število besed, da poda izhod kot (k, v). Na primer, upoštevajte "jabolko". Izhod Mapper bo (jabolko, 1), (jabolko, 1), (jabolko, 1).
  • Shuffle in Sort sprejmeta preslikava (k, v) in razvrsti vse vrednosti v skladu s svojimi tipkami kot (k, v ()). tj (jabolko, (1, 1, 1)).
  • Faza reduktorja sprejme Shuffle in razvrstitev in poda agregat vrednosti (jabolko, (1 + 1 + 1)), ki ustrezajo njihovim tipkam. tj. (jabolko, 3).

Špekulativno izvajanje dela MapReduce

V hitrosti MapReduce prevladuje najpočasnejša naloga. Tako bo za povečanje hitrosti novi zemljevidnik hkrati deloval na istem naboru podatkov. Ne glede na izpolnitev naloge se prvi šteje za končni rezultat, drugi pa se ubije. Gre za tehniko optimizacije.

Prednosti MapReduce

Tu so spodaj omenjene prednosti MapReduce

1. Napaka

  • Če je stroj, ki nosi nekaj blokov podatkov, v sredini posla zmanjšanja zemljevidov arhitektura odpravi napako.
  • Za nadaljnjo obdelavo šteje ponovljene kopije blokov v nadomestnih strojih.

2. odpornost

  • Vsako vozlišče občasno posodobi svoj status v glavno vozlišče.
  • Če podrejeno vozlišče ne pošlje svojega obvestila, glavno vozlišče dodeli trenutno izvajano nalogo tega podrejenega vozlišča drugim razpoložljivim vozliščem v grozdu.

3. Hitro

  • Obdelava podatkov je hitra, saj MapReduce kot sistem za shranjevanje uporablja HDFS.
  • MapReduce potrebuje nekaj minut za obdelavo terabajtov nestrukturiranih velikih količin podatkov.

4. Vzporedna obdelava

  • Naloge MapReduce vzporedno obdelajo več sklopov istih nizov podatkov z deljenjem nalog.
  • To daje prednost izpolnjevanju nalog v krajšem času.

5. Razpoložljivost

  • Več replik istih podatkov se pošlje številnim vozliščem v omrežju.
  • Tako so v primeru okvare druge kopije takoj na voljo za obdelavo brez izgube.

6. Prilagodljivost

  • Hadoop je zelo razširljiva platforma.
  • Tradicionalnih sistemov RDBMS ni mogoče razširiti glede na povečanje obsega podatkov.
  • MapReduce omogoča zagon aplikacij iz ogromnega števila vozlišč s pomočjo terabajtov in petabajtov podatkov.

7. stroškovno učinkovito

  • Hadoopova funkcija za merjenje obsega in programiranje MapReduce omogoča shranjevanje in obdelavo podatkov na zelo učinkovit in cenovno ugoden način.
  • Prihranki stroškov so lahko ogromni kot stotine za terabajte podatkov.

Zaključek - Kako deluje MapReduce

Sodobni podatki bolj napredujejo proti nestrukturirani vrsti, ogromna, običajna možnost obdelave podatkov, kot je RDBMS, pa je še težja, dolgotrajna in draga. Vendar je Hadoop MapReduce programiranje veliko učinkovitejše, varnejše in hitrejše pri obdelavi velikih nizov podatkov celo terabajtov ali petabajtov.

Priporočeni članki

To je vodnik za delovanje MapReduce. Tukaj razpravljamo o fazah modela MapReduce s prednostmi in kako deluje. Za več informacij si lahko ogledate tudi naslednje članke -

  1. Hadoop komponente ekosistema
  2. Algoritmi MapReduce
  3. Kaj je MapReduce v Hadoopu?
  4. Vprašanja za intervju z MapReduce