MapReduce je bistven koncept programiranja, ki ga morate obvladati, da postanete profesionalni inženir podatkov. Zagotavlja rešitve za porazdeljene sisteme za upravljanje datotek z velikimi podatki. Zato vam bo razumevanje teoretičnega ozadja MapReduce olajšalo učenje same tehnike.
Toda kaj je MapReduce in kako deluje v porazdeljenih datotečnih sistemih? Izvedeli boste v tej objavi.
Kaj je MapReduce?
MapReduce je model podatkovnega inženiringa, ki se uporablja za programe ali aplikacije, ki obdelujejo logiko velikih podatkov znotraj vzporednih grozdov strežnikov ali vozlišč. Logiko obdelave porazdeli na več podatkovnih vozlišč in rezultate združi v odjemalec-strežnik.
MapReduce zagotavlja, da je obdelava hitra, pomnilniško učinkovita in zanesljiva, ne glede na velikost podatkov.
Datotečni sistem Hadoop (HDFS), Google File System (GFS), Apache Kafka, GlusterFS in drugi so primeri porazdeljenih datotečnih sistemov velikih podatkov, ki uporabljajo algoritem MapReduce.
Kaj je porazdeljeni datotečni sistem?
Porazdeljeni datotečni sistem (DFS) je računalniška metoda shranjevanja, ki vključuje razdelitev velikih podatkovnih datotek na manjše kose in njihovo širjenje na več strežnikov znotraj sistema. Odjemalcem iz različnih virov omogoča pisanje in branje podatkov, skupno rabo in izvajanje programabilne logike na podatkih – kar od koder koli.
Porazdeljeni datotečni sistem je običajno sestavljen iz primarnega strežnika (imenovanega tudi NameNode v Hadoopu), vzporedne gruče in več vozlišč ali strežnikov, ki vsebujejo podvojene koščke podatkov, vse v podatku center. Vendar ima vsaka gruča znotraj porazdeljenega datotečnega sistema na stotine do tisoče teh vozlišč.
Primarni strežnik samodejno zazna spremembe v gručah. Tako lahko vsakemu vozlišču ustrezno dodeli vloge.
Ko primarni strežnik prejme podatkovno datoteko, jo pošlje v gruče znotraj DFS. Te gruče razdelijo in razdelijo podatke v vsako vozlišče v njih. Vsako vozlišče nato podvoji podatke v tako imenovane podatkovne bloke, da tvori verigo. Na tej točki vsako vozlišče postane strežnik v delih.
Povezano:Kaj so podatkovni centri in zakaj so pomembni?
Poleg upravljanja dostopa do podatkov ima primarni strežnik tudi pripis metapodatkov za vsako datoteko. Tako ve, katero vozlišče obravnava katero datoteko v vsaki gruči.
Kako MapReduce deluje v porazdeljenih datotečnih sistemih?
Kot smo že omenili, so veliki podatki na voljo v več strežnikih v delih v DFS. Eden od načinov za izvajanje programabilne logike v teh podatkovnih datotekah je, da jih združite v eno. Nato jih lahko potegnete v en sam strežnik, ki zdaj obravnava logiko.
Čeprav je to običajen način poizvedovanja po podatkih, je težava v tem, da podatki ponovno postanejo celota znotraj enega samega strežnika. Tako bo moral en sam strežnik še vedno upravljati logiko na več petabajtih podatkov hkrati. Žal je bil to problem, ki ga je sistem sprva nameraval rešiti. Torej to navsezadnje ni najboljša praksa.
Povezano:Kako poizvedovati več tabel baze podatkov hkrati z združitvami SQL
Poleg tega takšno združevanje v en sam strežnik predstavlja več tveganj glede učinkovitosti. Te se lahko gibljejo od zrušitve strežnika, slabe učinkovitosti izračunov, velike zamude, velike porabe pomnilnika in ranljivosti do več.
Toda drug način za izvajanje programirljive logike je, da pustite podatke v kosih znotraj vsakega porazdeljenega strežnika. Nato vstavite logično funkcijo v vsak strežnik. To pomeni, da vsak strežnik v gruči zdaj obravnava svoj izračun. Uporaba tega pristopa pomeni, da ni treba združevati ali vleči podatkov v en sam strežnik.
Da obstaja koncept MapReduce v sistemu porazdeljenih podatkovnih datotek. Zagotavlja, da enemu strežniku ni treba črpati podatkov iz vira. Namesto tega razprši funkcijo obdelave (MapReduce) na več vozlišč kosov ločeno gruče, tako da vsako vozlišče znotraj vsake gruče obravnava logiko posebej, ne da bi preobremenilo eno strežnik.
Posledično več strežnikov hkrati obdeluje logiko na bitih podatkov. Ta porazdelitev dela med strežniki med drugimi prednostmi povzroči optimalno delovanje in večjo varnost.
Kako je rezultat MapReduce obdelan v DFS?
Takole deluje celotna obdelava MapReduce v DFS:
- Primarni strežnik od odjemalca prejme poizvedbo za velike podatke (funkcija MapReduce).
- Nato to pošlje vsaki gruči, da jo razširi po vsakem vozlišču v njej.
- Vsako vozlišče obdela funkcijo MapReduce in kumulira njen rezultat.
- Drugi strežnik zbere rezultate iz vsakega vozlišča in jih pošlje nazaj primarnemu strežniku.
- Primarni strežnik nato pošlje rezultat kot odgovor odjemalcu.
Tako je edina naloga primarnega strežnika pošiljanje zlahka izračunanega rezultata odjemalcu, poslušanje sprememb in upravljanje dostopa do podatkov. Ne izvaja nobenih izračunov. Zato je večina aplikacij za računalništvo v oblaku impresivno hitra kljub količini podatkov, ki jih obdelujejo.
Kaj pravzaprav je zemljevid in zmanjšanje v MapReduce?
MapReduce uporablja dve programski logiki za obdelavo velikih podatkov v sistemu za upravljanje porazdeljenih datotek (DFS). To sta funkcija zemljevida in zmanjšanja.
The zemljevid funkcija opravi obdelavo na vsakem od podatkovnih vozlišč v vsaki gruči porazdeljenega datotečnega sistema. The zmanjšati funkcija nato združi rezultate, ki jih vrne vsak strežnik v delih, in jih posreduje drugemu strežniku znotraj DFS za združevanje rezultatov. Strežnik prejemnik pošlje ta izračun primarnemu strežniku, ki vrnjeno vrednost objavi na odjemalskem strežniku.
Kaj se zgodi, ko se strežnik Chunk izklopi?
Strežniki znotraj porazdeljenega datotečnega sistema (DFS) lahko včasih doletijo izpadi. Morda mislite, da bo to pokvarilo celoten sistem, vendar se ne.
V računalništvu obstaja sistem, ki preprečuje tako bližajočo se okvaro. Imenuje se toleranca napak.
Povezano:Kaj je računalništvo v oblaku? Kako deluje tehnologija v oblaku?
Tudi ko se strežnik med obdelavo podatkov izklopi, toleranca napak zagotavlja, da ga primarni strežnik takoj zazna. In ker je v vozliščih kopija kosov podatkov, primarni strežnik takoj prenese opravilo obdelave na drug strežnik. Tako izpad strežnika znotraj DFS ne vpliva na obdelavo podatkov.
MapReduce olajša obdelavo velikih podatkov
MapReduce je bistven model, ki olajša računanje v porazdeljenih datotečnih sistemih. Ker omogoča, da več vozlišč hkrati izvaja izračun, je to hitra metoda, ki jo uporabljajo različni tehnološki velikani za reševanje številnih težav, ki spremljajo analizo velikih podatkov.
Primeri podjetij, ki uporabljajo ta koncept, so med drugim Google, Amazon, IBM. Google, na primer, uporablja koncept MapReduce za prikaz rezultatov poizvedbe med iskanjem v Googlu.
Veliki podatki poganjajo številne industrije in vplivajo na vsa naša življenja. Toda ali je bolj nevarno ali koristno?
Preberite Naprej
- Programiranje
- Programiranje
- Veliki podatki
- Analiza podatkov
Idowu je navdušen nad vsemi pametnimi tehnologijami in produktivnostjo. V prostem času se igra s kodiranjem in, ko mu je dolgčas, preklopi na šahovnico, rad pa se občasno odmakne od rutine. Njegova strast, da ljudem pokaže pot okoli sodobne tehnologije, ga motivira, da piše več.
Naročite se na naše novice
Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e-knjige in ekskluzivne ponudbe!
Kliknite tukaj, da se naročite