Che cos'è il file system distribuito Hadoop (HDFS)? Architettura, funzionalità e operazioni

Pubblicato: 2020-02-03

Hadoop Distributed File System o HDFS è il sistema di archiviazione principale di Hadoop. Memorizza file di dati di grandi dimensioni che vengono eseguiti su hardware di base. Questo sistema di archiviazione è scalabile, facilmente espandibile e tollerante ai guasti.

Quando ci sono troppi dati archiviati su una macchina fisica, diventa che l'archiviazione è divisa su più macchine per evitare la perdita di dati. HDFS è uno di questi sistemi di archiviazione di file distribuiti che gestisce le operazioni di archiviazione su molte macchine fisiche. Ecco un tutorial HDFS per capire meglio come funziona questo sistema. Cominciamo con la sua architettura.

Sommario

Architettura HDFS

Il file system distribuito Hadoop ha un'architettura master-slave con i seguenti componenti:

  1. Namenode : è l'hardware di base che contiene sia il software namenode che il sistema operativo Linux/GNU. Il software Namenode può essere eseguito senza problemi su hardware di base senza incontrare alcun problema. Il sistema con namenode come componente funge da server principale. Esegue attività che includono la regolazione del modo in cui i client accedono ai file, la gestione dello spazio dei nomi del file system e l'esecuzione di operazioni, inclusa l'apertura, la chiusura e la ridenominazione di directory e file.
  2. Datanode : è un hardware di base che contiene il software del nodo dati e il sistema operativo Linux/GNU. I nodi in un cluster avranno sempre nodi di dati ad essi associati. Questi nodi sono responsabili della gestione dell'archiviazione dell'hardware/sistema di base. Alcune delle attività eseguite dai nodi di dati includono operazioni di lettura/scrittura in base alla richiesta del client e creazione, replica ed eliminazione di blocchi in base alle istruzioni fornite dal namenode.
  3. Blocco : tutti i dati dell'utente vengono archiviati in file HDFS. Ogni file appartenente a un particolare file system è suddiviso in uno o più segmenti, che vengono poi archiviati in datanodes. I segmenti di file in cui i file vengono divisi sono blocchi. Quindi, i dati più piccoli che HDFS è in grado di leggere o scrivere è un blocco. Inizialmente, ogni blocco ha una dimensione di 64 MB. Tuttavia, questa dimensione può essere aumentata in base alle modifiche alla configurazione di HDFS.

L'architettura HDFS fornisce un'immagine chiara e inequivocabile delle opere HDFS. È costituito da diversi datanode ma solo da un singolo namenode. I metadati sono archiviati nel namenode mentre il lavoratore effettivo dei due tipi di nodi è il datanode. I nodi sono organizzati in diversi rack su cui sono archiviati i blocchi di dati per migliorare la tolleranza agli errori e l'affidabilità dei dati. I client devono interagire con il namenode per leggere/scrivere un file. Il cluster dispone di diversi nodi di dati che utilizzano il disco locale per archiviare i dati disponibili. Datanode e namenode sono perennemente in contatto tra loro. Datanode è anche responsabile della replica dei dati utilizzando la funzione di replica su diversi datanode.

Le operazioni di lettura e scrittura in HDFS avvengono al livello più piccolo, cioè il livello di blocco. Il concetto di replica dei dati è fondamentale per il funzionamento di HDFS: l'elevata disponibilità dei dati è garantita durante l'errore del nodo creando repliche di blocchi e distribuzione di quelli nell'intero cluster.

Operazioni HDFS

Il file system HDFS e Linux sono abbastanza simili tra loro. Quindi, HDFS ci consente di eseguire tutte le operazioni che siamo abituati a eseguire con i file system locali: possiamo creare un director, modificare i permessi, copiare file e fare molto di più. Abbiamo anche diversi diritti di accesso ai file, inclusi lettura, scrittura ed esecuzione.

Operazione di lettura in HDFS: se vuoi leggere un file archiviato in HDFS, dovrai interagire con namenode. Come già accennato, tutti i metadati sono archiviati nel namenode. Una volta interagito con namenode, ti darà l'indirizzo del datanode in cui è archiviato il file che stai cercando. Puoi quindi interagire con il datanode il cui indirizzo ti è stato fornito da namenode e quindi leggere le informazioni da lì.

Interagisci con l'API del file system, che richiede a namenode di condividere l'indirizzo del blocco. Prima di fornire queste informazioni, namenode esegue un controllo per scoprire se hai il diritto di accedere a questi dati o meno. Una volta eseguito questo controllo, namenode condivide la posizione del blocco o nega l'accesso a causa di restrizioni.

Ti viene data una forma di token dal namenode, che devi mostrare al rispettivo datanode per accedere a un file. Questa è una forma di meccanismo di sicurezza che HDFS utilizza per garantire che la persona giusta acceda ai dati. Il datanode ti consentirà di leggere il file solo dopo aver visualizzato il token.

