HDFS | Architettura HDFS | Componenti HDFS

Contenuti

Panoramica

  • Familiarícese con el sistema de archivos distribuido l'Hadoop (HDFS)
  • Comprendere i componenti di HDFS

introduzione

Attualmente, gestire enormi quantità di dati è comune. Dal tuo prossimo messaggio WhatsApp al tuo prossimo Tweet, stai creando dati ad ogni passo quando interagisci con la tecnologia. Ora moltiplicalo per 4.5 un miliardo di persone su Internet: La matematica è semplicemente fantastica!!

Ma, Ti sei mai chiesto come gestire quei dati? È memorizzato in una singola macchina?? Cosa succede se la macchina si guasta?? Ti mancheranno i tuoi adorabili tweet dal 3 SONO * tos *?

architettura-hdfs-2890746

La risposta è no. Sono abbastanza sicuro che stai già pensando ad Hadoop. Hadoop è un quadro fantastico. Con Hadoop al tuo fianco, puoi sfruttare gli incredibili poteri del file system distribuito Hadoop (HDFS), il componente di archiviazione Hadoop. È probabilmente il componente più importante di Hadoop e richiede una spiegazione dettagliata.

Quindi, in questo articolo, impareremo cos'è veramente il file system distribuito Hadoop (HDFS) e i suoi vari componenti. Cosa c'è di più, vedremo cosa fa funzionare HDFS, questo è ciò che lo rende così speciale. Scopriamolo!

Sommario

  • Che cos'è il file system distribuito Hadoop? (HDFS)?
  • Quali sono i componenti di HDFS?
    • Blocchi in HDFS?
    • Nomenodo e HDFS
    • Nodi dati in HDFS
    • Nodo secundario en HDFS
  • Gestione della replica
    • Replicazione de bloques
    • Che cos'è un rack in Hadoop?
    • Consapevolezza del rack

Che cos'è il file system distribuito Hadoop? (HDFS)?

È difficile mantenere grandi volumi di dati su una singola macchina. Perciò, i dati devono essere suddivisi in blocchi più piccoli e archiviati su più macchine.

I file system che gestiscono l'archiviazione su una rete di macchine sono chiamati file system distribuiti..

Il file system distribuito Hadoop (HDFS) è il componente di archiviazione di Hadoop. Tutti i dati archiviati in Hadoop sono archiviati in modo distribuito su un gruppo di macchine. Ma ha alcune proprietà che ne definiscono l'esistenza.

  • Volumi enormi – Essendo un file system distribuito, è altamente in grado di memorizzare petabyte di dati senza problemi.
  • Accesso ai dati – Si basa sulla filosofia che "il modello di elaborazione dei dati più efficiente è scrivere una volta e leggere molte volte".
  • Economico – HDFS viene eseguito su un pool di hardware di base. Queste sono macchine economiche che possono essere acquistate da qualsiasi fornitore.

Quali sono i componenti del file system distribuito Hadoop (HDFS)?

HDFS ha due componenti principali, in termini generali: blocchi di dati e nodi che memorizzano quei blocchi di dati. Ma c'è più di quanto sembri. Quindi, esaminiamolo uno per uno per capirlo meglio.

Blocchi HDFS

HDFS divide un file in unità più piccole. Cada una de estas unidades se almacena en diferentes máquinas del grappolo. tuttavia, questo è trasparente per l'utente che lavora in HDFS. Per loro, sembra memorizzare tutti i dati su una singola macchina.

Queste unità più piccole sono le blocchi e HDFS. La dimensione di ciascuno di questi blocchi è 128 MB per impostazione predefinita, puoi facilmente cambiarlo secondo i requisiti. Perciò, se avessi un file di 512 MB, sarebbe diviso in 4 blocchi che immagazzinano 128 MB ciascuno.

blocchi-hadoop-hdfs-5933520

tuttavia, se avessi un file di 524 MB di dimensione, sarebbe diviso in 5 blocchi. 4 di questi conserverebbe 128 MB ciascuno, equivalente a 512 MB. E il quinto memorizzerebbe il 12 MB rimanenti. Giusto! Quest'ultimo blocco non occuperà il 128 MB completi di disco.

