Un cluster HDFS are două tipuri de noduri care funcționează într-un model master-slave:
1. NameNode (stăpânul) și
2. Numărul de DataNodes (sclavi/lucrători).
HDFS NameNode
1. NameNode este principala componentă centrală a cadrului arhitectural HDFS.
2. NameNode este, de asemenea, cunoscut sub numele de nod principal.
3. HDFS Namenode stochează metadate, adică numărul de blocuri de date, numele fișierului, calea, ID-urile blocurilor, locația blocurilor, numărul de replici și, de asemenea, configurația legată de Slave. Aceste metadate sunt disponibile în memorie în master pentru o regăsire mai rapidă a datelor.
4. NameNode păstrează în memorie metadatele legate de spațiul de nume al sistemului de fișiere, pentru un timp de răspuns mai rapid. Prin urmare, este nevoie de mai multă memorie. Deci, configurația NameNode ar trebui să fie implementată pe o configurație fiabilă.
5. NameNode întreține și gestionează nodurile slave și le atribuie sarcini.
6. NameNode are cunoștințe despre toate nodurile de date care conțin blocuri de date pentru un anumit fișier.
7. NameNode se coordonează cu sute sau mii de noduri de date și servește cererile venite de la aplicațiile client.
Două fișiere „FSImage” și „EditLog” sunt utilizate pentru a stoca informații despre metadate.
FsImage: Este instantaneul sistemului de fișiere atunci când este pornit Nodul de nume. Este un „fișier imagine”. FsImage conține întregul spațiu de nume al sistemului de fișiere și este stocat ca un fișier în sistemul de fișiere local al NameNode. Acesta conține, de asemenea, o formă serializată a tuturor directoarelor și inodelor de fișiere din sistemul de fișiere. Fiecare inode este o reprezentare internă a metadatelor unui fișier sau director.
EditLogs: Conține toate modificările recente efectuate în sistemul de fișiere pe cea mai recentă FsImage. NameNode primește o cerere de creare/actualizare/ștergere de la client. După aceea, această cerere este mai întâi înregistrată în fișierul de editare.
Funcțiile NameNode în HDFS
1. Este daimonul principal care întreține și gestionează DataNodes (nodurile slave).
2. Înregistrează metadatele tuturor fișierelor stocate în cluster, de exemplu: locația blocurilor stocate, dimensiunea fișierelor, permisiunile, ierarhia etc.
3. Înregistrează fiecare modificare care are loc în metadatele sistemului de fișiere. De exemplu, dacă un fișier este șters în HDFS, NameNode va înregistra imediat acest lucru în EditLog.
4. Primește în mod regulat un Heartbeat și un raport de blocuri de la toate Nodurile de date din cluster pentru a se asigura că Nodurile de date sunt în viață.
5. Păstrează o evidență a tuturor blocurilor din HDFS și a nodurilor în care se află aceste blocuri.
6. NameNode este, de asemenea, responsabil să se ocupe de factorul de replicare a tuturor blocurilor.
7. În caz de defecțiune a nodului de date, NameNode alege noi noduri de date pentru noi replici, echilibrează utilizarea discului și gestionează traficul de comunicare către nodurile de date.
HDFS DataNode
1. DataNode este cunoscut și sub numele de nod Slave.
2. În arhitectura Hadoop HDFS, DataNode stochează datele reale în HDFS.
3. DataNode este responsabil pentru servirea, citirea și scrierea cererilor pentru clienți.
4. DataNode poate fi implementat pe hardware de bază.
5. DataNodes trimite informații către NameNode cu privire la fișierele și blocurile stocate în acel nod și răspunde la NameNode pentru toate operațiunile din sistemul de fișiere.
6. Când un DataNode pornește, acesta se anunță la NameNode împreună cu lista de blocuri de care este responsabil.
7. DataNode este de obicei configurat cu mult spațiu pe hard disk. Deoarece datele reale sunt stocate în DataNode.
Funcții ale DataNode în HDFS
1. Acestea sunt demoni sclavi sau procese care rulează pe fiecare mașină sclavă.
2. Datele efective sunt stocate în DataNode.
3. DataNode-urile execută cererile de citire și scriere de nivel scăzut de la clienții sistemului de fișiere.
4. Fiecare DataNode trimite un mesaj de bătaie a inimii către Name Node la fiecare 3 secunde și transmite că este în viață. În scenariul în care Nodul de nume nu primește o bătaie de inimă de la un Nod de date timp de 10 minute, Nodul de nume consideră acel Nod de date ca fiind mort și începe procesul de replicare în bloc pe un alt Nod de date. Toate nodurile de date sunt sincronizate în clusterul Hadoop în așa fel încât să poată comunica între ele și să se asigure de
i. Echilibrarea datelor în sistem
ii. Deplasarea datelor pentru a păstra o replicare ridicată
iii. Copierea datelor atunci când este necesar
.