Insights & Data Blog

Insights & Data Blog

Meningen op deze blog weerspiegelen de opvattingen van de schrijver en niet per definitie die van de Capgemini Group

Alternate title: 

Big Data - een stortvloed aan termen

 Af en toe ben ik toch zo confuus.

 

Confuus

Ik moet iets bekennen. Je moet het me maar niet kwalijk nemen, maar af en toe wordt ik helemaal confuus van al die kreten in het veld van Hadoop ecosysteem. Er zijn momenten dat ik me helemaal zelfverzekerd voel en ik graag deelneem aan discussies over dit onderwerp maar soms word ik ineens overvallen door termen waar ik nog nooit van gehoord heb. Ik troost me maar met de gedachte dat ik niet de enige ben. Onlangs zag ik de hartekreet van iemand die op een forum de volgende vraag postte: “what are the differences between zookeeper, journal node tasks and quorum journal manager in hadoop? “. In de toelichting werd duidelijk dat hij het helemaal gehad had met steeds weer slimmere tooltjes en techniekjes in het Hadoop ecosysteem.
Ik denk dat het al enorm helpt als je je realiseert dat er verschillende tools gebouwd zijn om een en dezelfde functie uit te voeren. Ik denk dat er een stuk of 7 functies zijn (security, data invoer, monitoring, etc.) waarbij er voor iedere functie ongeveer 5 tools zijn, die de functie kunnen uitvoeren. Iedere tool heeft dan wel weer zijn eigen sterke punten, hetgeen verklaart dat de tools naast elkaar kunnen bestaan om dezelfde functie uit te voeren. Maar dan kom je wel uit op 7 functies maal 5 tools = 35 verschillende tools. En probeer dat maar eens uit elkaar de houden.
In deze bijdrage ga ik in op de verschillende functies in het ecosysteem van Hadoop. Per functie zal ik dan de verschillende tools noemen die ik ken. Op die manier hoop ik dat de lezer de kreten rondom Hadoop wat beter kan plaatsen.

Filesysteem.

De eerste functie is die van een file systeem. Net zoals je laptop nfts nodig heeft om te weten waar welk bestand staat, zo bestaat er het HDFS dat nodig om te weten waar welke bestanden staan. Dat HDFS zorgt ervoor dat je bestanden kunt wegschrijven naar het cluster van servers waarover Hadoop is uitgerold. HDFS zorgt ervoor dat je bestand keurig wordt opgedeeld in brokken die netjes op verschillende servers worden gealloceerd. Verder zorgt HDFS ervoor dat de brokken worden gekopieerd en dat die kopieën elders op een andere server worden weggezet, voor het geval dat een server uitvalt. En om calamiteiten helemaal uit te sluiten wordt er een kopie van een kopie gemaakt dat op een volgende server wordt weggezet. Die afzonderlijke servers worden data nodes genoemd. De coördinatie tussen die servers gebeurt door middel van een name node.

Bescherming Name Node

De tweede functie hangt samen het de bescherming van de name node. De name node is de achilles hiel van het Hadoop ecosysteem. Het verzorgt de coördinatie tussen de afzonderlijke servers in de omgeving. Die coördinatie moet goed beschermd worden. Je verwacht dat er regelmatig back ups gemaakt worden, en dat in geval van het uitvallen van de coördinatie, de coördinatie snel weer hersteld wordt door de name node snel weer te laten herstarten.
Om dit te ondersteunen, zijn er verschillende tools ontwikkeld. Het gaat om Quorum Journal Manager dat een snelle herstart van de name node mogelijk maakt. Dit wordt gevoed door journal nodes die weer de laatste versie van de name node bijhouden.

Verwerken van opdrachten

De derde functie is het verwerken van opdrachten die in een Hadoop ecosysteem moeten worden uitgevoerd. Daarvoor staan verschillende tools ter beschikking. De eerste tool is MapReduce, dat een batch platform biedt om opdrachten in te verwerken. Dit is wat ouder tool. De nieuwere tool is Yarn, dat een uitbreiding is van MapReduce. Het idee is dat opdrachten in het kader van MapReduce of Yarn worden gegoten alvorens deze op het Hadoop platform worden uitgevoerd. Een opdracht moet per se MapReduce of Yarn aanroepen om iets gedaan te krijgen op Hadoop.
De opdrachten worden verwerkt op verschillende servers. Om na te gaan of de servers nog goed werken, kan men controleren met ZooKeeper. Een gebruiker kan in een volgend tool nagaan of zijn opdrachten netjes worden afgewerkt. Hiervoor kan hij gebruik maken van Job History Server dan wel de Timeline Server.

Ophalen informatie