hadoop-hdfs-blocks-split-9474833

Ma, devi chiederti, Perché una quantità così grande in un unico blocco? Perché non più blocchi di 10 KB ciascuno? Bene, la quantità di dati che generalmente trattiamo in Hadoop è solitamente dell'ordine di petra byte o più.

Perciò, se creiamo piccoli blocchi, finiremmo con una quantità colossale di blocchi. Ciò significherebbe che avremmo a che fare con metadati altrettanto grandi riguardanti la posizione dei blocchi, che genererebbe un sacco di spese generali. E davvero non lo vogliamo!

Ci sono diversi vantaggi nell'archiviazione dei dati in blocchi piuttosto che nel salvare l'intero file.

  • Il file stesso sarebbe troppo grande per essere archiviato su un singolo disco. Perciò, è saggio distribuirlo tra diverse macchine nel cluster.
  • Consentirebbe anche una corretta distribuzione del carico di lavoro ed eviterebbe la limitazione di una singola macchina sfruttando il parallelismo..

Ora, devi chiederti, E le macchine nel cluster?? Come vengono archiviati i blocchi e dove vengono archiviati i metadati? Scopriamolo.

Nominato in HDFS

HDFS opera su un'architettura master-worker, esto significa que hay un nodo maestro y varios nodos trabajadores en el clúster. Il nodo principale è il Nomenodo.

Nomenodo è il nodo principale in esecuzione su un nodo separato nel cluster.

  • Gestire lo spazio dei nomi del file system, che è l'albero del file system o la gerarchia di file e directory.
  • Memorizza le informazioni come proprietari di file, permessi dei file, eccetera. per tutti i file.
  • Conosce anche la posizione di tutti i blocchi in un file e la loro dimensione.

Tutte queste informazioni sono conservate in modo persistente sul disco locale sotto forma di due file: Fsimage e Modifica registrazione.

  • Fsimage memorizza le informazioni su file e directory nel file system. Per i file, memorizza il livello di replica, modifica e tempi di accesso, permessi di accesso, i blocchi che compongono il file e le loro dimensioni. Per le directory, memorizza l'ora e i permessi di modifica.
  • Modifica registrazione In secondo luogo, tiene traccia di tutte le operazioni di scrittura che il client esegue. Questo viene aggiornato periodicamente ai metadati in memoria per soddisfare le richieste di lettura.

Ogni volta che un client desidera scrivere informazioni su HDFS o leggere informazioni da HDFS, si connette con lui Nomenodo. Il Namenode restituisce la posizione dei blocchi al client e l'operazione viene eseguita.

sì, è vero, il Namenode non memorizza i blocchi. Per quello, abbiamo nodi separati.

Nodi dati in HDFS

Nodi dati sono i nodi di lavoro. Sono hardware entry-level a basso costo che possono essere facilmente aggiunti al cluster.

Nodi dati sono responsabili della conservazione, riaverlo, replicare, rimuovere, eccetera. di blocchi quando richiesto dal Namenode.

Inviano periodicamente battiti cardiaci al Namenode in modo che sia consapevole della sua salute. Con quello, un Nodo dati también envía una lista de bloques que se almacenan en él para que Namenode pueda mantener la asignación de bloques a Datanodes en su memoria.

Ma oltre a questi due tipi di nodi nel cluster, c'è anche un altro nodo chiamato nodo del nome secondario. Vediamo di cosa si tratta.

Nodo del nome secondario in HDFS

Supponiamo di dover riavviare il Nomenodo, cosa può succedere in caso di guasto. Ciò significherebbe che dobbiamo copiare Fsimage dal disco alla memoria. Cosa c'è di più, dovremmo anche copiare l'ultima copia di Edit Log in Fsimage per tenere traccia di tutte le transazioni. Ma se riavviamo il nodo dopo molto tempo, quindi il registro delle modifiche potrebbe essere diventato più grande. Ciò significherebbe che ci vorrebbe molto tempo per applicare le transazioni del registro di modifica. E in questo periodo, il filesystem sarebbe offline. Perciò, risolvere questo problema, portiamo il Nodo del nome secondario.

