Introduzione all'architettura HDFS

HDFS è l'acronimo di Hadoop Distributed File System, che a sua volta afferma che i file sono divisi in blocchi e memorizzati su più macchine.

Funzionalità di HDFS

Le caratteristiche di HDFS sono le seguenti:

1. Disponibilità

In HDFS i dati vengono replicati regolarmente tra i nodi di dati creando una replica di blocchi sull'altro nodo di dati. Quindi, in caso di guasti hardware o errori, l'utente può ottenere i suoi dati da un altro nodo di dati in cui i dati sono stati replicati.

2. Scalabilità

In HDFS i dati sono archiviati su più nodi di dati sotto forma di blocchi. HDFS consente agli utenti di aumentare la dimensione dei blocchi ogni volta che è necessario. Esistono due tipi di meccanismi di scalabilità utilizzati in HDFS: la scalabilità orizzontale e la scalabilità verticale.

3. Replica

Queste sono le caratteristiche uniche di HDFS che consentono a un utente di accedere facilmente ai propri dati in caso di guasti hardware.

Architettura HDFS

HDFS segue l'architettura master-slave che ha i seguenti componenti:

1. Nome:

NameNode è anche noto come nodo principale perché gestisce tutti i blocchi presenti su DataNodes.

NameNode esegue le seguenti attività:

  • Gestire tutti i blocchi DataNode
  • Fornisce l'accesso ai file all'utente
  • Mantiene tutti i record dei blocchi presenti su DataNode
  • NameNode registra tutte le informazioni sui file, ad esempio se il nome di un file viene rinominato o il contenuto è stato modificato o eliminato NameNode registra immediatamente quella modifica in EditLogs
  • Prende i record di tutti i blocchi dai nodi di dati per garantire che tutti i blocchi siano attivi su DataNode.
  • In caso di errore, se si verifica un errore hardware, seleziona immediatamente un altro DataNode per creare la replica e gestire la comunicazione con tutti i DataNode

Tipi di file in NameNode

NameNode contiene due tipi di file FsImage e EditLogs

io. FsImage: è anche chiamata immagine di un file perché contiene tutte le informazioni su un filesystem con spazi dei nomi. Contiene inoltre tutte le directory e i file del filesystem in modo serializzato.

ii. EditLogs: le attuali modifiche apportate ai file del filesystem sono archiviate in EditLogs.

2. Nome secondario

Il SecondNodeNode viene anche chiamato come nodo checkpoint perché esegue checkpoint regolari. Funge da supporto per il NameNode primario.

Il NameNode secondario esegue le seguenti attività

  • NameNode secondario combina FsImage e EditLogs dal NameNode.
  • Legge tutte le informazioni del filesystem dalla memoria di archiviazione di NameNode e scrive queste informazioni su un disco rigido del filesystem.
  • Scarica FsImage e EditLogs da NameNode a intervalli regolari e legge le informazioni di modifica fatte dai file EditLogs e annota la modifica in FsImage. Questo processo crea una nuova FsImage che viene quindi rispedita al NameNode. Ogni volta che il NameNode si avvia, utilizzerà queste FsImage.

3. DataNode

DataNode è anche noto come nodo slave perché gestisce tutti i nodi che contengono dati su una macchina slave. DataNode memorizza i dati nel formato di file ext3 o ext4.

Il nodo dati esegue le seguenti attività:

  • Ogni dato è archiviato su DataNodes
  • Esegue tutte le operazioni sui file secondo la richiesta degli utenti, ad esempio leggendo il contenuto del file, scrivendo nuovi dati in file,
  • Segue anche tutte le istruzioni fornite da NameNode, ad esempio rinominare il file, eliminare alcuni blocchi su DataNode, creare blocchi, ecc.

4. Nodo checkpoint:

Il nodo Checkpoint è un nodo che ha creato un checkpoint di file a intervalli regolari. Nodo Checkpoint in HDFS, scarica FsImage e EditLogs da NameNode e uniscili per creare una nuova immagine e inviare quella nuova immagine a NameNode. L'ultimo checkpoint è archiviato in una directory con la stessa struttura della directory del namenode. Per questo motivo, l'immagine del punto di arresto è sempre disponibile se necessario.

5. Nodo di backup:

