MapReduce er et viktig programmeringskonsept som du må mestre for å bli en profesjonell dataingeniør. Det gir løsninger til distribuerte filhåndteringssystemer for store data. Derfor vil det å forstå den teoretiske bakgrunnen til MapReduce gjøre det enkelt for deg å lære selve teknikken.
Men hva er MapReduce, og hvordan fungerer det i distribuerte filsystemer? Det får du vite i dette innlegget.
Hva er MapReduce?
MapReduce er en datateknologisk modell brukt på programmer eller applikasjoner som behandler stordatalogikk innenfor parallelle klynger av servere eller noder. Den distribuerer en behandlingslogikk på tvers av flere datanoder og samler resultatene inn i klient-serveren.
MapReduce sikrer at behandlingen er rask, minneeffektiv og pålitelig, uavhengig av størrelsen på dataene.
Hadoop File System (HDFS), Google File System (GFS), Apache Kafka, GlusterFS og flere er eksempler på distribuerte stordatafilsystemer som bruker MapReduce-algoritmen.
Hva er et distribuert filsystem?
Et distribuert filsystem (DFS) er en metode for lagring i databehandling som innebærer å dele store datafiler i mindre biter og spre dem over flere servere i systemet. Den lar klienter fra ulike kilder skrive og lese data, dele og kjøre programmerbar logikk på data – rett fra hvor som helst.
Et distribuert filsystem består vanligvis av den primære serveren (også kalt en NameNode i Hadoop), parallelle klynger, og flere noder eller servere som inneholder replikerte databiter, alt i en data senter. Hver klynge i det distribuerte filsystemet har imidlertid hundrevis til tusenvis av disse nodene.
Den primære serveren oppdager automatisk endringer i klyngene. Så den kan tildele roller tilsvarende hver node.
Når primærserveren mottar en datafil, sender den den til klyngene i DFS. Disse klyngene deler og distribuerer dataene til hver node i dem. Hver node replikerer deretter dataene til det som kalles datablokker for å danne en kjede. På dette tidspunktet blir hver node en chunk-server.
I slekt:Hva er datasentre og hvorfor er de viktige?
I tillegg til å administrere tilgang til dataene, har primærserveren en metadatamerknad på hver fil. På den måten vet den hvilken node som håndterer hvilken fil i hver klynge.
Hvordan fungerer MapReduce i distribuerte filsystemer?
Som nevnt tidligere er big data tilgjengelig i flere chunk-servere i en DFS. En måte å utføre programmerbar logikk på disse datafilene er å samle dem til én. Du kan deretter trekke dem inn i en enkelt server, som nå håndterer logikken.
Selv om det er en konvensjonell måte å søke etter data på, er problemet at dataene blir en helhet igjen inne i den enkelte serveren. Så en enkelt server vil fortsatt måtte administrere logikk på flere petabyte med data samtidig. Dessverre var dette problemet systemet hadde til hensikt å løse først. Så det er tross alt ikke en beste praksis.
I slekt:Hvordan spørre flere databasetabeller samtidig med SQL-koblinger
Videre utgjør en slik aggregering til en enkelt server flere ytelsesrisikoer. Disse kan variere fra serverkrasj, dårlig beregningseffektivitet, høy ventetid, høyt minneforbruk og sårbarheter til mer.
Men en annen måte å kjøre den programmerbare logikken på er å legge igjen dataene i biter inne i hver distribuert server. Og injiser deretter logikkfunksjonen i hver server. Det betyr at hver chunk-server i en klynge nå håndterer beregningen. Å bruke denne tilnærmingen betyr at det ikke er behov for å samle eller trekke data til en enkelt server.
At det er MapReduce-konseptet i et distribuert datafilsystem. Det sikrer at en enkelt server ikke trenger å hente data fra kilden. I stedet sprer den prosesseringsfunksjonen (MapReduce) i flere delnoder i separate klynger, slik at hver node i hver klynge håndterer logikken individuelt uten å overbelaste en enkelt server.
Følgelig håndterer flere servere logikk på databiter samtidig. Denne fordelingen av arbeidskraft mellom servere resulterer i optimal ytelse og høyere sikkerhet, blant annet.
Hvordan behandles MapReduce-resultatet i en DFS?
Slik fungerer hele MapReduce-behandlingen i en DFS:
- Primærserveren mottar en big data-forespørsel (MapReduce-funksjon) fra klienten.
- Den sender deretter dette til hver klynge for å spre den over hver node i den.
- Hver node behandler MapReduce-funksjonen og kumulerer resultatet.
- En annen server samler resultatene fra hver node og sender dem tilbake til primærserveren.
- Den primære serveren sender deretter resultatet som et svar til klienten.
Dermed er den eneste jobben til en primær server å sende et enkelt beregnet resultat til klienten, lytte til endringer og administrere tilgang til dataene. Den utfører ingen beregninger. Dette er grunnen til at de fleste cloud computing-applikasjoner er imponerende raske til tross for mengden data de behandler.
Hva er kartet og reduksjonen i MapReduce?
MapReduce bruker to programmeringslogikker for å behandle store data i et distribuert filbehandlingssystem (DFS). Disse er en kart og redusere funksjon.
De kart funksjonen utfører behandlingsjobben på hver av datanodene i hver klynge i et distribuert filsystem. De redusere funksjonen aggregerer deretter resultatene som returneres av hver chunk-server og sender den til en annen server i DFS for resultataggregering. Den mottakende serveren sender denne beregningen til den primære serveren, som poster den returnerte verdien til serveren på klientsiden.
Hva skjer når en chunk-server går ned?
Servere i et distribuert filsystem (DFS) kan oppleve nedetid noen ganger. Du tror kanskje at dette vil ødelegge hele systemet, men det gjør det ikke.
Det er et system innen databehandling som forhindrer et slikt forestående sammenbrudd. Det kalles feiltoleranse.
I slekt:Hva er Cloud Computing? Hvordan fungerer skyteknologi?
Derfor, selv når en server går av under databehandling, sikrer feiltoleranse at primærserveren oppdager den umiddelbart. Og siden det er en replika av databitene på tvers av nodene, overfører primærserveren prosesseringsjobben umiddelbart til en annen server. På den måten påvirker ikke servernedetid i DFS databehandlingen.
MapReduce forenkler stordatabehandling
MapReduce er en viktig modell som gjør databehandling enkelt i distribuerte filsystemer. Fordi det lar flere noder kjøre en beregning samtidig, er det en rask metode som brukes av forskjellige teknologigiganter for å løse mange av problemene som følger med analyse av store data.
Google, Amazon, IBM, blant andre, er eksempler på selskaper som bruker dette konseptet. Google bruker for eksempel MapReduce-konseptet for å få søkeresultater under Google-søk.
Big data driver mange bransjer og har en effekt på alle våre liv. Men er det mer farlig eller nyttig?
Les Neste
- Programmering
- Programmering
- Stor Data
- Dataanalyse

Idowu er lidenskapelig opptatt av alt smart teknologi og produktivitet. På fritiden leker han med koding og bytter til sjakkbrettet når han kjeder seg, men han elsker også å bryte ut av rutinene en gang i blant. Hans lidenskap for å vise folk veien rundt moderne teknologi motiverer ham til å skrive mer.
Abonner på vårt nyhetsbrev
Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis e-bøker og eksklusive tilbud!
Klikk her for å abonnere