Förklara NameNode och DataNode i HDFS?

Ett HDFS-kluster har två typer av noder som arbetar i ett master-slave-mönster:

1. NameNode (master) och
2. Antal DataNodes (slavar/arbetare).

HDFS NameNode
1. NameNode är den viktigaste centrala komponenten i ramverket för HDFS-arkitekturen.
2. NameNode är också känd som master-nod.
3. HDFS NameNode lagrar metadata, dvs. antal datablock, filnamn, sökväg, block-id, blockplacering, antal repliker och även slavrelaterad konfiguration. Dessa metadata finns i minnet i master för snabbare hämtning av data.
4. NameNode lagrar metadata relaterade till filsystemets namnområde i minnet för snabbare svarstid. Därför behövs mer minne. NameNode-konfigurationen bör därför distribueras på en tillförlitlig konfiguration.
5. NameNode underhåller och hanterar slavenoderna och tilldelar dem uppgifter.
6. NameNode har kunskap om alla DataNodes som innehåller datablock för en viss fil.
7. NameNode koordinerar med hundratals eller tusentals datanoder och betjänar de förfrågningar som kommer från klientprogrammen.
Två filer, ”FSImage” och ”EditLog”, används för att lagra metadatainformation.

FsImage: Det är en ögonblicksbild av filsystemet när Name Node startas. Det är en ”bildfil”. FsImage innehåller hela filsystemets namnområde och lagras som en fil i NameNodes lokala filsystem. Den innehåller också en serialiserad form av alla kataloger och filinoder i filsystemet. Varje inod är en intern representation av filens eller katalogens metadata.

EditLogs: Den innehåller alla de senaste ändringarna som gjorts i filsystemet på den senaste FsImage. NameNode tar emot en begäran om skapande/uppdatering/radering från klienten. Därefter registreras denna begäran först i redigeringsfilen.

Funktioner för NameNode i HDFS

1. Det är master-daemon som underhåller och hanterar DataNodes (slavenoder).
2. Den registrerar metadata för alla filer som lagras i klustret, t.ex. var blocken är lagrade, filernas storlek, behörigheter, hierarki osv.
3. Den registrerar varje ändring som sker i filsystemets metadata. Om till exempel en fil tas bort i HDFS registrerar NameNode omedelbart detta i EditLog.
4. Den tar regelbundet emot en Heartbeat och en blockrapport från alla DataNodes i klustret för att säkerställa att DataNodes är levande.
5. Den håller ett register över alla block i HDFS och i vilka noder blocken finns.
6. NameNode ansvarar också för att ta hand om replikeringsfaktorn för alla block.
7. Om datanoden misslyckas väljer NameNode nya datanoder för nya repliker, balanserar diskanvändningen och hanterar kommunikationstrafiken till datanoderna.

HDFS DataNode
1. DataNode är också känd som slavenod.
2. I Hadoop HDFS-arkitekturen lagrar DataNode faktiska data i HDFS.
3. DataNodes ansvarar för servering, läs- och skrivförfrågningar för klienterna.
4. DataNodes kan installeras på vanlig hårdvara.
5. DataNodes skickar information till NameNode om de filer och block som lagras i den noden och svarar NameNode för alla filsystemoperationer.
6. När en DataNode startar meddelar den sig själv till NameNode tillsammans med listan över block som den är ansvarig för.
7. DataNode är vanligtvis konfigurerad med mycket hårddiskutrymme. Eftersom de faktiska uppgifterna lagras i DataNode.

Funktioner för DataNode i HDFS
1. Detta är slavdemoner eller processer som körs på varje slavmaskin.
2. De faktiska uppgifterna lagras i DataNodes.
3. DataNodes utför läs- och skrivförfrågningar på låg nivå från filsystemets klienter.
4. Varje DataNode skickar ett hjärtslagsmeddelande till Name Node var 3:e sekund och förmedlar att den är vid liv. Om Name Node inte tar emot ett hjärtslag från en datanod på 10 minuter, betraktar Name Node den datanoden som död och startar processen för blockreplikering på någon annan datanod.
5. Alla datanoder är synkroniserade i Hadoop-klustret på ett sådant sätt att de kan kommunicera med varandra och se till att
i. Balansera data i systemet
ii. Flytta data för att hålla hög replikering
iii. Kopiera data vid behov

.