Mis on Hadoopis MapReduce? Suured andmed Architektuur
Mis on Hadoopis MapReduce?
MapReduce on tarkvararaamistik ja programmeerimismudel, mida kasutatakse tohutute andmemahtude töötlemiseks. MapReduce programmitöö kahes faasis, nimelt kaardistamise ja vähendamise. Kaardiülesanded tegelevad andmete tükeldamise ja kaardistamisega, samas kui funktsioon Vähenda ülesandeid segab ja vähendab andmeid.
Hadoop on võimeline käivitama MapReduce'i programme, mis on kirjutatud erinevates keeltes: Java, Rubiin, Pythonja C++. Map Reduce'i programmid pilvandmetöötluses on oma olemuselt paralleelsed, seega on need väga kasulikud suuremahulise andmeanalüüsi tegemiseks, kasutades klastris mitut masinat.
Iga faasi sisend on võtmeväärtus paarid. Lisaks peab iga programmeerija määrama kaks funktsiooni: kaardi funktsioon ja funktsiooni vähendada.
MapReduce ArchiBig Data'i struktuuri, mida on selgitatud näitega
Kogu protsess läbib neli täitmise etappi, nimelt jagamine, kaardistamine, segamine ja vähendamine.
Nüüd selles MapReduce'i õpetuses mõistame MapReduce'i näite abil –
Arvestage, et teil on oma MapReduce in jaoks järgmised sisendandmed Suurandmete programm
Welcome to Hadoop Class Hadoop is good Hadoop is bad
MapReduce'i ülesande lõplik väljund on
halb | 1 |
klass | 1 |
hea | 1 |
hadoop | 3 |
is | 2 |
et | 1 |
Tere tulemast! | 1 |
Andmed läbivad järgmised MapReduce in Big Data etapid
Sisendjaotused:
MapReduce in Big Data töö sisend on jagatud fikseeritud suurusega tükkideks, mida nimetatakse sisend poolitab Sisendjaotus on osa sisendist, mida üks kaart tarbib
Kaardistamine
See on kaardi vähendamise programmi täitmise esimene etapp. Selles faasis edastatakse iga jaotuse andmed väljundväärtuste saamiseks kaardistamisfunktsioonile. Meie näites on kaardistamise etapi ülesanne loendades iga sõna esinemiste arv sisendlõhedest (lisateave sisend-jaotuse kohta on toodud allpool) ja koostada loend
Segamine
See faas tarbib kaardistamise faasi väljundit. Selle ülesanne on koondada kaardistamise etapi väljundist vastavad kirjed. Meie näites on samad sõnad kokku pandud koos nende vastava sagedusega.
Vähendamine
Selles faasis summeeritakse segamisfaasi väljundväärtused. See faas ühendab segamisfaasi väärtused ja tagastab ühe väljundväärtuse. Lühidalt, see etapp võtab kokku kogu andmekogumi.
Meie näites koondab see faas segamisfaasi väärtused, st arvutab iga sõna esinemiste koguarvu.
MapReduce Archiüksikasjalikult selgitatud teksti
- Iga jaotuse jaoks luuakse üks kaardiülesanne, mis seejärel täidab iga jaotuse kirje jaoks kaardifunktsiooni.
- Alati on kasulik kasutada mitut jaotust, sest jaotuse töötlemiseks kuluv aeg on väike võrreldes kogu sisendi töötlemise ajaga. Kui jaotused on väiksemad, on töötlust parem laadida tasakaalustatult, kuna töötleme poolitusi paralleelselt.
- Siiski ei ole soovitav, et lõhed oleksid liiga väikesed. Kui osad on liiga väikesed, hakkab jaotuste haldamise ja kaardiülesannete loomise ülekoormus domineerima kogu töö täitmise ajas.
- Enamiku tööde puhul on parem teha jaotatud suurus, mis võrdub HDFS-i ploki suurusega (mis on vaikimisi 64 MB).
- Kaardiülesannete täitmise tulemuseks on väljundi kirjutamine vastava sõlme kohalikule kettale, mitte HDFS-ile.
- HDFS-i asemel kohaliku ketta valimise põhjuseks on HDFS-i salvestamise korral toimuva replikatsiooni vältimine.
- Kaardiväljund on vaheväljund, mida töödeldakse vähendamisülesannetega, et saada lõppväljund.
- Kui töö on lõpetatud, võib kaardi väljundi ära visata. Seega muutub selle HDFS-is koos replikatsiooniga salvestamine ülemääraseks.
- Sõlme rikke korral käivitab Hadoop kaardi väljundi enne, kui redutseerimisülesanne ära kasutab, kaardi ülesande teises sõlmes ja loob kaardi väljundi uuesti.
- Ülesande vähendamine ei tööta andmete asukoha mõiste puhul. Iga kaardiülesande väljund suunatakse vähendamise ülesandesse. Kaardiväljund edastatakse masinasse, kus töötab reduktsiooniülesanne.
- Sellel masinal liidetakse väljund ja edastatakse seejärel kasutaja määratud vähendamise funktsioonile.
- Erinevalt kaardi väljundist salvestatakse vähendatud väljund HDFS (esimene koopia salvestatakse kohalikku sõlme ja muud koopiad off-rack sõlmedesse). Niisiis, väljundi vähendamise kirjutamine
Kuidas MapReduce'i korraldus töötab?
Nüüd selles MapReduce'i õpetuses õpime, kuidas MapReduce töötab
hadoop jagab töö ülesanneteks. On kahte tüüpi ülesandeid:
- Kaardiülesanded (Jaotused ja kaardistamine)
- Vähendage ülesandeid (Segamine, vähendamine)
nagu eelnevalt mainitud.
Täielikku täitmisprotsessi (mõlemad Map ja Reduce ülesannete täitmine) juhivad kahte tüüpi üksused, mida nimetatakse
- Tööjälgija: toimib nagu a meister (vastutab esitatud töö täieliku täitmise eest)
- Mitu ülesannete jälgijat: käitub nagu orjad, igaüks neist täidab oma tööd
Iga süsteemis täitmiseks esitatud töö kohta on üks Tööjälgija mis asub Nimesõlm ja on olemas mitu ülesannete jälgijat mis asuvad peal Datanode.
- Töö on jagatud mitmeks ülesandeks, mida seejärel käivitatakse klastri mitmes andmesõlmes.
- Tööjälgija vastutab tegevuste koordineerimise eest, ajastades ülesanded erinevatel andmesõlmedel käitamiseks.
- Individuaalse ülesande täitmise eest hoolitseb seejärel ülesande jälgija, mis asub igas andmesõlmes, mis täidab töö osa.
- Tööülesannete jälgija kohustus on saata edenemisaruanne tööjälgijale.
- Lisaks saadab ülesannete jälgija perioodiliselt 'südamelöögid' signaali Jobtrackerile, 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 ümber ajastada mõnel muul ülesandejälgijal.