HBase
 sql >> Baza danych >  >> NoSQL >> HBase

Kodowanie wymazywania HDFS w Big Data Hadoop

Ten blog jest poświęcony kodowaniu HDFS Erasure Coding. W tym blogu omówimy koncepcję Erasure Coding w Hadoop , kwestie starego schematu replikacji. Na tym blogu omówiono również dwa algorytmy kodowania wymazywania Hadoop, takie jak algorytm XOR , algorytm Reed-Solomon.

W końcu zobaczymy architekturę i zalety kodowania wymazywania w Hadoop HDFS.

Problem z replikacją starego schematu

Kodowanie wymazywania HDFS to nowa funkcja wprowadzona w celu zmniejszenia obciążenia pamięcią masową o około 50% w porównaniu z trzykrotną replikacją. Hadoop HDFS replikuje każdy blok 3 razy w różnych celach. Jest to bardzo prosta forma redundancji chroniąca przed awarią węzła danych.

Wraz z zaletami ma różne wady, że jest bardzo drogi. Replikacja 3 x ma 200% narzutu na przestrzeń dyskową i inne zasoby. Zestawy danych o niskiej aktywności we/wy, dodatkowe repliki są rzadko dostępne podczas normalnej pracy, ale nadal zużywają inne zasoby.

To jest powód, dla którego powstało kodowanie Hadoop Erasure. Zapewnia ten sam poziom odporności na awarie przy mniejszej ilości miejsca na przechowywanie i 50% narzutu na przechowywanie.

Porównując różne schematy przechowywania, należy wziąć pod uwagę:

  • Trwałość danych (liczba jednoczesnych tolerancji błędów)
  • Wydajność przechowywania

Tak więc w replikacji N-way istnieje tolerancja błędów N-1 przy wydajności pamięci masowej 1/n.

Co to jest kodowanie wymazywania HDFS w Hadoop?

Kodowanie wymazywania HDFS wykorzystuje RAID . RAID implementuje EC wykorzystuje stripping. Stripping logicznie przechowuje dane w postaci bloku. Następnie przechowuje te bloki na innym dysku. Oblicza parzystość dla każdego bloku i sklepu. To jest zakodowane. Poprzez parzystość naprawia błąd.

Dla tolerancji błędów EC rozszerza wiadomość o dane redundantne. Kodowanie HDFS Erasure będzie działać na komórkach danych o jednakowej wielkości. Kodek pobiera pewną liczbę komórek danych jako dane wejściowe. A następnie generuje komórki parzystości jako dane wyjściowe.

Cały ten proces nazywa się kodowaniem. Parzystość i komórka danych razem nazywane są grupą kodowania wymazywania. Proces, w którym utracona komórka danych rekonstruuje się na pozostałych komórkach, jest znany jako dekodowanie.

Dwa algorytmy dostępne dla HDFS Erasure Coding są następujące:

a) Algorytm XOR

Jest to prosta implementacja kodowania Hadoop Erasure.

Załóżmy, że komórki danych X, Y i Z są komórkami danych, a komórka parzystości to XOR tych trzech komórek danych x ⊕ y ⊕ z więc podczas operacji XOR generowany jest tylko jeden bit parzystości, a jeśli jakikolwiek bit zostanie utracony, może zostać odzyskany przez pozostałe komórki danych i bit parzystości.

Jest bardzo ograniczony, ponieważ generuje 1 bit parzystości, więc operacja XOR może tolerować tylko 1 niepowodzenie z n rozmiarem grupy.

W operacji XOR tolerancja błędów 1 i wydajność przechowywania wynosi n-1/n, gdy rozmiar grupy wynosi n.

b) Algorytm Reeda-Solomona

Reed-Solomon odnosi się do ograniczenia operacji XOR. Wykorzystuje algebrę liniową do generowania wielu komórek parzystości. RS używa dwóch parametrów k i m, k to liczba komórek danych, a m to liczba komórek parzystości.

