Što je MapReduce u Hadoopu? Arhitektura - Primjer

Sadržaj:

Anonim

Š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

MapReduce Arhitektura

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:

  1. Zadaci na karti (dijeljenja i mapiranje)
  2. 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

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

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