MapReduce: alle relevante informatie in één overzicht

Wat is MapReduce?

MapReduce: wéér zo’n ingewikkelde term die je in eerste instantie misschien niets zegt. Maar daar gaan wij verandering in brengen. MapReduce is – kort samengevat – een framework dat in korte tijd berekeningen kan uitvoeren over zeer grote hoeveelheden data. Dit is mogelijk, doordat er bij MapReduce één hoofddoel wordt opgesplitst in meerdere deeltaken. Uiteindelijk voegen deze deeltaken de relevante resultaten en inzichten weer samen. Je raadt het al: dit framework is erg effectief voor de verwerking van big data. Het uitvoeren van de deeltaken verloopt dus parallel. Hierdoor kun je het maximale uit je data halen.

Van mappen tot reducen

MapReduce bestaat uit twee opeenvolgende processen: het ‘map-proces’ en het ‘reduce-proces’. Het ‘map-proces’ betreft de verdeling van taken over meerdere computers en/of machines. Grote hoeveelheden data worden gefilterd en gesorteerd tijdens dit proces. Eén dataset wordt verdeeld in meerdere kleine datasets; deze meerdere kleine datasets worden vervolgens geordend. Daarna vindt het ‘reduce-proces’ plaats, waarin de deeltaken weer worden samengevoegd. De relevante gegevens worden uit al die kleine datasets gefilterd en daar wordt één duidelijke, vernieuwde dataset van gemaakt.

MapReduce in real-life

MapReduce wordt veel gebruikt binnen verschillende programmeertalen. Binnen Hadoop is dit framework zelfs het belangrijkste onderdeel. De oorsprong van MapReduce ligt echter niet bij Hadoop; Google heeft deze tool voornamelijk ontwikkeld. De tool is een open-source systeem, dus ook applicaties zoals Yahoo, Facebook, LinkedIn maken volop gebruik van deze techniek. En dat is maar goed ook, want je kunt door de bomen het bos niet meer zien met al die data…

 

De voordelen van MapReduce

  • Als één computer of machine het begeeft tijdens het uitvoerproces, dan wordt de desbetreffende deeltaak automatisch door een andere computer of machine overgenomen. Op deze manier gaan er geen relevante gegevens verloren.
  • De hoeveelheid data die kan worden verwerkt, is oneindig. De data bevat vaak meerdere petabytes. Eén petabyte staat gelijk aan een ongecomprimeerde satellietfoto in kleur van Nederland en Belgie, met een oplossend vermogen van 1 centimeter…
  • Het doet er niet toe of je ongestructureerde of gestructureerde data als input gebruikt; de tool kan alles verwerken.
  • MapReduce kan worden toegepast binnen alle programmeertalen.
  • Het feit dat de taken parallel verlopen, zorgt ervoor dat de ‘communicatie’ tussen de taken goed verloopt en er geen onnodige fouten worden gemaakt.
  • De mogelijkheden van Mapreduce zijn oneindig. Het kan gebruikt worden voor het indiceren van grote hoeveelheden documenten voor een zoekmachine. Voor het analyseren van bezoekersaantallen en/of bezoekersgedrag van websites. Voor het uitvoeren van risk modelling. En voor het analyseren van de tijd en/of plaats van transacties.

Een simpel voorbeeld

Stel je voor dat je vijf bestanden hebt waarin gegevens over vijf steden zijn opgeslagen. Ieder bestand bestaat uit temperaturen van verschillende dagen in de desbetreffende steden. We willen graag de hoogste temperatuur in elke stad achterhalen. Wat we gaan doen: we splitsen dit hoofddoel op in vijf deeltaken. Elke computer en/of machine werkt één bestand door en achterhaalt de maximale temperatuur van de stad binnen dat bestand. Houd in gedachte dat ieder bestand elke stad bevat. Uiteindelijk krijg je de vijf hoogste temperaturen van een stad als output. De resultaten van één bestand kunnen er – extreem gesimplificeerd – als volgt uitzien:

Amsterdam, 20; New York, 22; Rome, 28; Barcelona, 26; Oslo, 15.

Vervolgens worden deze resultaten – die dus in vijf verschillende vormen voorkomen – samengevoegd. Het eindresultaat: vijf maximumtemperaturen van vijf steden. En dit is precies wat je wilt! Dit parallelle proces is dus veel efficiënter dan dat je één computer en/of machine door alle bestanden laat gaan.

Effectief structuur aanbrengen

MapReduce is niet alleen populair onder data scientisten, maar ook geschikt voor de dummies onder ons. De tool is eenvoudig toe te passen en neemt je veel werk uit handen. Je hoeft je totaal geen zorgen te maken over de communicatie tussen de verschillende computers en/of machines, het monitoren van taken en het maken van fouten. Ideaal dus!

Want to know more?

We organiseren regelmatig Kennis Bytes. Tijdens deze externe kennisdelingen wordt een datagerelateerd onderwerp uitgebreid behandeld door één van onze data scientists. Elkaar inspireren, jezelf blijven ontwikkelen en altijd nét iets meer willen weten. Daar draait het om!

Wil je meer weten over onze Kennis Bytes en erachter komen wanneer de volgende sessie wordt georganiseerd? Kijk dan snel hier: https://www.tottadatalab.nl/2018/06/19/alles-weten-kennis-bytes/

Posted on 13 september 2017

Share the Story

Back to Top