Što je MapReduce u Hadoopu? Veliki podaci Architektura
Što je MapReduce u Hadoopu?
MapReduce je softverski okvir i programski model koji se koristi za obradu velikih količina podataka. MapReduce rad programa u dvije faze, naime Map i Reduce. Zadaci mapiranja bave se dijeljenjem i mapiranjem podataka, dok zadaci Reduce miješaju i smanjuju podatke.
Hadoop može pokretati MapReduce programe napisane na različitim jezicima: Java, Ruby, Pythoni C++. Programi Map Reduce u računalstvu u oblaku paralelne su prirode, stoga su vrlo korisni za izvođenje velike analize podataka korištenjem više strojeva u klasteru.
Ulaz u svaku fazu je ključ-vrijednost parovi. Osim toga, svaki programer treba specificirati dvije funkcije: funkcija karte i smanjiti funkciju.
MapReduce Archistruktura u velikim podacima objašnjena primjerom
Cijeli proces prolazi kroz četiri faze izvršenja, naime, razdvajanje, mapiranje, miješanje i smanjivanje.
Sada u ovom vodiču za MapReduce, shvatimo s primjerom MapReducea –
Uzmite u obzir da imate sljedeće ulazne podatke za svoj MapReduce Program za velike podatke
Welcome to Hadoop Class Hadoop is good Hadoop is bad
Konačni izlaz zadatka MapReduce je
loše | 1 |
Klasa | 1 |
dobro | 1 |
Hadoop | 3 |
is | 2 |
do | 1 |
Dobrodošli | 1 |
Podaci prolaze kroz sljedeće faze MapReduce u Big Data
Podjela ulaza:
Unos u posao MapReduce u Big Data podijeljen je na dijelove fiksne veličine koji se nazivaju ulazne podjele Podjela ulaza dio je ulaza koji zauzima jedna karta
Mapiranje
Ovo je prva faza u izvođenju map-reduce programa. U ovoj fazi podaci u svakoj podjeli prosljeđuju se funkciji mapiranja kako bi se proizvele izlazne vrijednosti. U našem primjeru, posao faze mapiranja je brojanje broja pojavljivanja svake riječi iz ulaznih podjela (više detalja o ulaznoj podjeli je dano u nastavku) i priprema popisa u obliku
miješanje
Ova faza troši izlaz faze mapiranja. Njegov je zadatak konsolidirati relevantne zapise iz izlaza faze mapiranja. U našem primjeru, iste su riječi spojene zajedno s odgovarajućom učestalošću.
smanjivanje
U ovoj fazi se agregiraju izlazne vrijednosti iz faze miješanja. Ova faza kombinira vrijednosti iz faze miješanja i vraća jednu izlaznu vrijednost. Ukratko, ova faza sažima kompletan skup podataka.
U našem primjeru, ova faza agregira vrijednosti iz faze miješanja, tj. izračunava ukupan broj pojavljivanja svake riječi.
MapReduce Archidetaljno objašnjena struktura
- Za svaku podjelu kreira se jedan zadatak mapiranja koji zatim izvršava funkciju mapiranja za svaki zapis u podjeli.
- Uvijek je korisno imati više podjela jer je vrijeme potrebno za obradu podjele malo u usporedbi s vremenom potrebnim za obradu cijelog ulaza. Kada su podjele manje, obradu je bolje učitavati uravnoteženo budući da obrađujemo podjele paralelno.
- Međutim, također nije poželjno imati raspore premale veličine. Kada su podjele premale, preopterećenost upravljanjem podjelama i stvaranjem zadataka karte počinje dominirati ukupnim vremenom izvršenja posla.
- Za većinu poslova, bolje je napraviti veličinu dijeljenja jednakom veličini HDFS bloka (koji je prema zadanim postavkama 64 MB).
- Izvršenje zadataka karte rezultira pisanjem izlaza na lokalni disk na dotičnom čvoru, a ne na HDFS.
- Razlog za odabir lokalnog diska umjesto HDFS-a je izbjegavanje replikacije koja se odvija u slučaju rada HDFS pohrane.
- Izlaz mape je međuizlaz koji se obrađuje reducirajućim zadacima kako bi se proizveo konačni izlaz.
- Nakon što je posao dovršen, izlaz karte se može baciti. Dakle, pohranjivanje u HDFS s replikacijom postaje pretjerano.
- U slučaju kvara čvora, prije nego što se izlaz mape potroši za zadatak smanjenja, Hadoop ponovno pokreće zadatak mape na drugom čvoru i ponovno stvara izlaz karte.
- Zadatak Reduce ne funkcionira na konceptu lokaliteta podataka. Izlaz svakog zadatka karte šalje se zadatku reduciranja. Izlaz karte prenosi se na stroj na kojem se izvodi zadatak smanjenja.
- Na ovom stroju izlaz se spaja i zatim prosljeđuje korisnički definiranoj funkciji smanjenja.
- Za razliku od izlaza karte, izlaz smanjenja se pohranjuje u HDFS (prva replika pohranjena je na lokalnom čvoru, a ostale replike pohranjene su na čvorovima izvan police). Dakle, pisanje smanjenja izlaza
Kako MapReduce organizira rad?
U ovom vodiču za MapReduce naučit ćemo kako funkcionira MapReduce
Hadoop dijeli posao na zadatke. Postoje dvije vrste zadataka:
- Zadaci karte (Podijela i mapiranje)
- Smanjite zadatke (Mješanje, smanjivanje)
kao što je gore navedeno.
Cijeli proces izvršenja (izvršenje zadataka Map i Reduce, oba) kontroliraju dvije vrste entiteta koji se nazivaju
- Jobtracker: Ponaša se kao a majstor (odgovoran za kompletno izvršenje dostavljenog posla)
- Praćenje više zadataka: Ponaša se kao robovi, svaki od njih obavlja posao
Za svaki posao predan na izvršenje u sustavu postoji jedan Jobtracker koji se nalazi na Namenode i ima ih višestruki program za praćenje zadataka koji borave na Datanode.
- Posao je podijeljen na više zadataka koji se zatim pokreću na više podatkovnih čvorova u klasteru.
- Odgovornost programa za praćenje poslova je da koordinira aktivnost raspoređivanjem zadataka koji će se izvoditi na različitim podatkovnim čvorovima.
- Izvršenje pojedinačnog zadatka zatim treba pratiti program za praćenje zadataka koji se nalazi na svakom podatkovnom čvoru koji izvršava dio posla.
- Odgovornost programa za praćenje zadataka je slanje izvješća o napretku alatu za praćenje poslova.
- Osim toga, zadatak tracker povremeno šalje 'otkucaj srca' signalizira Jobtrackeru kako bi ga obavijestio o trenutnom stanju sustava.
- Tako program za praćenje poslova prati ukupni napredak svakog posla. U slučaju neuspjeha zadatka, alat za praćenje poslova može ga ponovno rasporediti na drugi uređaj za praćenje zadataka.