sql >> Databáze >  >> NoSQL >> HBase

Kódování HDFS Erasure v Big Data Hadoop

Tento blog je celý o kódování HDFS Erasure Coding. V tomto blogu budeme diskutovat o konceptu Erasure Coding v Hadoop , problematika starého schématu replikace. V tomto blogu jsou také diskutovány dva algoritmy pro kódování vymazání Hadoop, jako je XOR  Algorithm, Reed-Solomon Algorithm.

Konečně uvidíme architekturu a výhody kódování výmazu v Hadoop HDFS.

Problém s replikací starého schématu

Kódování vymazání HDFS je nová funkce, která snižuje režii úložiště přibližně o 50 % ve srovnání s 3x replikací. Hadoop HDFS replikuje každý blok 3krát pro různé účely. Je to velmi jednoduchá forma redundance, která chrání před selháním datového uzlu.

Spolu s klady má různé nevýhody, že je velmi drahý. 3x replikace má 200% režii v úložném prostoru a dalších zdrojích. K datovým sadám s nízkou I/O aktivitou, dodatečným replikám se během normálního provozu přistupuje jen zřídka, ale stále spotřebovávají jiné zdroje.

To je důvod, proč vzniklo kódování Hadoop Erasure. Poskytuje stejnou úroveň odolnosti proti chybám s menším úložným prostorem a 50% režií úložiště.

Při porovnávání různých schémat úložiště je důležité vzít v úvahu:

  • Trvalost dat (počet současně odolných chyb)
  • Účinnost úložiště

Takže v N-way replikaci existuje N-1 odolnost proti chybám s účinností úložiště 1/n.

Co je kódování vymazání HDFS v Hadoopu?

HDFS Erasure Coding používá RAID . RAID implementuje EC používá stripping. Stripping logicky ukládá data ve formě bloku. Poté tyto bloky uloží na jiném disku. Vypočítá paritu pro každý blok a úložiště. Toto je zakódováno. Prostřednictvím parity obnovuje chybu.

Pro odolnost proti chybám EC rozšiřuje zprávu o redundantní data. Kódování HDFS Erasure bude fungovat na datových buňkách stejné velikosti. Kodek bere jako vstup několik datových buněk. A pak vytvoří paritní buňky jako výstup.

Celý tento proces se nazývá kódování. Parita a datová buňka společně se nazývají jako skupina kódování výmazu. Proces, při kterém se ztracená datová buňka rekonstruuje přes zbývající buňky, se nazývá dekódování.

Dva algoritmy dostupné pro kódování vymazání HDFS jsou následující:

a) Algoritmus XOR

Je to jednoduchá implementace kódování Hadoop Erasure.

Předpokládejme, že datové buňky X a Y a Z jsou datové buňky, pak paritní buňka je XOR těchto tří datových buněk x ⊕ y ⊕ z takže během operace XOR je generován pouze jeden paritní bit a pokud dojde ke ztrátě jednoho bitu, může být obnoven zbývajícími datovými buňkami a paritním bitem.

Je velmi omezený, protože produkuje 1 paritní bit, takže operace XOR může tolerovat pouze 1 selhání s velikostí skupiny n.

Při provozu XOR tolerance chyb 1 a účinnost úložiště je n-1/n, když je velikost skupiny n.

b) Reed-Solomonův algoritmus

Reed-Solomon řeší omezení provozu XOR. Využívá lineární algebru ke generování více paritních buněk. RS používá dva parametry k a m, k je počet datových buněk a m ​​je počet paritních buněk.

RS funguje tak, že násobí k datových buněk pomocí generátorové matice (G) a generuje rozšířené kódové slovo s k datovými buňkami a m paritními buňkami. Selhání úložiště lze obnovit násobením inverze matice generátoru s rozšířenými kódovými slovy, pokud je k dispozici k z k+m buněk.

„SReed, Solomon odolnost proti chybám je až m buněk a účinnost úložištěk/k+m, kde k jsou datové buňky a m jsou paritní buňky.“

Rozhodnutí o návrhu a architektura

EC striping má několik výhod:

  • Odstranění umožňuje online EC (okamžitý zápis dat ve formátu EC), čímž se vyhne fázi konverze a okamžitě šetří úložný prostor.
  • Distribuuje malý soubor do více Datanodes. Eliminuje svazky více souborů do jedné kódovací skupiny. Zjednodušuje tak operace se soubory, jako je mazání a migrace mezi federovanými jmennými prostory.
  • Pro lepší podporu malých souborů podporuje EC stripování. V budoucnu bude HDFS také podporovat souvislé rozložení EC.

EC přidal mnoho nových součástí:

  • Rozšíření NameNode (ECManager ) – Soubory Stripe HDFS se logicky skládají ze skupin bloků. Každý z nich obsahuje určitý počet vnitřních bloků. Aby se snížila spotřeba paměti Namenode z těchto dodatečných bloků, zavedl nový hierarchický protokol pojmenování bloků. EC odvozuje ID skupiny bloků z ID kteréhokoli z jejích interních bloků. To umožňuje správu na úrovni skupiny bloků spíše než na úrovni bloku.
  • Rozšíření klienta (EC Client) – Klient může provádět operace čtení a zápisu na více interních blocích ve skupině bloků paralelně.
  • DataNode Extensions (ECWorker)- DataNode spouští další pracovní úlohu EC pro obnovu kódovaných bloků, které selhaly při výmazu. NameNode tedy detekuje neúspěšné EC bloky, namenode dá příkaz k obnově datovým uzlům. Poté předá úlohu obnovy jako odezvu srdečního tepu.

Výhody kódování pro vymazání

  • Dostupnost dat při nižší kapacitě: HDFS  Mazací kódy umožňují dostupnost dat při nižší kapacitě. Zpočátku replikujte bloky ve třech replikách. Úložný prostor tří replik je tedy velký. Ale nyní v kódování výmazu ukládejte velká data jako paritní bit, takže ukládání snižuje prostor.
  • Výkon: Protože EC ukládá data jako parita namísto 3 replik, poskytuje lepší výkon.
  • Rychlé obnovení: Zjišťuje a obnovuje chyby bloků HDFS jak aktivně (na pozadí), tak pasivně (na cestě čtení).

Závěr

Na závěr můžeme říci, že kódování HDFS Erasure snížilo režii úložiště o 50 %. EC snižuje režii díky paritním bitům. Proto tyto funkce HDFS posílit funkčnost Apache Hadoop.

Máte-li jakýkoli dotaz nebo návrh týkající se kódování pro vymazání v HDFS, napište nám prosím komentář v části uvedené níže.


  1. $unionWith – MongoDB je ekvivalent UNION ALL

  2. Regex pro MongoDB ObjectID

  3. Najít pomocí _id nefunguje s agregací

  4. MongoDB $ cmp