MapReduce je bitan koncept programiranja koji morate svladati da biste postali profesionalni inženjer podataka. Pruža rješenja za distribuirane sustave upravljanja datotekama velikih podataka. Stoga će vam razumijevanje teorijske pozadine MapReducea olakšati učenje same tehnike.
Ali što je MapReduce i kako radi u distribuiranim datotečnim sustavima? Saznat ćete u ovom postu.
Što je MapReduce?
MapReduce je model podatkovnog inženjeringa koji se primjenjuje na programe ili aplikacije koje obrađuju logiku velikih podataka unutar paralelnih klastera poslužitelja ili čvorova. Distribuira logiku obrade na nekoliko podatkovnih čvorova i agregira rezultate u klijent-poslužitelj.
MapReduce osigurava da je obrada brza, memorijska učinkovita i pouzdana, bez obzira na veličinu podataka.
Hadoop datotečni sustav (HDFS), Google datotečni sustav (GFS), Apache Kafka, GlusterFS i drugi primjeri su distribuiranih sustava velikih podataka koji koriste algoritam MapReduce.
Što je distribuirani datotečni sustav?
Distribuirani datotečni sustav (DFS) je metoda pohrane u računalstvu koja uključuje dijeljenje velikih podatkovnih datoteka u manje dijelove i njihovo širenje na nekoliko poslužitelja unutar sustava. Omogućuje klijentima iz različitih izvora pisanje i čitanje podataka, dijeljenje i pokretanje programabilne logike na podacima – s bilo kojeg mjesta.
Distribuirani datotečni sustav obično se sastoji od primarnog poslužitelja (koji se u Hadoop-u naziva i NameNode), paralelni klasteri i nekoliko čvorova ili poslužitelja koji sadrže replicirane dijelove podataka, sve u podacima centar. Međutim, svaki klaster unutar distribuiranog datotečnog sustava sadrži stotine do tisuće tih čvorova.
Primarni poslužitelj automatski otkriva promjene unutar klastera. Dakle, može dodijeliti uloge u skladu s tim svakom čvoru.
Kada primarni poslužitelj primi podatkovnu datoteku, šalje je u klastere unutar DFS-a. Ovi klasteri grupišu i distribuiraju podatke u svaki čvor unutar njih. Svaki čvor zatim replicira podatke u takozvane blokove podataka kako bi formirao lanac. U ovom trenutku, svaki čvor postaje chunk poslužitelj.
Povezano:Što su podatkovni centri i zašto su važni?
Osim upravljanja pristupom podacima, primarni poslužitelj drži bilješku metapodataka na svakoj datoteci. Na taj način zna koji čvor upravlja kojom datotekom u svakom klasteru.
Kako MapReduce radi u distribuiranim datotečnim sustavima?
Kao što je ranije spomenuto, veliki podaci dostupni su u nekoliko chunk poslužitelja u DFS-u. Jedan od načina za izvođenje programabilne logike na tim datotekama s podacima je njihovo združivanje u jednu. Zatim ih možete povući u jedan poslužitelj, koji sada upravlja logikom.
Iako je to konvencionalni način upita podataka, problem je što podaci ponovno postaju cjelina unutar jednog poslužitelja. Dakle, jedan poslužitelj će i dalje morati upravljati logikom na nekoliko petabajta podataka odjednom. Nažalost, to je bio problem koji je sustav isprva namjeravao riješiti. Dakle, to ipak nije najbolja praksa.
Povezano:Kako upitati više tablica baze podataka odjednom pomoću SQL spojeva
Nadalje, takvo združivanje u jedan poslužitelj predstavlja nekoliko rizika za performanse. Oni mogu varirati od pada poslužitelja, loše učinkovitosti izračuna, velike latencije, velike potrošnje memorije i ranjivosti do više.
Ali drugi način za pokretanje programabilne logike je ostavljanje podataka u komadima unutar svakog distribuiranog poslužitelja. A zatim ubacite logičku funkciju u svaki poslužitelj. To znači da svaki chunk poslužitelj unutar klastera sada upravlja svojim izračunom. Korištenje ovog pristupa znači da nema potrebe za združivanjem ili povlačenjem podataka na jedan poslužitelj.
Da postoji koncept MapReduce u sustavu datoteka s distribuiranim podacima. Osigurava da jedan poslužitelj ne mora povlačiti podatke iz izvora. Umjesto toga, on raspršuje funkciju obrade (MapReduce) u nekoliko odvojenih čvorova klastera, tako da svaki čvor unutar svakog klastera upravlja logikom pojedinačno bez preopterećenja niti jednog poslužitelju.
Posljedično, nekoliko poslužitelja istovremeno rukuje logikom na bitovima podataka. Ovakva distribucija rada među poslužiteljima rezultira optimalnom izvedbom i većom sigurnošću, među ostalim prednostima.
Kako se obrađuje rezultat MapReduce u DFS-u?
Evo kako funkcionira cjelokupna obrada MapReduce u DFS-u:
- Primarni poslužitelj prima veliki upit podataka (funkcija MapReduce) od klijenta.
- Zatim to šalje svakom klasteru kako bi ga proširio na svaki čvor unutar njega.
- Svaki čvor obrađuje funkciju MapReduce i kumulira njezin rezultat.
- Drugi poslužitelj obrađuje rezultate sa svakog čvora i šalje ih natrag na primarni poslužitelj.
- Primarni poslužitelj zatim šalje rezultat kao odgovor klijentu.
Dakle, jedini posao primarnog poslužitelja je slanje lako izračunatih rezultata klijentu, slušanje promjena i upravljanje pristupom podacima. Ne vrši nikakve izračune. Zbog toga je većina aplikacija za računalstvo u oblaku impresivno brza unatoč količini podataka koju obrađuju.
Što je točno karta i redukcija u MapReduceu?
MapReduce koristi dvije programske logike za obradu velikih podataka u distribuiranom sustavu za upravljanje datotekama (DFS). To su mapa i funkcija redukcije.
The karta funkcija obavlja posao obrade na svakom od podatkovnih čvorova u svakom klasteru distribuiranog datotečnog sustava. The smanjiti funkcija zatim agregira rezultate koje je vratio svaki poslužitelj u bloku i prosljeđuje ih drugom poslužitelju unutar DFS-a za agregiranje rezultata. Poslužitelj primatelj šalje ovaj izračun primarnom poslužitelju, koji vraća vraćenu vrijednost poslužitelju na strani klijenta.
Što se događa kada se Chunk poslužitelj pokvari?
Poslužitelji unutar distribuiranog datotečnog sustava (DFS) ponekad mogu doživjeti zastoje. Možda mislite da će to slomiti cijeli sustav, ali nije.
U računalstvu postoji sustav koji sprječava takav nadolazeći kvar. To se zove tolerancija grešaka.
Povezano:Što je Cloud Computing? Kako funkcionira Cloud tehnologija?
Stoga, čak i kada se poslužitelj isključi tijekom obrade podataka, tolerancija grešaka osigurava da ga primarni poslužitelj odmah otkrije. A budući da postoji replika dijelova podataka preko čvorova, primarni poslužitelj trenutno prenosi posao obrade na drugi poslužitelj. Na taj način zastoji poslužitelja unutar DFS-a ne utječu na obradu podataka.
MapReduce olakšava obradu velikih podataka
MapReduce je bitan model koji olakšava računanje u distribuiranim datotečnim sustavima. Budući da omogućuje da nekoliko čvorova istovremeno izvodi izračun, to je brza metoda koju koriste razni tehnološki divovi za rješavanje mnogih problema koji prate analizu velikih podataka.
Google, Amazon, IBM, između ostalih, primjeri su tvrtki koje koriste ovaj koncept. Google, na primjer, primjenjuje koncept MapReduce kako bi donio rezultate upita tijekom Google pretraživanja.
Veliki podaci pokreću mnoge industrije i utječu na sve naše živote. Ali je li opasnije ili korisnije?
Pročitajte dalje
- Programiranje
- Programiranje
- Veliki podaci
- Analiza podataka

Idowu je strastven za sve pametne tehnologije i produktivnost. U slobodno vrijeme igra se s kodiranjem i prelazi na šahovsku ploču kad mu je dosadno, ali voli se s vremena na vrijeme otrgnuti od rutine. Njegova strast da ljudima pokaže put oko moderne tehnologije motivira ga da piše više.
Pretplatite se na naše obavijesti
Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!
Kliknite ovdje za pretplatu