De vierde functie is het ophalen van informatie. Je zou dit kunnen vergelijken met het opstellen van SQL in een database. Hiermee haal je zinvolle uitkomsten uit de data die je in het Hadoop ecosysteem hebt opgeslagen. Je kunt denken aan vragen als: “in welke email wordt er gesproken van zus-m-zo begrip”; “hoe vaak benaderde een gebruiker een bepaalde pagina in een website”. Etc.
Er zijn veel tools om te helpen met het ophalen van informatie. Om te beginnen: je hebt Drill en Hive. Deze tools kun je tussen bekende instrumenten als Excel en Hadoop plaatsen. Daarmee kun je vanuit Excel een Hadoop platform benaderen. Het vehikel is dan Drill of Hive dat dit mogelijk maakt.
Je hebt ook tools die de gebruiker in staat stellen om direct data in het Hadoop ecosysteem te benaderen. Voorbeelden zijn HiveQL, Pig, Impala, Spark, Storm, Flink. In dit kader is Mahout een interessante ontwikkeling: Mahout bevat een hoop wiskundige algoritmes, die weer in Spark zijn opgenomen, dat de gegevens weer van het Hadoop ecosysteem haalt.
Daarnaast zijn er tools die werken op niet- gestructureerd opgeslagen gegevens in Hadoop. Het gaat dan om gegevens die afkomstig zijn uit web logs, emails, machine sensor bestanden. Hiervoor is tooling als HBase en Accumulo beschikbaar. Dan is er ook nog Phoenix dat de gebruiker is staat stelt HBase aan te roepen, waarmee de gebruiker weer de niet-gestructureerde data op Hadoop kan benaderen.
Er is recent een project gestart om netwerk data op Hadoop te analyseren. Dat project heet Giraph, - Hadoop heeft een voorkeur voor dierennamen. Een ander project is Solr dat gericht is op tekst analyse.

Data Invoer

De  vijfde functie is data invoer. In principe kun je gegevens als bestanden op een Hadoop ecosysteem inlezen. Daarvoor bestaat het standaard put commando waarmee je bestanden aan een Hadoop platform toevoegt. Maar daarnaast zijn er ook snellere methodes zoals Sqoop, waarmee de gebruiker gegevens uit een traditionele database snel aan een Hadoop ecosysteem kan toevoegen. Dit wordt aangevuld met Flume, waarmee je gegevens van tekst files aan Hadoop kunt toevoegen. Daarnaast is er Kafka dat geschreven is om messages aan Hadoop toe te voegen. Om dit proces te sturen zijn er producten als Oozie en Falcon ontwikkeld.

Security

De zesde functie is het verzorgen van security. Hiervoor zijn producten als Knox, Ranger en Sentry. Daarbij zie je dat de het hier gaat om concurrerende producten, waarbij verschillende leveranciers een eigen security oplossing hebben. Het is hier nog afwachten welk product als winnaar uit de race gaat komen.

Monitoren en beheer

Tot slot wil je als gebruiker de processen kunnen monitoren. Daarmee zijn we bij de zevende functie aangeland, monitoring. In principe zijn daarvoor al standaard oplossingen. Als je Hadoop installeert, worden een aantal processen gestart waarmee je de bestanden op Hadoop kunt bekijken – net zoals dat je met Windows Explorer de bestanden op de laptop kunt inzien. Maar er zijn betere oplossingen: Hue en Ambari. Je krijgt daarmee een vollediger overzicht van alle processen die er in het Hadoop ecosysteem plaatsvinden. Eventueel kun je processen opnieuw opstarten als er problemen zijn.

Conclusie

Het Hadoop ecosysteem is volop in beweging. Er zijn enorm veel tools aanwezig. Voor een deel gaat het tools die verbeterde versies zijn van oudere tools. Daarnaast zijn er ook verschillende partijen die ieder een eigen tool maken om dezelfde functie af te dekken. Daarmee is het voor een buitenstaander lastig te achterhalen wat de exacte rol is van de diverse tools in het Hadoop ecosysteem.
Deze bijdrage helpt om de tools in het Hadoop ecosysteem te positioneren. Er zijn 7 functies onderscheiden met daarbinnen de diverse tools die de functie afdekken. Daarmee begrijpt de gebruiker beter wat de samenhang is van de toolset in het Hadoop ecosysteem.
 
 
 
 
 
 
 

Over de auteur

Tom van Maanen
Tom van Maanen
Tom van Maanen is managing consultant bij Capgemini. Hij werkt er nu al weer een jaar of 12. Daarvoor heeft hij in verschillende andere IT organisaties gewerkt. Sinds 1997 werkt hij op gebied van Business Intelligence. Hij heeft in zo’n 20 organisatie in de BI keuken kunnen kijken. Hij schrijft regelmatig over zijn ervaringen in de BI keuken.

Plaats een reactie

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *.