Kuidas MapReduce töötab? - MapReduce'i töö, etapid ja eelised

Lang L: none (table-of-contents):

Anonim

Sissejuhatus MapReduce'i

MapReduce on Hadoopi raamistiku arvutuslik komponent rakenduste hõlpsaks kirjutamiseks, mis töötlevad suures koguses andmeid paralleelselt ja salvestatakse odavate kaubaautomaatide suurtesse klastritesse usaldusväärsel ja tõrketaluvusega viisil. Selles teemas uurime, kuidas MapReduce töötab?

MapReduce saab läbi viia hajutatud ja paralleelseid arvutusi, kasutades suuri andmekogumeid suure hulga sõlmede vahel. MapReduce'i töö tükeldab tavaliselt sisestuskomplektid ja töötleb neid siis iseseisvalt kaardiülesannete abil täiesti paralleelselt. Seejärel sorteeritakse väljund ja sisend, et ülesandeid vähendada. Nii töö sisend kui ka väljund salvestatakse failisüsteemidesse. Ülesandeid kavandab ja jälgib raamistik.

Kuidas MapReduce töötab?

MapReduce'i arhitektuur sisaldab kahte põhikomponenti, nagu Daemoni teenused, mis vastutavad kaardistaja ja reduktori ülesannete käitamise, rikke korral ülesannete jälgimise ja uuesti täitmise eest. Hadoop 2-s on deemoni teenused Resource Manager ja Node Manager. Kui tööklient esitab MapReduce'i töö, käivituvad need deemonid. Samuti vastutavad nad MapReduce'i tööde paralleelse töötlemise ja tõrketaluvuse funktsioonide eest.

Hadoop 2-s alates eraldab ressursside haldamine ja töö kavandamise või jälgimise funktsioonid YARN (Yet Another Resource Negotiator) erinevate deemonitena. Võrreldes Hadoop 1-ga Job Trackeri ja Task Trackeriga, sisaldab Hadoop 2 iga rakenduse jaoks globaalset ressursside haldurit (RM) ja rakenduse meistrit (AM).

  • Tööklient saadab töö ressursihaldurile.
  • YARNi ressursihalduri planeerija vastutab klastri ressursside jaotuse koordineerimise vahel töötavate rakenduste vahel.
  • YARN sõlmehaldur töötab igal sõlmel ja haldab sõlme tasemel ressursside haldust, kooskõlastades ressursihalduriga. See käivitab klastri masinas olevad arvutusmahutid ja jälgib neid.
  • Application Master aitab ressursside halduri ressursse ja kasutab Node Managerit MapReduce'i ülesannete käivitamiseks ja koordineerimiseks.

  • HDFS-i kasutatakse tavaliselt tööfailide jagamiseks teiste üksuste vahel.

MapReduce mudeli faasid

MapReduce mudelil on kolm peamist ja üks valikuline faas:

1. Kaardistaja

  • See on MapReduce'i programmeerimise esimene etapp ja sisaldab kaardistaja funktsiooni kodeerimisloogikat.
  • Tingimuslikku loogikat rakendatakse n-arvu andmeplokkide vahel, mis on jaotatud erinevatele andme sõlmedele.
  • Kaardistaja funktsioon aktsepteerib võtme-väärtuse paare sisendina kujul (k, v), kus võti tähistab iga kirje nihkeaadressi ja väärtus tähistab kogu kirje sisu.
  • Mapperi faasi väljund on ka võtmeväärtuse vormingus (k ', v').

2. Segage ja sorteerige

  • Erinevate kaardistajate väljund (k ', v') läheb seejärel faasi Shuffle ja Sort.
  • Kõik duplikaadi väärtused eemaldatakse ja erinevad väärtused rühmitatakse sarnaste klahvide alusel.
  • Faasi Shuffle ja Sort väljund on jällegi võtme-väärtuse paarid võtme ja väärtuste massiivina (k, v ()).

3. reduktor

  • Faasi Shuffle ja sortimine väljund (k, v ()) on Reducer faasi sisend.
  • Selles faasis teostatakse reduktori funktsiooni loogika ja kõik väärtused liidetakse nende vastavate võtmetega.
  • Reduktor ühendab erinevate kaardistajate väljundid ja arvutab lõpliku töö väljundi.
  • Seejärel kirjutatakse lõplik väljund HDFS-i väljundkataloogis ühte faili.

4. Kombineerija

  • See on valikuline etapp mudelis MapReduce.
  • Kombineeritud faasi kasutatakse MapReduce tööde jõudluse optimeerimiseks.
  • Selles faasis vähendatakse kaardistajate erinevaid väljundeid sõlme tasandil.
  • Näiteks kui ühest kaardisõlmest pärit erinevad kaardistajaväljundid (k, v) sisaldavad duplikaate, siis need kombineeritakse, st vähendatakse lokaalselt ühe (k, v ()) väljundina.
  • See faas muudab juhuvahetamise ja sortimise etapi töö veelgi kiiremaks, võimaldades MapReduce'i töödel täiendavat jõudlust.

Kõiki MapReduce'i töö etappe saab kujutada järgmiselt:

Näiteks MapReduce'i loogikat, et leida sõnade arv massiivist, saab näidata järgmiselt:

fruit_array = (õun, apelsin, õun, guajaav, viinamarjad, apelsin, õun)

  • Kaardistaja faas liigitab sõnade sisestruktuuri n-sõnade arvu järgi, et saada väljund (k, v). Mõelge näiteks „õunale”. Kaardistaja väljund on (õun, 1), (õun, 1), (õun, 1).
  • Segamine ja sortimine võta kasutusele kaardistaja (k, v) väljundi ja rühmita kõik väärtused vastavalt nende klahvidele kui (k, v ()). st (õun, (1, 1, 1)).
  • Reduktori faas võtab vastu juhuvaliku ja sortimise väljundi ja annab väärtused (õun, (1 + 1 + 1)), mis vastab nende võtmetele. st (õun, 3).

MapReduce'i töö spekulatiivne täitmine

MapReduce'i kiiruses domineerib kõige aeglasem ülesanne. Seega töötab kiiruse suurendamiseks uus kaardistaja samal andmestikul samal ajal. Seda, kumb ülesande kõigepealt täidab, loetakse lõplikuks väljundiks ja teine ​​tapetakse. See on optimeerimise tehnika.

MapReduce'i eelised

Siin mainitakse MapReduce'i eeliseid

1. Veatolerants

  • Kaardilõike töö keskel, kui mõni andmeplokk kannab masinat, tõrkeotsing lahendab tõrke.
  • Ta kaalub edasises töötlemises plokkide kopeeritud koopiaid teistes masinates.

2. Vastupidavus

  • Iga sõlme uuendab perioodiliselt oma olekut peasõlmeks.
  • Kui orjasõlm ei saada oma teadet, määrab peasõlm selle orjasõlme praegu töötava ülesande klastri teistele saadaolevatele sõlmedele.

3. Kiire

  • Andmete töötlemine on kiire, kuna MapReduce kasutab salvestussüsteemina HDFS-i.
  • MapReduce võtab töötlemata suurte andmemahtude terabaitide töötlemiseks aega minuteid.

4. Paralleelne töötlemine

  • MapReduce'i ülesanded töötlevad samade andmekogumite mitu tükki paralleelselt, jagades ülesanded.
  • See annab eelise, et ülesanne saab vähem aega täita.

5. Kättesaadavus

  • Võrgu arvukatele sõlmedele saadetakse sama andmete mitu koopiat.
  • Seega on tõrke korral muud eksemplarid ilma kadudeta töötlemiseks kättesaadavad.

6. Skaleeritavus

  • Hadoop on väga skaleeritav platvorm.
  • Traditsioonilised RDBMS-süsteemid ei ole vastavalt andmemahu suurenemisele skaleeritavad.
  • MapReduce võimaldab teil rakendusi käivitada tohutul hulgal sõlmedest, kasutades andmeid andmetele terabaitides ja petabaitides.

7. Tasuv

  • Hadoopi ulatuse vähendamise funktsioon koos MapReduce'i programmeerimisega võimaldab teil andmeid tõhusalt ja taskukohaselt salvestada ja töödelda.
  • Kulude kokkuhoid võib olla terabaitides andmetes sadu.

Järeldus - kuidas MapReduce töötab

Kaasaegsed andmed liiguvad rohkem struktureerimata tüübi poole ja tohutu tavapärase andmetöötluse võimalus nagu RDBMS on veelgi keerulisem, aeganõudvam ja kulukam. Kuid Hadoopi MapReduce'i programmeerimine on isegi terabaitide või petabaitide suurte andmekogumite töötlemisel palju tõhusam, turvalisem ja kiirem.

Soovitatavad artiklid

See on juhend Kuidas MapReduce töötab. Siin arutame MapReduce'i mudeli faase koos eelistega ja kuidas see töötab. Võite lisateabe saamiseks vaadata ka järgmisi artikleid -

  1. Hadoopi ökosüsteemi komponendid
  2. MapReduce algoritmid
  3. Mis on MapReduce Hadoopis?
  4. MapReduce'i intervjuu küsimused