Mis on MapReduce Hadoopis? Arhitektuur - Näide

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

Anonim

Mis on MapReduce Hadoopis?

MapReduce on tarkvara raamistik ja programmeerimismudel, mida kasutatakse tohutute andmete töötlemiseks. MapReduce programmi töö kahes etapis, nimelt Map ja Reduce. Kaardiülesanded tegelevad andmete jagamise ja kaardistamisega, samal ajal kui redigeeri ülesannete segamist ja andmete vähendamist.

Hadoop suudab käivitada MapReduce programme, mis on kirjutatud erinevates keeltes: Java, Ruby, Python ja C ++. Map Reduce'i programmid pilvandmetöötluses on olemuselt paralleelsed, seega on need klastris mitut masinat kasutava suure andmeanalüüsi tegemiseks väga kasulikud.

Iga faasi sisendiks on võtmeväärtuste paarid. Lisaks peab iga programmeerija määrama kaks funktsiooni: kaardi funktsioon ja vähendamise funktsioon .

Selles algaja Hadoop MapReduce õpetuses saate teada

  • Mis on MapReduce Hadoopis?
  • MapReduce'i arhitektuur Big Data'is on üksikasjalikult selgitatud
  • MapReduce'i arhitektuur on üksikasjalikult selgitatud
  • Kuidas MapReduce tööd korraldab?

MapReduce'i arhitektuur Big Data'is on üksikasjalikult selgitatud

Kogu protsess läbib neli teostamisetappi, nimelt jagamine, kaardistamine, segamine ja vähendamine.

Nüüd selles MapReduce õpetuses mõistame MapReduce näite abil-

Mõelge, et teil on MapReduce'i Big Data programmis järgmised sisendandmed

Welcome to Hadoop ClassHadoop is goodHadoop is bad

MapReduce arhitektuur

MapReduce ülesande lõplik väljund on

halb 1
Klass 1
hea 1
Hadoop 3
on 2
kuni 1
Tere tulemast 1

Andmed läbivad järgmised suured MapReduce'i etapid Big Data'is

Sisendjaotused:

Big Data töö MapReduce'i sisend jaguneb fikseeritud suurusega tükkideks, mida nimetatakse sisendjaotusteks. Sisendjaotus on tükike sisendist, mida tarbib üks kaart

Kaardistamine

See on kaartide vähendamise programmi käivitamise kõige esimene etapp. Selles faasis edastatakse iga jaotuse andmed väljundväärtuste saamiseks kaardistusfunktsioonile. Meie näites on faaside kaardistamise ülesanne lugeda iga sõna esinemissagedused sisendjaotistest (sisendjaotuse kohta leiate üksikasjalikumat teavet allpool) ja koostada loend

Segamine

See faas kulutab kaardistamisfaasi väljundit. Selle ülesandeks on koondada asjakohased kirjed kaardistamise faasi väljundist. Meie näites on samad sõnad koondatud koos vastava sagedusega.

Vähendamine

Selles faasis liidetakse segamise etapi väljundväärtused. See faas ühendab segamise faasi väärtused ja tagastab ühe väljundväärtuse. Lühidalt, see etapp võtab kokku kogu andmekogumi.

Meie näites koondab see etapp segamise faasi väärtused, st arvutab iga sõna kogu esinemissageduse.

MapReduce'i arhitektuur on üksikasjalikult selgitatud

  • Iga jaotuse jaoks luuakse üks kaardiülesanne, mis täidab seejärel jaotuse iga kirje kaardifunktsiooni.
  • Alati on kasulik, kui jagatakse mitu tükki, sest jagamise töötlemiseks kuluv aeg on väike, võrreldes kogu sisendi töötlemiseks kuluva ajaga. Kui jaotused on väiksemad, on töötlemine parem tasakaalus, kuna töötleme jaotusi paralleelselt.
  • Samuti pole soovitav, et lõhed oleksid liiga väikesed. Kui jaotused on liiga väikesed, hakkab jagunemise ja kaardil ülesande loomise haldamise ülekoormus domineerima kogu töö täitmise aja üle.
  • Enamiku tööde jaoks on parem teha jaotussuurus, mis võrdub HDFS-ploki suurusega (mis on vaikimisi 64 MB).
  • Kaardiülesannete täitmise tulemuseks on väljundi kirjutamine vastava sõlme kohalikule kettale, mitte HDFS-i.
  • Kohaliku ketta valimine HDFS-i asemel on HDFS-i poe toimimisel toimuva replikatsiooni vältimine.
  • Kaardi väljund on vaheväljund, mida töötlevad redutseerimisülesanded lõpliku väljundi saamiseks.
  • Kui töö on lõpetatud, saab kaardi väljundi visata. Niisiis, HDFS-is replikatsiooniga salvestamine muutub ülearuseks.
  • Sõlme tõrke korral, enne kui kaardi väljund on vähendamisülesande poolt kulutatud, käitab Hadoop kaardi ülesande teises sõlmes uuesti ja loob kaardi väljundi uuesti.
  • Reduce task ei tööta andmekoha mõistes. Iga kaardiülesande väljund suunatakse redutseerimisülesandesse. Kaardi väljund viiakse masinasse, kus töötab redutseerimisülesanne.
  • Selles masinas ühendatakse väljund ja edastatakse seejärel kasutaja määratud vähendamisfunktsioonile.
  • Erinevalt kaardi väljundist salvestatakse vähendatud väljund HDFS-i (esimene koopia salvestatakse kohalikule sõlmele ja muud koopiad salvestatakse rackivälistele sõlmedele). Niisiis, vähendava väljundi kirjutamine

Kuidas MapReduce tööd korraldab?

Selles MapReduce õpetuses saame teada, kuidas MapReduce töötab

Hadoop jagab töö ülesanneteks. On kahte tüüpi ülesandeid:

  1. Kaardi ülesanded (jaotused ja kaardistamine)
  2. Vähendage ülesandeid (segamine, vähendamine)

nagu eelnevalt mainitud.

Täielikku täitmisprotsessi (nii Mapi kui ka Reduce'i ülesannete täitmist) kontrollivad kahte tüüpi üksused, mida nimetatakse a

  1. Töö jälitaja : käitub nagu kapten (vastutab esitatud töö täieliku täitmise eest)
  2. Mitu ülesannete jälgijat : toimib nagu orjad, igaüks neist täidab seda tööd

Iga töö esitatud täitmiseks süsteemis, on üks Jobtracker mis elab Namenode ja seal on mitu tasktrackers mis elada Datanode .

Kuidas Hadoop MapReduce töötab
  • Töö on jagatud mitmeks ülesandeks, mis seejärel käivitatakse klastri mitmele andmesõlmele.
  • Tööjälgija ülesandeks on tegevust kooskõlastada, ajastades ülesanded erinevatele andmesõlmedele töötamiseks.
  • Individuaalse ülesande täitmist peab seejärel jälgima ülesande jälgija, mis asub igal töö osa täitval andmesõlmel.
  • Ülesande jälgija ülesanne on eduaruanne tööjälgijale saata.
  • Lisaks saadab ülesannete jälgija perioodiliselt Jobtrackerile südamelöögisignaali , et teavitada teda süsteemi hetkeseisust.
  • Seega jälgib tööjälgija iga töö üldist edenemist. Ülesande ebaõnnestumise korral saab tööjälgija selle teise ülesande jälgijasse ajakava muuta.