Ce este Hadoop Distributed File System (HDFS)? Arhitectură, caracteristici și operațiuni
Publicat: 2020-02-03Hadoop Distributed File System sau HDFS este sistemul de stocare principal al Hadoop. Stochează fișiere mari de date care rulează pe hardware-ul de bază. Acest sistem de stocare este scalabil, ușor de extins și tolerant la defecțiuni.
Când există prea multe date stocate pe o singură mașină fizică, devine că stocarea este împărțită pe mai multe mașini pentru a evita pierderea datelor. HDFS este un astfel de sistem distribuit de stocare a fișierelor care gestionează operațiunile de stocare pe multe mașini fizice. Iată un tutorial HDFS pentru a înțelege mai bine cum funcționează acest sistem. Să începem cu arhitectura sa.
Cuprins
Arhitectura HDFS
Sistemul de fișiere distribuit Hadoop are o arhitectură master-slave cu următoarele componente:
- Namenode : este hardware-ul de bază care deține atât software-ul namenode, cât și sistemul de operare Linux/GNU. Software-ul Namenode poate rula fără probleme pe hardware-ul de bază, fără a întâmpina nicio problemă. Sistemul cu namenode ca componentă funcționează ca server principal. Îndeplinește sarcini care includ reglementarea modului în care clienții accesează fișierele, gestionarea spațiului de nume a sistemului de fișiere și executarea operațiunilor, inclusiv deschiderea, închiderea și redenumirea directoarelor și fișierelor.
- Datanode : Este un hardware de bază care conține software-ul nodului de date și sistemul de operare Linux/GNU. Nodurile dintr-un cluster vor avea întotdeauna asociate noduri de date. Aceste noduri sunt responsabile pentru gestionarea stocării hardware-ului/sistemului de marfă. Unele dintre sarcinile pe care le efectuează nodurile de date includ operațiuni de citire/scriere în funcție de cererea clientului și crearea, replicarea și ștergerea blocurilor pe baza instrucțiunilor date de namenode.
- Blocare : Toate datele utilizatorului sunt stocate în fișiere HDFS. Fiecare fișier aparținând unui anumit sistem de fișiere este împărțit în unul sau mai multe segmente, care sunt apoi stocate în noduri de date. Segmentele de fișiere în care sunt împărțite fișierele sunt blocuri. Deci, cele mai mici date pe care HDFS este capabil să le citească sau să le scrie sunt un bloc. Inițial, fiecare bloc are o dimensiune de 64 MB. Dar, această dimensiune poate fi mărită în funcție de modificările configurației HDFS.
Arhitectura HDFS oferă o imagine clară și fără ambiguitate a lucrărilor HDFS. Este format din mai multe noduri de date, dar doar un singur namenode. Metadatele sunt stocate în namenode, în timp ce lucrătorul real al celor două tipuri de noduri este datanode. Nodurile sunt organizate în diferite rafturi pe care sunt stocate blocuri de date pentru a îmbunătăți toleranța la erori și fiabilitatea datelor. Clienții trebuie să interacționeze cu namenode pentru a citi/scrie un fișier. Clusterul are mai multe noduri de date care folosesc discul local pentru a stoca datele disponibile. Datanode și namenode sunt în permanență în contact unul cu celălalt. Datanode este, de asemenea, responsabil pentru replicarea datelor folosind caracteristica de replicare la diferite noduri de date.
Operațiile de citire și scriere în HDFS au loc la cel mai mic nivel, adică la nivel de bloc. Conceptul de replicare a datelor este esențial pentru modul în care funcționează HDFS – disponibilitatea ridicată a datelor este asigurată în timpul defecțiunii nodului prin crearea de replici ale blocurilor și distribuția celor în întregul cluster.
Operațiuni HDFS
Sistemele de fișiere HDFS și Linux sunt destul de asemănătoare între ele. Deci, HDFS ne permite să efectuăm toate operațiunile pe care suntem obișnuiți să le efectuăm cu sistemele de fișiere locale - putem crea un director, putem schimba permisiunile, putem copia fișiere și face multe altele. De asemenea, avem mai multe drepturi de acces la fișiere, inclusiv de citire, scriere și execuție.

Operațiunea de citire în HDFS: Dacă doriți să citiți un fișier stocat în HDFS, va trebui să interacționați cu namenode. După cum sa menționat deja, toate metadatele sunt stocate în namenode. Odată ce interacționați cu namenode, acesta vă va oferi adresa datanode-ului în care este stocat fișierul pe care îl căutați. Apoi puteți interacționa cu datanode a cărui adresă v-a fost dată de namenode și apoi puteți citi informațiile de acolo.
Interacționați cu API-ul sistemului de fișiere, care solicită namenode să partajeze adresa de bloc. Înainte de a oferi aceste informații, namenode efectuează o verificare pentru a afla dacă aveți sau nu dreptul de a accesa aceste date. Odată ce această verificare este efectuată, namenode fie partajează locația blocului, fie refuză accesul din cauza restricțiilor.
Vi se oferă o formă de token de către namenode, pe care vi se cere să-l arătați nodului de date respectiv pentru accesarea unui fișier. Aceasta este o formă de mecanism de securitate pe care o folosește HDFS pentru a se asigura că persoana potrivită accesează datele. Datanode vă va permite să citiți fișierul numai după ce afișați jetonul.