La funzione di un nodo di backup è simile a un nodo Checkpoint per eseguire un'attività di checkpoint. In Hadoop, il nodo Backup memorizza una copia più recente e aggiornata dello spazio dei nomi del file system. Non è necessario scaricare i file FsImage e editsLogs dal NameNode attivo per creare un checkpoint nel nodo Backup poiché è sincronizzato con lo stato del NameNode attivo. La funzione del nodo Backup è più precisa perché salva lo spazio dei nomi nel file FsImage locale e reimposta editLogs.

6. Blocchi:

Tutti i dati degli utenti vengono archiviati in file di HDFS che vengono quindi divisi in piccoli segmenti. Questi segmenti sono memorizzati nei DataNodes. I segmenti presenti su DataNodes sono chiamati come blocco. La dimensione di blocco predefinita di questi blocchi è 128 MB. La dimensione del blocco può essere modificata secondo i requisiti degli utenti configurando HDFS.

Se la dimensione dei dati è inferiore alla dimensione del blocco, la dimensione del blocco è uguale alla dimensione dei dati. Ad esempio, se i dati sono di 135 MB, verranno creati 2 blocchi. Uno avrà dimensioni predefinite di 128 MB e un altro avrà solo 7 MB, non 128 MB. Per questo motivo, viene risparmiato molto spazio e tempo di clock del disco.

Gestione della replica nell'architettura HDFS:

HDFS è tollerante ai guasti. La tolleranza ai guasti è una potenza del sistema in caso di guasti e di come risponde agli errori e alle condizioni difficili. La tolleranza agli errori funziona in base al processo di creazione della replica. Copie dei dati dell'utente vengono salvate su macchine nel cluster DHFS. Pertanto, in caso di guasti o guasti nel sistema, è possibile accedere a una copia di tali dati dagli altri computer del cluster HDFS. Ogni blocco nell'architettura HDFS ha 3 repliche che sono archiviate in diversi DataNode. NameNode mantiene le copie disponibili in DataNodes. NameNode aggiunge o elimina le copie in base ai criteri dei blocchi sotto replicati o sovra replicati.

Scrivi operazione

Per scrivere file su HDFS, il client comunicherà i metadati al NameNode. Il Nameode risponde con diversi blocchi, la loro posizione, copie, ecc. Il client divide i file in più blocchi in base alle informazioni del nameode. Quindi, inizia a inviarli a DataNode. Innanzitutto, il client invia il blocco A a DataNode 1 con altre informazioni su DataNodes. Quando DataNode 1 riceve il blocco A del client, DataNode 1 copia lo stesso blocco nello stesso rack in DataNode 2. Poiché entrambi i DataNode si trovano nello stesso rack, il trasferimento del blocco viene effettuato tramite switch rack. DataNode 2 ora copia lo stesso blocco in DataNode 3 Poiché entrambi i DataNode si trovano in rack diversi, il trasferimento del blocco avviene tramite uno switch out-of -rack. Una volta che DataNode riceve i blocchi del client, invierà la conferma a NameMode. Ogni blocco del file viene ripetuto lo stesso processo.

Leggi l'operazione

Per l'operazione di lettura, il primo client comunica i metadati al NameNode. Un client esce da NameNode con il nome e il percorso del file. Il Nameode risponde con un numero di blocco, posizione, copie e altre informazioni. Successivamente, il client comunica a DataNodes. Sulla base delle informazioni ricevute da NameNode, il client inizia a leggere i dati parallelamente da DataNodes. Quando tutto il blocco del file viene ricevuto dal client o dall'applicazione, combina questi blocchi in un modulo file originale.

Conclusione - Architettura HDFS

Con l'aiuto di NameNode e DataNode, memorizza in modo affidabile file molto grandi su macchine in un cluster di grandi dimensioni. A causa della tolleranza agli errori, è utile accedere ai dati in caso di errore software o hardware. Ecco come funziona l'architettura HDFS.

Articoli consigliati

Questa è stata una guida all'architettura HDFS. Qui abbiamo discusso i concetti di base con diversi tipi di architettura, funzionalità e gestione della replica dell'architettura HDFS. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più -

  1. Che cos'è la modellazione dei dati?
  2. Che cos'è la visualizzazione dei dati
  3. Che cos'è un data warehouse?
  4. Che cos'è SQL Developer?

Categoria: