Een HDFS-cluster heeft twee soorten nodes die werken in een master-slave-patroon:
1. NameNode (de master) en
2. Aantal DataNodes (slaves/workers).
HDFS NameNode
1. NameNode is de belangrijkste centrale component van het HDFS-architectuurraamwerk.
2. NameNode is ook bekend als Master node.
3. HDFS Namenode slaat meta-data op, d.w.z. het aantal datablokken, bestandsnaam, pad, Block ID’s, bloklocatie, aantal replica’s, en ook Slave-gerelateerde configuratie. Deze meta-data is beschikbaar in het geheugen van de master voor het sneller ophalen van data.
4. NameNode bewaart metadata gerelateerd aan het bestandssysteem namespace in het geheugen, voor een snellere response tijd. Vandaar dat er meer geheugen nodig is. Dus NameNode-configuratie moet worden ingezet op betrouwbare configuratie.
5. NameNode onderhoudt en beheert de slave-knooppunten, en wijst taken aan hen toe.
6. NameNode heeft kennis van alle DataNodes die gegevensblokken voor een bepaald bestand bevatten.
7. NameNode coördineert met honderden of duizenden gegevensknooppunten en bedient de verzoeken die afkomstig zijn van clienttoepassingen.
Twee bestanden ‘FSImage’ en de ‘EditLog’ worden gebruikt om metagegevensinformatie op te slaan.
FsImage: Het is de momentopname van het bestandssysteem wanneer Name Node wordt gestart. Het is een “beeldbestand”. FsImage bevat de volledige naamruimte van het bestandssysteem en wordt opgeslagen als een bestand in het lokale bestandssysteem van de NameNode. Het bevat ook een geserialiseerde vorm van alle mappen en bestandsinodes in het bestandssysteem. Elke inode is een interne weergave van de metagegevens van het bestand of de map.
EditLogs: Deze bevat alle recente wijzigingen die zijn aangebracht in het bestandssysteem op de meest recente FsImage. NameNode ontvangt een create/update/delete verzoek van de client. Daarna wordt dit verzoek eerst vastgelegd in een bewerkingsbestand.
Functies van NameNode in HDFS
1. Het is de master daemon die de DataNodes (slave nodes) onderhoudt en beheert.
2. Het registreert de metadata van alle bestanden die in het cluster zijn opgeslagen, bijvoorbeeld de locatie van de opgeslagen blokken, de grootte van de bestanden, machtigingen, hiërarchie, enz.
3. Het registreert elke wijziging die plaatsvindt in de metadata van het bestandssysteem. Als bijvoorbeeld een bestand in HDFS wordt verwijderd, legt de NameNode dit onmiddellijk vast in de EditLog.
4. Het ontvangt regelmatig een Heartbeat en een blokrapport van alle DataNodes in het cluster om ervoor te zorgen dat de DataNodes live zijn.
5. Het houdt een register bij van alle blokken in HDFS en in welke nodes deze blokken zich bevinden.
6. De NameNode is ook verantwoordelijk voor het verzorgen van de replicatiefactor van alle blokken.
7. In geval van het falen van de DataNode, kiest de NameNode nieuwe DataNodes voor nieuwe replica’s, balanceert het schijfgebruik en beheert het communicatieverkeer naar de DataNodes.
HDFS DataNode
1. DataNode is ook bekend als Slave node.
2. In Hadoop HDFS-architectuur slaat DataNode actuele gegevens op in HDFS.
3. DataNodes zijn verantwoordelijk voor het serveren, lezen en schrijven van verzoeken voor de clients.
4. DataNodes kunnen worden ingezet op commodity-hardware.
5. DataNodes stuurt informatie naar de NameNode over de bestanden en blokken die in die node zijn opgeslagen en reageert op de NameNode voor alle bestandssysteembewerkingen.
6. Wanneer een DataNode opstart, kondigt hij zichzelf aan bij de NameNode, samen met de lijst met blokken waarvoor hij verantwoordelijk is.
7. DataNode wordt meestal geconfigureerd met veel harde schijfruimte. Omdat de eigenlijke gegevens in de DataNode worden opgeslagen.
Functies van DataNode in HDFS
1. Dit zijn slave-daemons of processen die op elke slave-machine worden uitgevoerd.
2. De feitelijke gegevens worden opgeslagen op DataNodes.
3. De DataNodes voeren de low-level lees- en schrijfverzoeken uit van de clients van het bestandssysteem.
4. Elke DataNode stuurt elke 3 seconden een heartbeat-bericht naar de Name Node en geeft door dat hij in leven is. In het scenario waarin een Name Node gedurende 10 minuten geen heartbeat ontvangt van een Data Node, beschouwt de Name Node die specifieke Data Node als dood en start hij het proces van Block replication op een andere Data Node..
5. Alle dataknooppunten worden in het Hadoop-cluster zodanig gesynchroniseerd dat ze met elkaar kunnen communiceren en ervoor kunnen zorgen dat
i. De data in het systeem in evenwicht te brengen
ii. Gegevens verplaatsen om hoge replicatie
iii. Gegevens te kopiëren wanneer nodig