Het einde van Hadoop

Regelmatig zie ik een artikel voorbijkomen met een vergelijkbare titel (wellicht bedoelt als clickbait) waarin wordt geclaimd dat Hadoop geen relevantie meer heeft. Voor degene die niet heel bekend zijn met Hadoop wellicht interessant om te begrijpen wat Hadoop nu precies is om zelf een mening te vormen.

Hadoop is een containerbegrip, maar de consensus is dat het uit drie kernelementen bestaat (zie ook Hadoop: the definitive guide van Tom White): HDFS, YARN en MapReduce.

HDFS

Hadoop Distributed File System is het primaire opslagsysteem. Dit dient voor opslag van de data (bijvoorbeeld CSV bestanden, afbeeldingen, Hive databases) en het beheer van deze opslag (folderstructuur, rechten). Kenmerkend voor HDFS is dat bestanden opgedeeld worden in Blocks (deel van het bestand) en verdeeld over meerdere Nodes (computers).

YARN

YARN (Yet Another Resource Manager) houdt zich bezig met resourcebeheer (CPU, RAM). Er is een pool van resources beschikbaar en wijst deze toe aan de applicaties (analyses) op het platform.

MapReduce

Raamwerk waarin applicaties worden ontwikkeld die in parallel bewerkingen uitvoeren op data. Plat gezegd is dit Java code waarbij gebruikt gemaakt van ingebouwde Java classes om relatief snel nieuwe applicaties te kunnen ontwikkelen. Er zijn twee fasen:

1. Map (creëren van key-value pairs): stel je hebt een dataset (bv CSV bestand) met aankopen van klanten over een periode:

Klantnummer Datum Bedrag

1 1-1-2019 10
2 1-2-2019 15
3 1-2-2019 10
1 1-4-2019 5
2 1-5-2019 20

Je wilt weten hoeveel iedere klant heeft besteed. Hier zou klantnummer key worden en bedrag per aankoop value.

2. Reduce (reduceren (of aggregeren) per key): voor deze fase worden alle records met dezelfde klantnummer samengevoegd, bekend als de shuffle, en tijdens reduce wordt het bedrag per klantnummer gesommeerd:

Klantnummer Bedrag

1 15
2 35
3 10

Uiteraard is dit een heel simpel voorbeeld en zijn er complexe bewerkingen mogelijk.

Hadoop ecosysteem

Onderstaand overzicht geeft mooi de hiërarchie weer van het Hadoop ecosysteem. Dankzij YARN is het mogelijk om meerdere applicatie uit te voeren op dezelfde data (multi-tenancy). MapReduce en Spark kunnen naast elkaar draaien. Hive is weer bovenop MapReduce gebouwd.


Conclusie

Beweren dat Hadoop geen bestaansrecht meer heeft is mijn inziens ongenuanceerd. Zoals eerder genoemd is het een containerbegrip. Het is ondertussen uitgegroeid tot een pallet aan tools en heeft daarmee een plek verdiend in een organisatie met veel data en gebruikers met HDFS als centrale storage.
Dat er over het algemeen te weinig waarde uit wordt gehaald is zeker waar, maar dat heeft meer te maken met de organisatie en de benodigde vaardigheden. Van de meeste SQL databases kan hetzelfde gezegd worden: er zijn in mijn optiek nooit genoeg databaseanalisten om inzichten te creëren.
Spark is een mooi alternatief voor MapReduce, met name door de Pyspark API. Wat wij wel vaak zien is dat analisten met Python ervaring Pyspark en Python code combineren en hiermee niet optimaal gebruik maken van de resources (veel dataverplaatsing over het netwerk) waardoor applicaties onnodig traag worden.

Tot slot

Ik hoop dat bovenstaande uiteenzetting helder en eenvoudig genoeg is voor een breed publiek. Nextgem is gespecialiseerd in verwerken en analyseren van grote datasets. Wij geven onder andere trainingen op het gebied van Hadoop en Spark, maar bouwen ook applicaties voor onze klanten (lokaal en cloud).

Met vriendelijke groet,

Robin Bakker
Nextgem - Managing partner