Operație de scriere: operația de scriere urmează același model inițial. Trebuie să solicitați namenode pentru a vă permite să scrieți date. În schimb, vă va furniza locația nodului de date pe care trebuie efectuată operația de scriere. De îndată ce ați terminat cu efectuarea acestei operațiuni, nodul de date va începe să reproducă aceste blocuri de date scrise pe alte noduri de date. Odată terminată replicarea, veți primi o confirmare. Mecanismul de autentificare în operația de scriere este același cu operația de citire.

Caracteristici HDFS
- Disponibilitate : Nu există prea multe sisteme de fișiere care vin cu disponibilitatea ridicată a HDFS. Sistemul de fișiere urmează un mecanism de replicare a datelor sub formă de replici bloc pe nodurile de date (slave) de-a lungul unui cluster. Pentru a accesa aceste date, trebuie să interacționați cu noduri de date care conțin blocurile de informații pe care le caută.
- Fiabilitate : Hadoop Distributed File System este un sistem de stocare a datelor extrem de fiabil. Cantitatea de date care poate fi stocată pe HDFS variază în petaocteți. Utilizează un cluster pentru a-și stoca toate datele, care sunt separate pentru a forma blocuri. Apoi folosește nodurile clusterului pentru a stoca aceste blocuri.
- Toleranță la erori : această caracteristică este puterea de funcționare a HDFS în condiții care nu sunt atât de favorabile cum sunt de obicei. HDFS tolerează erorile ca niciun alt sistem de fișiere. Vă protejează datele de efectele oricărui neprevăzut, chiar și în viitor. După cum sa menționat deja, replicarea datelor se face pe diferite mașini. Ce se întâmplă când oricare dintre aceste mașini nu mai funcționează? Ar fi putut fi o problemă semnificativă cu orice alt sistem, dar nu cu HDFS. HDFS vă permite să vă accesați datele de pe orice altă mașină care are și o copie a blocurilor de date pe care le căutați. Aceasta se numește adevărată toleranță la erori.
- Scalabilitate : HDFS utilizează diferite noduri într-un cluster pentru a stoca date. Când cerințele de stocare cresc, puteți oricând să continuați și să scalați clusterul. Aceasta este o altă caracteristică unică pentru HDFS. Sistemul de distribuție a fișierelor vă oferă două mecanisme de scalare a clusterului – scalabilitate orizontală și verticală.
- Replicare : Replicarea este o caracteristică care diferențiază HDFS de alte sisteme de stocare. Replicarea minimizează cazurile de pierdere de date din cauza unui eveniment nefavorabil, cum ar fi prăbușirea nodului, defecțiunea hardware și altele. Procesul de replicare se desfășoară în mod regulat și pe diferite mașini. Deci, nu există pierderi de date dacă o mașină se defectează. Puteți folosi orice altă mașină pentru a vă obține datele.
Obiective HDFS
- Gestionarea seturi de date uriașe: Spre deosebire de alte sisteme de distribuție de fișiere, HDFS are arhitectura necesară pentru a gestiona aplicațiile care prezintă seturi de date uriașe. În funcție de enormitatea seturilor de date în cauză, poate avea sute de noduri pentru fiecare cluster.
- Detectarea și recuperarea defecțiunilor: Nu mulți pot depăși HDFS în capacitățile sale asociate cu detectarea defecțiunilor și apoi tratarea adecvată a acestora. Un număr mare de hardware de bază în cauză face HDFS expus la defecțiuni frecvente ale componentelor. Cu toate acestea, acesta nu este un dezavantaj. Fiecare sistem care se ocupă cu un astfel de hardware de bază este deschis eșecului. Cu toate acestea, rămâne întrebarea dacă sistemul este sau nu capabil să detecteze rapid și automat acele defecțiuni și să ofere recuperare în același timp. HDFS cu siguranță este capabil.
- Debit crescut: HDFS procesează fiecare sarcină eficient, deoarece calculul real este efectuat în apropierea datelor în sine. Acest lucru este foarte important în special atunci când avem de-a face cu seturi de date uriașe. Acest mecanism crește debitul și elimină în mod semnificativ problema traficului de rețea.
În concluzie, am dori să spunem că HDFS poate stoca cantități uriașe de date într-o manieră fiabilă și fără a simți efectele defecțiunii hardware. De asemenea, este foarte tolerant la erori, foarte disponibil și foarte scalabil.
Pentru a călători în adâncurile Hadoop și pentru a deveni un expert, consultați Certificarea PG de la upGrad și BITS Pilani în Big Data și Analytics. Obțineți experiență practică, personală cu experți din industrie, mentor dedicat, statutul de absolvenți BITS Pilani și multe altele.
Dacă sunteți interesat să aflați mai multe despre Big Data, consultați programul nostru PG Diploma în Dezvoltare Software Specializare în Big Data, care este conceput pentru profesioniști care lucrează și oferă peste 7 studii de caz și proiecte, acoperă 14 limbaje și instrumente de programare, practică practică. ateliere de lucru, peste 400 de ore de învățare riguroasă și asistență pentru plasarea unui loc de muncă cu firme de top.
Învață cursuri de dezvoltare software online de la cele mai bune universități din lume. Câștigați programe Executive PG, programe avansate de certificat sau programe de master pentru a vă accelera cariera.