Operazione di scrittura: L'operazione di scrittura segue lo stesso schema iniziale. Devi richiedere il namenode per consentirti di scrivere i dati. In cambio, ti fornirà la posizione del datanode su cui deve essere eseguita l'operazione di scrittura. Non appena hai finito di eseguire questa operazione, il datanode inizierà a replicare questi blocchi di dati scritti su altri datanode. Una volta completata la replica, riceverai un riconoscimento. Il meccanismo di autenticazione nell'operazione di scrittura è lo stesso dell'operazione di lettura.

Funzionalità HDFS

  1. Disponibilità : non ci sono troppi file system forniti con l'elevata disponibilità di HDFS. Il file system segue un meccanismo di replica dei dati sotto forma di repliche di blocchi sui nodi di dati (slave) in un cluster. Per accedere a questi dati, è necessario interagire con i datanode che contengono i blocchi di informazioni che stanno cercando.
  2. Affidabilità : Hadoop Distributed File System è un sistema di archiviazione dati altamente affidabile. La quantità di dati che possono essere archiviati su intervalli HDFS in petabyte. Utilizza un cluster per archiviare tutti i suoi dati, che sono separati per formare blocchi. Quindi utilizza i nodi del cluster per archiviare questi blocchi.
  3. Tolleranza ai guasti : questa caratteristica è la forza operativa dell'HDFS in condizioni non favorevoli come normalmente. HDFS tollera gli errori come nessun altro file system. Protegge i tuoi dati dagli effetti di qualsiasi imprevisto, anche in futuro. Come già accennato, la replica dei dati viene eseguita su macchine diverse. Cosa succede quando una di queste macchine smette di funzionare? Potrebbe essere stato un problema significativo con qualsiasi altro sistema, ma non HDFS. HDFS ti consente di accedere ai tuoi dati da qualsiasi altra macchina che abbia anche una copia dei blocchi di dati che stai cercando. Questo si chiama vera tolleranza ai guasti.
  4. Scalabilità : HDFS utilizza diversi nodi in un cluster per archiviare i dati. Quando i requisiti di archiviazione aumentano, puoi sempre andare avanti e ridimensionare il cluster. Questa è un'altra caratteristica esclusiva di HDFS. Il sistema di distribuzione dei file fornisce due meccanismi per scalare il cluster: scalabilità orizzontale e verticale.
  5. Replica : la replica è una funzionalità che distingue HDFS dagli altri sistemi di archiviazione. La replica riduce al minimo le istanze di perdita di dati a causa di un evento sfavorevole, come arresto anomalo del nodo, guasto hardware e altro. Il processo di replica viene effettuato regolarmente e su diverse macchine. Quindi, non c'è perdita di dati se una macchina si ferma. Puoi usare qualsiasi altra macchina per ottenere i tuoi dati.

Obiettivi HDFS

  1. Gestione di enormi set di dati: a differenza di altri sistemi di distribuzione di file, HDFS dispone dell'architettura necessaria per gestire le applicazioni che dispongono di enormi set di dati. A seconda dell'enormità dei set di dati in questione, può avere centinaia di nodi per ogni cluster.
  2. Rilevamento e ripristino dei guasti: non molti possono battere HDFS nelle sue capacità associate al rilevamento dei guasti e alla loro gestione appropriata. Un gran numero di hardware di base in questione rende HDFS esposto a frequenti guasti dei componenti. Tuttavia, questo non è uno svantaggio. Ogni sistema che si occupa di hardware di questo tipo è soggetto a guasti. Tuttavia, rimane la domanda se il sistema sia o meno in grado di rilevare rapidamente e automaticamente tali guasti e allo stesso tempo fornire il ripristino. HDFS è certamente in grado.
  3. Aumento del throughput: HDFS elabora ogni attività in modo efficiente poiché il calcolo effettivo viene eseguito vicino ai dati stessi. Questo è particolarmente importante quando abbiamo a che fare con enormi set di dati. Questo meccanismo aumenta il throughput ed elimina significativamente il problema del traffico di rete.

Per concludere, vorremmo dire che HDFS può archiviare enormi quantità di dati in modo affidabile e senza subire gli effetti di guasti hardware. È anche altamente tollerante ai guasti, altamente disponibile e altamente scalabile.

Per viaggiare nelle profondità di Hadoop e diventare un esperto, dai un'occhiata alla certificazione PG upGrad & BITS Pilani in Big Data & Analytics. Ottieni un'esperienza pratica, one-to-one con esperti del settore, mentore dedicato, BITS Pilani Alumni Status e altro ancora.

Se sei interessato a saperne di più sui Big Data, dai un'occhiata al nostro PG Diploma in Software Development Specialization nel programma Big Data, progettato per professionisti che lavorano e fornisce oltre 7 casi di studio e progetti, copre 14 linguaggi e strumenti di programmazione, pratiche pratiche workshop, oltre 400 ore di apprendimento rigoroso e assistenza all'inserimento lavorativo con le migliori aziende.

Impara i corsi di sviluppo software online dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.

Padroneggia la tecnologia del futuro - Big Data

Oltre 400 ore di apprendimento. 14 Lingue e strumenti. Stato Alumni IIITB.
Programma di certificazione avanzato in Big Data da IIIT Bangalore