Mis on Hadoopis MapReduce? Archistruktuur ja diagramm
โก Nutikas kokkuvรตte
MapReduce on Hadoopi programmeerimismudel, mis muudab suure andmestiku vรคikeseks tulemuseks, kรคivitades iga sisendjaotuse peal kaardifunktsiooni ja seejรคrel rรผhmitatud vahevรครคrtuste peal redutseerimisfunktsiooni.
Mis on Hadoopis MapReduce?
MapReduce on tarkvararaamistik ja programmeerimismudel, mida kasutatakse suurte andmemahtude tรถรถtlemiseks. MapReduce'i programmid tรถรถtavad kahes etapis, nimelt kaardistamises ja vรคhendamises. Kaardistamisรผlesanded tegelevad jagamise ja kaardistamisega.ping andmete kogust, samal ajal kui รผlesannete vรคhendamine segab ja vรคhendab andmeid.
hadoop on vรตimeline kรคivitama MapReduce'i programme, mis on kirjutatud erinevates keeltes: Java, Rubiin, Pythonja C++MapReduce'i programmid on oma olemuselt paralleelsed, seega on need vรคga kasulikud suuremahulise andmeanalรผรผsi tegemiseks, kasutades klastris mitut masinat.
Iga faasi sisendiks on vรตtme-vรครคrtuse paarid. Lisaks peab iga programmeerija mรครคrama kaks funktsiooni: kaardistamisfunktsiooni ja vรคhendamisefunktsiooni.
MapReduce ArchiBig Data'i struktuuri, mida on selgitatud nรคitega
Kogu protsess lรคbib neli teostusfaasi, nimelt jagamine, kaardistamineping, segamine ja vรคhendamine.
Nรผรผd selles MapReduce'i รตpetuses mรตistame seda MapReduce'i nรคite abil.
Oletame, et teil on MapReduce'i jaoks jรคrgmised sisendandmed: Big andmed programm:
Welcome to Hadoop Class Hadoop is good Hadoop is bad
Allolev diagramm trackasutab neid kolme rida igas faasis, alates vasakul asuvatest sisendjaotustest kuni paremal asuvate viimaste sรตnade arvuni.
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 suurandmetes jรคrgmised MapReduce'i etapid.
Sisendjaotused
Suurandmete MapReduce'i tรถรถ sisend jagatakse fikseeritud suurusega osadeks, mida nimetatakse sisendjaotusteks. Sisendijaotis on sisendi osa, mida รผks kaart kasutab.
kaartping
See on MapReduce'i programmi kรคivitamise kรตige esimene etapp. Selles etapis edastatakse iga jaotuse andmed kaardile.ping funktsioon vรคljundvรครคrtuste loomiseks. Meie nรคites on kaardi รผlesanneping etapp on loendada iga sรตna esinemiste arv sisendjaotustes (lisateavet sisendjaotuste kohta leiate allpool) ja koostada loend kujul .
Segamine
See etapp tarbib kaardi vรคljunditping etapp. Selle รผlesanne on koondada kaardilt asjakohased kirjed.ping faasi vรคljund. Meie nรคites on samad sรตnad koos vastava sagedusega kokku pandud.
Vรคhendamine
Selles etapis koondatakse segamisfaasi vรคljundvรครคrtused. See etapp รผhendab segamisfaasi vรครคrtused ja tagastab รผhe vรคljundvรครคrtuse. Lรผhidalt รถeldes vรตtab see etapp kokku kogu andmestiku.
Meie nรคites koondab see etapp segamisfaasi vรครคrtused, st arvutab iga sรตna esinemiste koguarvu.
MapReduce Archiรผksikasjalikult selgitatud teksti
Allolevad punktid selgitavad, kuidas jagamis-, kaardistamis- ja vรคhendamise รผlesandeid klastris tegelikult paigutatakse ja salvestatakse.
- Iga jaotuse jaoks luuakse รผks kaardistamisรผlesanne, mis seejรคrel kรคivitab kaardistamisfunktsiooni iga jaotuse kirje jaoks.
- Mitme jaotuse omamine on alati kasulik, sest jaotuse tรถรถtlemiseks kuluv aeg on lรผhike vรตrreldes kogu sisendi tรถรถtlemiseks kuluva ajaga. Kui jaotused on vรคiksemad, on tรถรถtlemine paremini koormust tasakaalustatud, kuna jaotusi tรถรถdeldakse paralleelselt.
- Siiski pole ka soovitav, et jaotused oleksid liiga vรคikesed. Kui jaotused on liiga vรคikesed, hakkab jaotuste haldamise ja kaardiรผlesannete loomise รผldkulu domineerima kogu tรถรถ tรคitmisaja suhtes.
- Enamiku tรถรถde puhul on parem teha jaotussuurus vรตrdseks elemendi suurusega. HDFS plokk, mille vaikevรครคrtus on alates Hadoop 2.x versioonist 128 MB (Hadoop 1.x versioonis oli see 64 MB) ja mida kontrollib
dfs.blocksizevara. - Kaardistamisรผlesannete tรคitmise tulemusel kirjutatakse vรคljund vastava sรตlme kohalikule kettale, mitte HDFS-i.
- Kohaliku ketta valimise pรตhjus HDFS-i asemel on vรคltida replikatsiooni, mis toimub HDFS-i salvestustoimingu ajal.
- 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.
- Reduktsiooniรผlesanded (redutseerimisรผlesanded) ei tรถรถta andmete lokaalsuse pรตhimรตttel. Iga kaardistusรผlesande vรคljund edastatakse reduktsiooniรผlesandele. Kaardistusvรคljund edastatakse masinasse, kus reduktsiooniรผlesanne tรถรถtab.
- Sellel masinal liidetakse vรคljund ja edastatakse seejรคrel kasutaja mรครคratud vรคhendamise funktsioonile.
- Erinevalt kaardi vรคljundist salvestatakse reduce'i vรคljund HDFS-i (esimene koopia salvestatakse kohalikku sรตlme ja teised koopiad salvestatakse riiulivรคlistele sรตlmedele). Seega reduce'i vรคljundi kirjutamine tarbib kรผll vรตrgu ribalaiust, kuid ainult sama palju kui tavaline HDFS-i kirjutamistorustik.
Kuidas MapReduce'i korraldus tรถรถtab?
Selles MapReduce'i รตpetuses รตpime, kuidas MapReduce tรถรถtab.
Hadoop jagab tรถรถ รผlesanneteks. รlesandeid on kahte tรผรผpi:
- Kaardiรผlesanded (jaotused ja kaart)ping)
- รlesannete vรคhendamine (รผlesannete jagamine, vรคhendamine)
Kogu tรคitmisprotsessi, st nii kaardistamis- kui ka vรคhendamiseรผlesannete tรคitmist, kontrollivad kahte tรผรผpi รผksused, mida nimetatakse:
- tรถรถTracker: tegutseb nagu meister ja vastutab esitatud tรถรถ tรคieliku tรคitmise eest.
- Mitme รผlesandeTrackerid: kรคituvad nagu orjad, igaรผks neist tรคidab osa tรถรถst.
Iga sรผsteemis tรคitmiseks esitatud tรถรถ kohta on รผks tรถรถTracker, mis asub NameNode'il ja seal on mitu Task'iTrackerid, mis asuvad DataNode'idel.
Mรคrge: tรถรถTracker ja รผlesanneTracker paar kuulub MapReduce'i versioonile 1 (Hadoop 1.x). Alates Hadoop 2.x-st jagab YARN need รผlesanded klastriรผlese ressursihalduri (ResourceManager), iga sรตlme sรตlmehalduri (NodeManager) ja iga tรถรถ kohta รผhe rakendushalduri (ApplicationMaster) vahel, kuigi kaardistamise, segamise ja vรคhendamise etapid ise jรครคvad samaks.
Allolev diagramm nรคitab, kuidas esitatud tรถรถรผlesanne jaotatakse รผlesanneteks ja tracked รผle kobara.
- Tรถรถ jaguneb mitmeks รผlesandeks, mis seejรคrel kรคivitatakse klastri mitmel andmesรตlmel.
- See on tรถรถรผlesannete vastutus tracker koordineerib tegevust, ajastades รผlesandeid erinevatel andmesรตlmedel.
- Seejรคrel hoolitseb รผksiku รผlesande tรคitmise eest รผlesanne tracker, mis asub igal tรถรถรผlesande osa tรคitval andmesรตlmel.
- รlesanne tractรถรถtaja รผlesanne on saata eduaruanne tรถรถle tracker.
- Lisaks on รผlesanne tracker saadab perioodiliselt Jobile sรผdamelรถรถgi signaaliTracker, et teavitada seda sรผsteemi hetkeseisust.
- Seega tรถรถ tracker hoiab track iga tรถรถ รผldise edenemise kohta. รlesande ebaรตnnestumise korral tรถรถ tracker saab selle รผmber planeerida teise รผlesande jaoks tracker.