RS działa przez pomnożenie k komórek danych przez macierz generatora (G) w celu wygenerowania rozszerzonego słowa kodowego z k komórek danych i m komórek parzystości. Awarię pamięci można naprawić przez mnożenie odwrotności macierzy generatora z rozszerzonymi słowami kodowymi, o ile dostępnych jest k z k+m komórek.

„Z Reedem, Salomonem, tolerancją błędów to maksymalnie m komórek i wydajność przechowywania k/k+m, gdzie k to komórki danych, a m to komórki z parzystością”.

Decyzja projektowa i architektura

Striping EC ma kilka zalet:

  • Rozbieranie umożliwia EC online (natychmiastowe zapisywanie danych w formacie EC), unikając fazy konwersji i natychmiast oszczędzając miejsce.
  • Rozprowadza mały plik do wielu Datanodów. Eliminuje pakowanie wielu plików w jedną grupę kodowania. W ten sposób upraszcza operacje na plikach, takie jak usuwanie i migracja między sfederowanymi przestrzeniami nazw.
  • Aby lepiej obsługiwać małe pliki, WE obsługuje stripping. W przyszłości HDFS będzie również obsługiwał ciągły układ EC.

EC dodało wiele nowych komponentów:

  • Rozszerzenia NameNode (ECManager) ) – Pliki Stripe HDFS są logicznie złożone z grup bloków. Każdy z nich zawiera określoną liczbę bloków wewnętrznych. Aby zmniejszyć zużycie pamięci przez Namenode z tych dodatkowych bloków, wprowadzono nowy hierarchiczny protokół nazewnictwa bloków. EC wyprowadza identyfikator grupy bloków z identyfikatora dowolnego z jej wewnętrznych bloków. Pozwala to na zarządzanie na poziomie grupy bloków, a nie bloku.
  • Rozszerzenia klienta (klient EC) – Klient może równolegle wykonywać operacje odczytu i zapisu na wielu wewnętrznych blokach w grupie bloków.
  • Rozszerzenia DataNode (ECWorker)- DataNode uruchamia dodatkowe zadanie robocze EC w celu odzyskania bloków zakodowanych w wyniku nieudanego wymazywania. Zatem NameNode wykrywa nieudane bloki EC, namenode przekazuje instrukcje odzyskiwania do węzłów danych. Następnie przekazuje zadanie odzyskiwania jako odpowiedź na bicie serca.

Zalety kodowania usuwania

  • Dostępność danych przy mniejszej pojemności: HDFS Kody kasujące umożliwiają dostępność danych przy mniejszej pojemności. Początkowo replikuj bloki w trzech replikach. Tak więc przestrzeń magazynowa trzech replik jest duża. Ale teraz w kodowaniu wymazywania przechowuj duże dane jako bit parzystości, więc przechowywanie zmniejsza miejsce.
  • Wydajność: Ponieważ EC przechowuje dane jako parzystość zamiast 3 replik, co zapewnia lepszą wydajność.
  • Szybkie odzyskiwanie: Wykrywa i naprawia błędy bloków HDFS zarówno aktywnie (w tle), jak i pasywnie (na ścieżce odczytu).

Wniosek

Podsumowując, możemy powiedzieć, że kodowanie HDFS Erasure zmniejszyło obciążenie pamięci masowej o 50%. EC zmniejsza narzut dzięki bitom parzystości. Dlatego te funkcje HDFS wzmocnić funkcjonalność Apache Hadoop.

Jeśli masz jakiekolwiek pytania lub sugestie związane z Erasure Coding w HDFS, prosimy o komentarz w sekcji podanej poniżej.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. więc HBase jest uszkodzony

  2. Wysoka dostępność (Multi-AZ) dla operacyjnej bazy danych CDP

  3. Co to jest automatyczne przełączanie awaryjne NameNode w Hadoop HDFS?

  4. Co to jest para klucz-wartość MapReduce w usłudze Hadoop?

  5. 6 najważniejszych funkcji HDFS — samouczek Hadoop HDFS