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

HDFS Erasure Coding i Big Data Hadoop

Denne blog handler om HDFS Erasure Coding. I denne blog vil vi diskutere begrebet Erasure Coding i Hadoop , spørgsmål om gammel replikeringsordning. To algoritmer til Hadoop-sletningskodning såsom XOR -algoritme, Reed-Solomon-algoritme er også diskuteret i denne blog.

Til sidst vil vi se arkitekturen og fordelene ved slettekodning i Hadoop HDFS.

Problem med gammel skemareplikering

HDFS-sletningskodning er en ny funktion introduceret for at reducere lageromkostninger med cirka 50 % sammenlignet med 3x replikering. Hadoop HDFS replikerer hver blok 3 gange til forskellige formål. Det er en meget simpel form for redundans at skærme mod dataanodesvigt.

Sammen med fordele har det forskellige ulemper, at det er meget dyrt. 3 x replikering har 200 % overhead i lagerplads og andre ressourcer. Datasæt med lav I/O-aktivitet, tilføjelsesreplikaer er sjældent tilgået under normal drift, men bruger stadig andre ressourcer.

Dette er grunden til, at Hadoop Erasure-kodning opstod. Det giver det samme niveau af fejltolerance med mindre lagerplads og 50 % lageroverhead.

Når man sammenligner de forskellige opbevaringsordninger, er en vigtig overvejelse:

  • Datas holdbarhed (antal samtidige fejltolerancer)
  • Lagringseffektivitet

Så i N-vejs replikering er der N-1 fejltolerance med 1/n lagereffektivitet.

Hvad er HDFS Erasure Coding i Hadoop?

HDFS Erasure Coding bruger RAID . RAID implementerer EC bruger stripping. Stripning gemmer logisk dataene i form af en blok. Gemmer derefter disse blokke på den anden disk. Den beregner paritet for hver blok og butik. Dette er kodet. Gennem paritet genopretter den fejl.

For fejltolerance udvider EC besked med redundante data. HDFS Erasure-kodning vil fungere på dataceller med ensartet størrelse. codec tager et antal dataceller som input. Og producerer derefter paritetsceller som output.

Hele denne proces kaldes kodning. Paritet og datacelle kaldes sammen som en slettekodningsgruppe. Processen, hvorved mistede dataceller rekonstrueres over de resterende celler, er kendt som afkodning.

To tilgængelige algoritmer til HDFS Erasure Coding er som følger:

a) XOR-algoritme

Det er den simple implementering af Hadoop Erasure-kodning.

Lad os antage, at datacellerne X og Y og Z er dataceller, så er paritetscellen XOR af disse tre dataceller x ⊕ y ⊕ z så under XOR-operationen genereres kun én paritetsbit, og hvis en bit går tabt, kan den gendannes af de resterende dataceller og en paritetsbit.

Den er meget begrænset, da den producerer 1 paritetsbit, så XOR-operationen kan kun tolerere 1 fejl med n gruppestørrelse.

"I XOR-drift er fejltolerance 1 og lagereffektivitet n-1/n, når gruppestørrelsen er n.

b) Reed-Solomon-algoritme

Reed-Solomon adresserer XOR-driftsbegrænsningen. Den bruger lineær algebra til at generere flere paritetsceller. RS bruger to parameter k og m, k er et antal dataceller og m er et antal paritetsceller.

RS fungerer ved at multiplicere k dataceller med en Generator Matrix (G) for at generere udvidet kodeord med k dataceller og m paritetsceller. Lagerfejl kan gendannes ved at multiplicere inverse af generatormatricen med de udvidede kodeord, så længe k ud af k+m celler er tilgængelige.

"Med Reed, Solomon fejltolerance er op til m celler og lagereffektivitet k/k+m hvor k er dataceller og m er paritetsceller."

Designbeslutning og arkitektur

EC striping har flere fordele:

  • Stripning muliggør online EC (skriver data med det samme i EC-format), undgår en konverteringsfase og sparer straks lagerplads.
  • Den distribuerer en lille fil til flere datanoder. Det eliminerer bundter flere filer i en enkelt kodningsgruppe. Således forenkler det filbetjening, såsom sletning og migrering mellem fødererede navneområder.
  • For bedre at understøtte små filer understøtter EC stripping. I fremtiden vil HDFS også understøtte et sammenhængende EC-layout.

EC tilføjede mange nye komponenter er:

  • NameNode-udvidelser (ECManager ) – Stripe HDFS-filer er logisk sammensat af blokgrupper. Hver af dem indeholder et vist antal interne blokke. For at reducere hukommelsesforbruget af Namenode fra disse ekstra blokke, introducerede den en ny hierarkisk bloknavneprotokol. EC udleder ID'et for en blokgruppe fra ID'et for enhver af dens interne blokke. Dette tillader administration på niveau med blokgruppen i stedet for blokken.
  • Client Extensions (EC Client) – Klienten kan udføre læse- og skriveoperationer på flere interne blokke i en blokgruppe parallelt.
  • DataNode Extensions (ECWorker)- DataNode kører en ekstra EC-arbejderopgave til gendannelse af mislykkede sletningskodede blokke. Så NameNode detekterer de mislykkede EC-blokke, namenode giver gendannelsesinstruktioner til datanoder. Derefter passerer den gendannelsesopgaven som hjerteslagsrespons.

Fordele ved sletningskodning

  • Datatilgængelighed ved lavere kapacitet: HDFS  Slettekoder muliggør datatilgængelighed ved lavere kapacitet. Indledningsvis repliker blokke i tre replikaer. Så lagerplads på tre replikaer er stor. Men nu i slettekodning gemmer store data som en paritetsbit, så lagring reducerer plads.
  • Ydeevne: Da EC gemmer data som paritet i stedet for 3 replikaer, så giver det bedre ydeevne.
  • Hurtig genopretning: Den opdager og gendanner HDFS-blokfejl både aktivt (i baggrunden) og passivt (på læsestien).

Konklusion

Afslutningsvis kan vi sige, at HDFS Erasure-kodning har reduceret lageromkostningerne med 50%. EC reducerer overhead på grund af paritetsbits. Derfor er disse HDFS-funktioner styrke Apache Hadoop-funktionalitet.

Hvis du har nogen forespørgsler eller forslag relateret til sletning af kodning i HDFS, så kommenter os venligst i afsnittet nedenfor.


  1. Hvordan kan du fjerne alle dokumenter fra en samling med Mongoose?

  2. MongoDB Database Automation Basics Brug af Chef

  3. redis scanning returnerer tomme resultater, men ikke-nul markør

  4. Hvordan Redis-lister kan bruges til at implementere et chatsystem?