HBase
 sql >> Database >  >> NoSQL >> HBase

Codifica di cancellazione HDFS in Big Data Hadoop

Questo blog è interamente dedicato alla codifica di cancellazione HDFS. In questo blog parleremo del concetto di Erasure Coding in Hadoop , problemi del vecchio schema di replica. In questo blog vengono discussi anche due algoritmi per la codifica di cancellazione Hadoop, come l'algoritmo XOR , l'algoritmo Reed-Solomon.

Alla fine vedremo l'architettura ei vantaggi della codifica di cancellazione in Hadoop HDFS.

Problema con la replica del vecchio schema

Codifica di cancellazione HDFS è una nuova funzionalità introdotta per ridurre l'overhead di storage di circa il 50% rispetto alla replica 3x. Hadoop HDFS replica ogni blocco 3 volte per vari scopi. È una forma molto semplice di ridondanza per proteggersi dal guasto del nodo dati.

Insieme ai pro ha vari contro che è molto costoso. La replica 3 volte ha un sovraccarico del 200% nello spazio di archiviazione e in altre risorse. I set di dati con attività di I/O bassa, le repliche aggiuntive sono accessibili raramente durante il normale funzionamento ma consumano comunque altre risorse.

Questo è il motivo per cui è nata la codifica Hadoop Erasure. Fornisce lo stesso livello di tolleranza agli errori con meno spazio di archiviazione e un sovraccarico di archiviazione del 50%.

Quando si confrontano i diversi schemi di archiviazione, una considerazione importante è:

  • Durata dei dati (numero di tolleranza ai guasti simultanea)
  • Efficienza di archiviazione

Quindi, nella replica N-way, c'è una tolleranza di errore N-1 con un'efficienza di archiviazione 1/n.

Cos'è la codifica di cancellazione HDFS in Hadoop?

La codifica di cancellazione HDFS utilizza RAID . RAID implementa EC utilizza lo stripping. Lo stripping memorizza logicamente i dati sotto forma di blocco. Quindi memorizza questi blocchi sul disco diverso. Calcola la parità per ogni blocco e negozio. Questo è codificato. Attraverso la parità recupera l'errore.

Per la tolleranza ai guasti EC estende il messaggio con dati ridondanti. La codifica di cancellazione HDFS funzionerà su celle di dati di dimensioni uniformi. Il codec accetta un numero di celle di dati come input. E quindi produce celle di parità come output.

L'intero processo è chiamato Codifica. La parità e la cella di dati insieme sono chiamate come gruppo di codifica di cancellazione. Il processo mediante il quale la cella di dati perduta viene ricostruita sulle celle rimanenti è noto come decodifica.

I due algoritmi disponibili per la codifica di cancellazione HDFS sono i seguenti:

a) Algoritmo XOR

È la semplice implementazione della codifica Hadoop Erasure.

Supponiamo che le celle di dati X, Y e Z siano celle di dati, quindi la cella di parità è XOR di queste tre celle di dati x ⊕ y ⊕ z quindi durante l'operazione XOR viene generato un solo bit di parità e se un bit viene perso può essere recuperato dalle celle di dati rimanenti e un bit di parità.

È molto limitato poiché produce 1 bit di parità, quindi l'operazione XOR può tollerare solo 1 errore con n dimensioni del gruppo.

"Nel funzionamento XOR la ​​tolleranza agli errori 1 e l'efficienza di archiviazione è n-1/n quando la dimensione del gruppo è n.

b) Algoritmo Reed-Solomone

Reed-Solomon risolve la limitazione dell'operazione XOR. Utilizza l'algebra lineare per generare più celle di parità. RS utilizza due parametri k e m, k è un numero di celle di dati e m è un numero di celle di parità.

RS funziona moltiplicando k celle di dati con una matrice del generatore (G), per generare una parola di codice estesa con k celle di dati e m celle di parità. L'errore di archiviazione può essere recuperato moltiplicando l'inverso della matrice del generatore con le parole in codice estese fintanto che è disponibile k su k+m celle.

"Con Reed, Solomon tolleranza agli errori dipende da m celle e dall'efficienza di archiviazione k/k+m dove k sono celle di dati e m sono celle di parità."

Decisione progettuale e architettura

Lo striping EC ha diversi vantaggi:

  • Lo stripping consente l'EC online (scrittura immediata dei dati in formato EC), evitando una fase di conversione e risparmiando immediatamente spazio di archiviazione.
  • Distribuisce un piccolo file a più Datanode. Elimina raggruppa più file in un unico gruppo di codifica. Pertanto, semplifica le operazioni sui file come l'eliminazione e la migrazione tra spazi dei nomi federati.
  • Per un migliore supporto di file di piccole dimensioni, EC supporta lo stripping. In futuro, HDFS supporterà anche un layout EC contiguo.

EC ha aggiunto molti nuovi componenti sono:

  • Estensioni NameNode (Gestore EC ) – I file Stripe HDFS sono logicamente composti da gruppi di blocchi. Ciascuno dei quali contiene un certo numero di blocchi interni. Per ridurre il consumo di memoria di Namenode da questi blocchi aggiuntivi, ha introdotto un nuovo protocollo di denominazione dei blocchi gerarchico. EC deduce l'ID di un gruppo di blocchi dall'ID di uno qualsiasi dei suoi blocchi interni. Ciò consente la gestione a livello del gruppo di blocchi piuttosto che del blocco.
  • Estensioni del cliente (cliente EC) – Il client può eseguire operazioni di lettura e scrittura su più blocchi interni in un gruppo di blocchi in parallelo.
  • Estensioni DataNode (ECWorker)- DataNode esegue un'attività di lavoro EC aggiuntiva per il ripristino dei blocchi codificati di cancellazione non riusciti. Quindi, NameNode rileva i blocchi EC non riusciti, namenode fornisce istruzioni di ripristino ai datanode. Quindi supera l'attività di ripristino come risposta al battito cardiaco.

Vantaggi della codifica di cancellazione

  • Disponibilità dei dati a capacità inferiore: HDFS  I codici di cancellazione consentono la disponibilità dei dati a capacità inferiore. Inizialmente, replica i blocchi in tre repliche. Quindi, lo spazio di archiviazione di tre repliche è ampio. Ma ora, nella codifica di cancellazione, archivia dati di grandi dimensioni come bit di parità, quindi l'archiviazione riduce lo spazio.
  • Prestazioni: Poiché EC archivia i dati come parità invece di 3 repliche, offre prestazioni migliori.
  • Recupero veloce: Rileva e recupera gli errori di blocco HDFS sia attivamente (in background) che passivamente (sul percorso di lettura).

Conclusione

In conclusione, possiamo dire che la codifica HDFS Erasure ha ridotto del 50% il sovraccarico di archiviazione. EC riduce l'overhead a causa dei bit di parità. Quindi, queste caratteristiche HDFS potenzia la funzionalità di Apache Hadoop.

Se hai domande o suggerimenti relativi alla codifica di cancellazione in HDFS, ti preghiamo di commentarci nella sezione riportata di seguito.