Š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
MapReduce Architektura
MapReduce Architektura

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:

  1. Zadaci karte (Podijela i mapiranje)
  2. 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

  1. Jobtracker: Ponaša se kao a majstor (odgovoran za kompletno izvršenje dostavljenog posla)
  2. 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.

Kako radi Hadoop MapReduce
Kako radi Hadoop MapReduce
  • 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.