Što je MapReduce u Hadoopu?
MapReduce je softverski okvir i model programiranja koji se koristi za obradu ogromnih količina podataka. Program MapReduce radi u dvije faze, i to Map and Reduce. Zadaci na karti bave se dijeljenjem i mapiranjem podataka, dok se Smanji zadacima preslagivanjem i smanjenjem podataka.
Hadoop je sposoban izvoditi programe MapReduce napisane na raznim jezicima: Java, Ruby, Python i C ++. Programi Map Reduce u računalstvu u oblaku paralelne su prirode, stoga su vrlo korisni za obavljanje velikih podataka s više računala u klasteru.
Ulaz u svaku fazu su parovi ključ / vrijednost . Osim toga, svaki programer treba navesti dvije funkcije: funkciju karte i smanjiti funkciju .
U ovom početnom vodiču za Hadoop MapReduce naučit ćete-
- Što je MapReduce u Hadoopu?
- Detaljno je objašnjena arhitektura MapReduce u velikim podacima
- Detaljno je objašnjeno u MapReduce Architecture
- Kako MapReduce organizira rad?
Detaljno je objašnjena arhitektura MapReduce u velikim podacima
Cijeli postupak prolazi kroz četiri faze izvođenja, naime, dijeljenje, mapiranje, miješanje i smanjivanje.
Sada u ovom vodiču za MapReduce, shvatimo s primjerom MapReduce-
Uzmite u obzir da imate sljedeće ulazne podatke za svoj MapReduce u programu velikih podataka
Welcome to Hadoop ClassHadoop is goodHadoop is bad
Konačni izlaz zadatka MapReduce je
loše | 1 |
Razred | 1 |
dobro | 1 |
Hadoop | 3 |
je | 2 |
do | 1 |
Dobrodošli | 1 |
Podaci prolaze kroz sljedeće faze MapReducea u velikim podacima
Ulazne podjele:
Ulaz u zadatak MapReduce u Big Data podijeljen je na dijelove fiksne veličine koji se nazivaju input split-i. Ulazni split je dio unosa koji troši jedna karta
Mapiranje
Ovo je prva faza u izvršavanju programa za smanjenje karte. U ovoj se fazi podaci u svakom dijeljenju prenose u funkciju 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 unosu-podjeli dano je u nastavku) i priprema popisa u obliku
Preslagivanje
Ova faza troši izlazne faze mapiranja. Njegova je zadaća objediniti relevantne zapise iz izlaza faze preslikavanja. U našem primjeru, iste su riječi skupljene zajedno sa njihovom učestalošću.
Smanjivanje
U ovoj se fazi 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 cjelokupni skup podataka.
U našem primjeru, ova faza agregira vrijednosti iz faze miješanja, tj. Izračunava ukupne pojavnosti svake riječi.
Detaljno je objašnjeno u MapReduce Architecture
- Za svaki se split stvara jedan zadatak mape koji zatim izvršava funkciju karte za svaki zapis u split-u.
- Uvijek je korisno imati više dijeljenja jer je vrijeme potrebno za obradu dijeljenja malo u odnosu na vrijeme potrebno za obradu cijelog unosa. Kada su dijeljenja manja, obradu je bolje uravnotežiti jer obrađujemo paralelno.
- Međutim, također nije poželjno imati podijeljene premale veličine. Kada su podjele premale, preopterećenje upravljanja podjelama i stvaranjem zadataka mape počinje dominirati ukupnim vremenom izvršenja posla.
- Za većinu poslova bolje je napraviti podijeljenu veličinu jednaku veličini HDFS bloka (što je prema zadanim postavkama 64 MB).
- Izvršenje zadataka mape rezultira upisivanjem izlaza na lokalni disk na odgovarajućem čvoru, a ne na HDFS.
- Razlog za odabir lokalnog diska umjesto HDFS-a je izbjegavanje replikacije koja se događa u slučaju rada HDFS trgovine.
- Izlaz karte je srednji izlaz koji se obrađuje reduciranjem zadataka kako bi se dobio konačni rezultat.
- Nakon što je posao završen, izlaz karte može se baciti. Dakle, pohranjivanje u HDFS s replikacijom postaje pretjerano.
- U slučaju kvara čvora, prije nego što izlaz karte potroši zadatak smanjenja, Hadoop ponovno pokreće zadatak karte na drugom čvoru i ponovno kreira izlaz karte.
- Zadatak reduciranja ne radi na konceptu lokalnosti podataka. Izlaz svakog zadatka karte dovodi se u zadatak smanjenja. Izlaz karte prenosi se na stroj gdje se izvodi zadatak redukcije.
- Na ovom se stroju izlaz spaja i zatim prosljeđuje na korisnički definiranu funkciju smanjenja.
- Za razliku od izlaza karte, reducirani izlaz pohranjen je u HDFS-u (prva replika pohranjena je na lokalnom čvoru, a ostale replike pohranjene su na čvorove izvan regala). Dakle, pisanje smanjenog izlaza
Kako MapReduce organizira rad?
Sada ćemo u ovom vodiču za MapReduce naučiti kako MapReduce radi
Hadoop posao dijeli na zadatke. Postoje dvije vrste zadataka:
- Zadaci na karti (dijeljenja i mapiranje)
- Smanjite zadatke (preslagivanje, smanjenje)
kao što je gore navedeno.
Kompletnim postupkom izvršenja (izvršavanje zadataka Map i Reduce, oba) kontroliraju dvije vrste entiteta nazvane a
- Jobtracker : ponaša se kao majstor (odgovoran za potpuno izvršenje poslanog posla)
- Višestruki tragači zadataka : ponaša se poput robova, a svaki od njih obavlja posao
Za svaki posao poslan na izvršenje u sustavu postoji jedan Jobtracker koji se nalazi na Namenodeu, a postoji više tragača zadataka koji se nalaze na Datanodeu .
- Posao je podijeljen na više zadataka koji se zatim izvode na više podatkovnih čvorova u klasteru.
- Odgovornost je praćenja poslova da koordinira aktivnost raspoređivanjem zadataka za pokretanje na različitim čvorovima podataka.
- Izvršenje pojedinačnog zadatka tada treba paziti pomoću programa za praćenje zadataka koji se nalazi na svakom čvoru podataka koji izvršava dio posla.
- Odgovornost tragača zadataka je slanje izvješća o napretku tragaču poslova.
- Uz to, alat za praćenje zadataka povremeno šalje signal "otkucaja srca" Jockeru kako bi ga obavijestio o trenutnom stanju u sustavu.
- Tako alat za praćenje posla prati ukupni napredak svakog posla. U slučaju neuspjeha zadatka, program za praćenje poslova može ga preraspodijeliti na drugom tragaču zadataka.