Nodo del nome secondario è un altro nodo presente nel cluster il cui compito principaleèunire regolarmente il registro di modifica con Fsimage e produrre punti di controllo dei metadati del file system in memoria del primario. Questo è anche noto come Checkpoint.

checkpoint-2088073

Ma la procedura del checkpoint è molto costosa dal punto di vista computazionale e richiede molta memoria, motivo per cui il nodo del nome secondario viene eseguito su un nodo separato del cluster.

tuttavia, nonostante il nome, il Namenode secondario non agisce come Namenode. È lì solo per fare Checkpoint e conservare una copia dell'ultimo Fsimage.

Gestione della replica in HDFS

Ora, una delle migliori caratteristiche di HDFS è la replica a blocchi, il che lo rende molto affidabile. Ma, Come replichi i blocchi e dove li conservi? Rispondiamo a queste domande ora.

Replica a blocchi

HDFS è un componente di archiviazione affidabile di Hadoop. Questo perché ogni blocco archiviato nel file system viene replicato su diversi nodi di dati nel cluster. Questo rende HDFS fault tolerant.

Il fattore di replica predefinito in HDFS è 3. Ciò significa che ogni blocco avrà altre due copie, ciascuno memorizzato in DataNode separati sul cluster. tuttavia, questo numero è configurabile.

replica-5333742

Ma ti starai chiedendo, Ciò non significa che stiamo occupando troppo spazio di archiviazione? Ad esempio, se abbiamo 5 blocchi di 128 MB ciascuno, che equivale a 5 * 128 * 3 = 1920 MB. Vero. Ma questi nodi sono hardware di base. Possiamo facilmente ridimensionare il cluster per aggiungere più di queste macchine. Il costo dell'acquisto delle macchine è molto inferiore al costo della perdita di dati!!

Ora, devi chiederti, In che modo Namenode decide in quale Datanode memorizzare le repliche?? Bene, prima di rispondere a questa domanda, dovremmo dare un'occhiata a cosa è un Rack in Hadoop.

Che cos'è un rack in Hadoop?

UN Lo scaffale è un insieme di macchine (30-40 e Hadoop) che sono memorizzati nella stessa posizione fisica. Ci sono più rack in un cluster Hadoop, tutti collegati tramite interruttori.

hadoop-hdfs-rack-2761186

Consapevolezza del rack

Lo storage di replica è un compromesso tra affidabilità e larghezza di banda di lettura / scrivere. Per aumentare l'affidabilità, dobbiamo archiviare le repliche dei blocchi in diversi rack e Datanodes per aumentare la tolleranza ai guasti. Mentre la larghezza di banda di scrittura è inferiore quando le repliche sono archiviate sullo stesso nodo. Perciò, Hadoop ha una strategia predefinita per affrontare questo enigma, anche conosciuto come Consapevolezza del rack algoritmo.

Ad esempio, se il fattore di replicazione di un blocco è 3, la prima replica è memorizzata nello stesso Datanode su cui scrive il client. La seconda replica è archiviata in un Datanode diverso ma in un rack diverso, scelto a caso. Mentre la terza replica è archiviata nello stesso rack della seconda ma in un Datanode diverso, di nuovo scelto a caso. tuttavia, se il fattore di replica fosse più alto, le seguenti repliche verrebbero archiviate su nodi di dati casuali nel cluster.

hadoop-hdfs-rack-awareness-6364073

Note finali

Spero che tu abbia già una solida comprensione di cosa sia il file system distribuito Hadoop (HDFS), quali sono i suoi componenti importanti e come memorizza i dati. tuttavia, ci sono ancora alcuni altri concetti che dobbiamo trattare riguardo al Hadoop Distributed File System (HDFS), ma questa è una storia per un altro articolo.

Per adesso, Ti consiglio di leggere i seguenti articoli per capire meglio Hadoop e questo mondo di Big Data.

Finalmente, ma non meno importante, consiglio di leggere Hadoop: La guida definitiva di Tom White. Questo articolo è stato molto ispirato da lui.

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.