Kaj je MapReduce v Hadoopu?
MapReduce je programski okvir in programski model, ki se uporablja za obdelavo ogromnih količin podatkov. Program MapReduce deluje v dveh fazah, in sicer Map in Reduce. Naloge na zemljevidu se ukvarjajo z razdelitvijo in preslikavo podatkov, medtem ko Zmanjšajte naloge premešajte in zmanjšajte podatke.
Hadoop lahko izvaja programe MapReduce, napisane v različnih jezikih: Java, Ruby, Python in C ++. Programi Map Reduce pri računalništvu v oblaku so vzporedne narave, zato so zelo koristni za izvajanje obsežne analize podatkov z uporabo več strojev v gruči.
Vhodni podatki za vsako fazo so pari ključ-vrednost . Poleg tega mora vsak programer določiti dve funkciji: funkcijo preslikave in funkcijo zmanjšanja .
V tej začetniški vadnici Hadoop MapReduce boste izvedeli-
- Kaj je MapReduce v Hadoopu?
- Podrobno razložena arhitektura MapReduce v velikih podatkih
- Podrobno razložena arhitektura MapReduce
- Kako MapReduce organizira delo?
Podrobno razložena arhitektura MapReduce v velikih podatkih
Celoten postopek gre skozi štiri faze izvedbe, in sicer delitev, preslikava, premeščanje in zmanjšanje.
Zdaj v tej vadnici MapReduce, razumimo s primerom MapReduce-
Upoštevajte, da imate za program MapReduce v programu za velike podatke naslednje vhodne podatke
Welcome to Hadoop ClassHadoop is goodHadoop is bad
Končni izhod naloge MapReduce je
slab | 1. |
Razred | 1. |
dobro | 1. |
Hadoop | 3. |
je | 2. |
do | 1. |
Dobrodošli | 1. |
Podatki gredo skozi naslednje faze MapReduce v velikih podatkih
Vhodne delitve:
Vhod v opravilo MapReduce v velikih podatkih je razdeljen na koščke nespremenljive velikosti, ki se imenujejo vhodne delitve. Vhodna delitev je del vhoda, ki ga porabi en zemljevid
Kartiranje
To je prva faza izvajanja programa za zmanjšanje zemljevidov. V tej fazi se podatki v vsakem razdelitvi posredujejo v funkcijo preslikave za izdelavo izhodnih vrednosti. V našem primeru je naloga faze preslikave štetje števila pojavitev vsake besede iz vhodnih delitev (več podrobnosti o razdelitvi vnosa je podano spodaj) in priprava seznama v obliki
Premeščanje
Ta faza porabi rezultate faze preslikave. Njegova naloga je združiti ustrezne zapise iz izhodne faze preslikave. V našem primeru so iste besede združene skupaj s svojo pogostostjo.
Zmanjševanje
V tej fazi se agregirajo izhodne vrednosti iz faze mešanja. Ta faza združuje vrednosti iz faze mešanja in vrne eno izhodno vrednost. Skratka, ta faza povzema celoten nabor podatkov.
V našem primeru ta faza združuje vrednosti iz faze premešanja, tj. Izračuna skupno število pojavitev vsake besede.
Podrobno razložena arhitektura MapReduce
- Za vsako razdeljevanje se ustvari ena naloga, ki nato izvede funkcijo zemljevida za vsak zapis v razdelitvi.
- Vedno je koristno imeti več delitev, ker je čas, potreben za obdelavo delitve, majhen v primerjavi s časom, potrebnim za obdelavo celotnega vnosa. Kadar so deli manjši, je obdelavo bolje naložiti uravnoteženo, saj delimo obdelave vzporedno.
- Vendar pa tudi ni zaželeno, da bi bili razcepi premajhni. Ko so delitve premajhne, začne preobremenitev upravljanja delitev in ustvarjanja opravil na zemljevidu prevladovati nad celotnim časom izvajanja opravila.
- Za večino opravil je bolje, da razdelite velikost, ki je enaka velikosti bloka HDFS (kar je privzeto 64 MB).
- Rezultat nalog map je zapisovanje izhoda na lokalni disk na ustreznem vozlišču in ne v HDFS.
- Razlog za izbiro lokalnega diska nad HDFS je, da se izognemo kopiranju, ki se zgodi v primeru delovanja trgovine HDFS.
- Izhod zemljevida je vmesni izhod, ki se obdela z zmanjšanjem števila nalog, da se ustvari končni rezultat.
- Ko je opravilo končano, lahko izhod zemljevida zavržemo. Tako shranjevanje v HDFS z replikacijo postane preveč.
- V primeru okvare vozlišča, preden izhod zemljevida porabi naloga zmanjšanja, Hadoop znova zažene nalogo zemljevida na drugem vozlišču in znova ustvari izhod zemljevida.
- Zmanjšana naloga ne deluje na konceptu lokacije podatkov. Izhod vsake naloge zemljevida se prenese na nalogo zmanjšanja. Izpis zemljevida se prenese na stroj, kjer se izvaja naloga redukcije.
- Na tej napravi se izhod združi in nato posreduje uporabniško določeni funkciji zmanjšanja.
- V nasprotju z izhodom zemljevida je izhod za zmanjšanje shranjen v HDFS (prva replika je shranjena na lokalnem vozlišču, druge replike pa na vozliščih, ki niso v stojalu). Torej, pisanje zmanjšanja proizvodnje
Kako MapReduce organizira delo?
Zdaj v tej vadnici MapReduce bomo izvedeli, kako deluje MapReduce
Hadoop razdeli službo na naloge. Obstajata dve vrsti nalog:
- Naloge na zemljevidu (delitve in preslikave)
- Zmanjšajte naloge (mešanje, zmanjševanje)
kot omenjeno zgoraj.
Celoten postopek izvajanja (izvajanje nalog Map in Reduce, oba) nadzorujeta dve vrsti entitet, imenovani a
- Jobtracker : deluje kot mojster (odgovoren za popolno izvedbo oddanega posla)
- Več sledilcev opravil : deluje kot suženj, vsak od njih opravlja svoje delo
Za vsako opravilo, oddano za izvršitev v sistemu, obstaja en Jobtracker, ki je nameščen na Namenode , več sledilcev opravil pa je na Datanode .
- Opravilo je razdeljeno na več nalog, ki se nato zaženejo na več podatkovnih vozlišč v gruči.
- Sledilnik opravil je odgovoren za usklajevanje dejavnosti z razporejanjem nalog, ki se izvajajo na različnih podatkovnih vozliščih.
- Izvajanje posamezne naloge je nato skrb za sledenje opravil, ki se nahaja na vsakem vozlišču podatkov, ki izvaja del opravila.
- Odgovornost sledilca opravil je poslati poročilo o napredku sledilniku opravil.
- Poleg tega sledilnik opravil redno pošlje Jobtrackerju signal »heartbeat«, da ga obvesti o trenutnem stanju sistema.
- Tako sledilnik zaposlitve spremlja celotni napredek vsakega posla. V primeru neuspeha opravila ga lahko sledilnik opravil preloži na drug sledilnik opravil.