HBase Architecture: przypadki użycia, komponenty i model danych

HBase Architecture i jej ważne elementy

Architektura HBase składa się głównie z czterech komponentów

  • Mistrz
  • HRregionserver
  • HRRegiony
  • Heca w zoo
  • HDFS

Poniżej znajduje się szczegółowa architektura HBase wraz z komponentami:

HBase Architektura
HBase ArchiSchemat tecture

Mistrz

Mistrz w HBase jest implementacją serwera Master w architekturze HBase. Działa jako agent monitorujący, aby monitorować wszystkie instancje Region Server obecne w klastrze i działa jako interfejs dla wszystkich zmian metadanych. W rozproszonym środowisku klastra Master działa na NameNode. Master uruchamia kilka wątków w tle.

Poniżej przedstawiono ważne role pełnione przez HMaster w HBase.

  • Odgrywa kluczową rolę w zakresie wydajności i utrzymania węzłów w klastrze.
  • HMaster zapewnia wydajność administracyjną i dystrybuuje usługi do serwerów w różnych regionach.
  • HMaster przypisuje regiony do serwerów regionów.
  • HMaster oferuje funkcje takie jak kontrola równoważenia obciążenia i przełączania awaryjnego, aby poradzić sobie z obciążeniem węzłów znajdujących się w klastrze.
  • Gdy klient chce zmienić dowolny schemat lub operację na metadanych, HMaster przejmuje odpowiedzialność za te operacje.

Niektóre metody udostępniane przez interfejs HMaster to przede wszystkim metody zorientowane na metadane.

  • Tabela (utwórz tabelę, usuń tabelę, włącz, wyłącz)
  • ColumnFamily (dodaj kolumnę, zmodyfikuj kolumnę)
  • Region (przenieś, przypisz)

Klient komunikuje się dwukierunkowo zarówno z HMaster, jak i ZooKeeper. W przypadku operacji odczytu i zapisu kontaktuje się bezpośrednio z serwerami HRegion. HMaster przypisuje regiony do serwerów regionów i z kolei sprawdza stan zdrowia serwerów regionów.

W całej architekturze mamy wiele serwerów regionalnych. Hlog jest obecny na serwerach regionalnych, które będą przechowywać wszystkie pliki dziennika.

Serwery regionu HBase

Gdy HBase Region Server otrzymuje żądania zapisu i odczytu od klienta, przypisuje żądanie do określonego regionu, w którym znajduje się rzeczywista rodzina kolumn. Jednak klient może bezpośrednio kontaktować się z serwerami HRegion, nie ma potrzeby obowiązkowego zezwolenia HMaster dla klienta w odniesieniu do komunikacji z serwerami HRegion. Klient wymaga pomocy HMaster, gdy wymagane są operacje związane ze zmianami metadanych i schematu.

HRegionServer to implementacja Region Server. Jest ona odpowiedzialna za obsługę i zarządzanie regionami lub danymi, które są obecne w rozproszonym klastrze. Serwery regionów działają na węzłach danych obecnych w klastrze Hadoop.

HMaster może nawiązać kontakt z wieloma serwerami HRegion i wykonywać następujące funkcje.

  • Hostowanie i zarządzanie regionami
  • Automatyczne dzielenie regionów
  • Obsługa żądań odczytu i zapisu
  • Bezpośrednia komunikacja z klientem

Regiony HBase

HRegions to podstawowe elementy składowe klastra HBase, które składają się z dystrybucji tabel i składają się z rodzin kolumn. Zawiera wiele magazynów, po jednym dla każdej rodziny kolumn. Składa się głównie z dwóch komponentów, którymi są Memstore i Hfile.

Opiekun zoo

HBase Zookeeper to scentralizowany serwer monitorujący, który utrzymuje informacje o konfiguracji i zapewnia rozproszoną synchronizację. Rozproszona synchronizacja ma na celu dostęp do rozproszonych aplikacji działających w klastrze z odpowiedzialnością za świadczenie usług koordynacji między węzłami. Jeśli klient chce komunikować się z regionami, klient serwera musi najpierw skontaktować się z ZooKeeper.

Jest to projekt typu open source i zapewnia wiele ważnych usług.

Usługi świadczone przez Opiekun zoo

  • Przechowuje informacje konfiguracyjne
  • Zapewnia rozproszoną synchronizację
  • Nawiązanie komunikacji klienta z serwerami regionalnymi
  • Zapewnia efemeryczne węzły, dla których reprezentują serwery z różnych regionów
  • Przydatność serwerów głównych węzłów efemerycznych do wykrywania dostępnych serwerów w klastrze
  • Aby śledzić awarie serwera i partycje sieciowe

Węzły główne i podrzędne HBase (serwery regionalne) zarejestrowały się w ZooKeeper. Klient potrzebuje dostępu do konfiguracji kworum ZK(zookeeper), aby połączyć się z serwerami głównymi i regionalnymi.

W przypadku awarii węzłów obecnych w klastrze HBase, ZKquoram wygeneruje komunikaty o błędach i rozpocznie naprawę uszkodzonych węzłów.

HDFS

HDFS to dystrybucja Hadoopa System plików, jak sama nazwa wskazuje, zapewnia rozproszone środowisko do przechowywania i jest systemem plików zaprojektowanym w taki sposób, aby działał na sprzęcie powszechnego użytku. Przechowuje każdy plik w wielu blokach, a aby zachować tolerancję błędów, bloki są replikowane w klastrze Hadoop.

HDFS zapewnia wysoki stopień tolerancji błędów i działa na tanim sprzęcie powszechnego użytku. Dodając węzły do ​​klastra i wykonując przetwarzanie i przechowywanie przy użyciu taniego sprzętu powszechnego użytku, zapewni klientowi lepsze wyniki w porównaniu z istniejącym.

Tutaj dane przechowywane w każdym bloku są replikowane do 3 węzłów, w przypadku awarii dowolnego węzła nie będzie utraty danych, będzie on miał odpowiedni mechanizm odzyskiwania kopii zapasowych.

HDFS nawiązuje kontakt z komponentami HBase i przechowuje duże ilości danych w sposób rozproszony.

Model danych HBase

Model danych HBase to zestaw komponentów składający się z tabel, wierszy, rodzin kolumn, komórek, kolumn i wersji. Tabele HBase zawierają rodziny kolumn i wiersze z elementami zdefiniowanymi jako klucze podstawowe. Kolumna w tabeli modelu danych HBase reprezentuje atrybuty obiektów.

Model danych HBase składa się z następujących elementów:

  • Zestaw tabel
  • Każda tabela z rodzinami kolumn i wierszami
  • Każda tabela musi mieć element zdefiniowany jako klucz podstawowy.
  • Klucz wiersza działa jako klucz podstawowy w HBase.
  • Każdy dostęp do tabel HBase używa tego klucza podstawowego
  • Każda kolumna występująca w HBase oznacza atrybut odpowiadający obiektowi

Przypadki użycia HBase

Poniżej znajdują się przykłady przypadków użycia HBase wraz ze szczegółowym wyjaśnieniem rozwiązań, jakie zapewnia w przypadku różnych problemów technicznych

Problem Statement Rozwiązanie
Przemysł telekomunikacyjny stoi przed następującymi wyzwaniami technicznymi

  • Przechowywanie miliardów rekordów dziennika CDR (szczegółowe rejestrowanie połączeń) generowanych przez domenę telekomunikacyjną
  • Zapewnianie dostępu w czasie rzeczywistym do rejestrów CDR i informacji rozliczeniowych klientów
  • Zapewnij ekonomiczne rozwiązanie w porównaniu do tradycyjnych systemów baz danych
HBase służy do przechowywania miliardów wierszy szczegółowych rekordów połączeń. Jeśli do istniejącej bazy danych RDBMS dodawane jest 20 TB danych miesięcznie, wydajność ulegnie pogorszeniu. Aby obsłużyć dużą ilość danych w tym przypadku użycia, HBase jest najlepszym rozwiązaniem. HBase wykonuje szybkie zapytania i wyświetla rekordy.
Kurs Sektor bankowy generuje codziennie miliony rekordów. Oprócz tego branża bankowa potrzebuje również rozwiązania analitycznego, które będzie w stanie wykryć oszustwa w transakcjach pieniężnych Aby przechowywać, przetwarzać i aktualizować ogromne ilości danych oraz wykonywać analizy, idealnym rozwiązaniem jest HBase zintegrowany z kilkoma komponentami ekosystemu Hadoop.

Poza tym można użyć HBase

  • Zawsze, gdy istnieje potrzeba napisania ciężkich aplikacji.
  • Przeprowadzanie analizy dzienników online i generowanie raportów dotyczących zgodności.

Mechanizm przechowywania w HBase

HBase to baza danych zorientowana na kolumny, a dane są przechowywane w tabelach. Tabele są sortowane według RowId. Jak pokazano poniżej, HBase ma RowId, który jest zbiorem kilku rodzin kolumn obecnych w tabeli.

Rodziny kolumn obecne w schemacie to pary klucz-wartość. Jeśli przyjrzymy się szczegółowo każdej rodzinie kolumn mającej wiele liczb kolumn. Wartości kolumn są przechowywane w pamięci dyskowej. Każda komórka tabeli ma własne metadane, takie jak znacznik czasu i inne informacje.

Mechanizm przechowywania w HBase
Mechanizm przechowywania w HBase

W odniesieniu do HBase, poniżej przedstawiono kluczowe terminy reprezentujące schemat tabeli

  • Stół: Obecny zbiór wierszy.
  • Rząd: Zbiór rodzin kolumn.
  • Rodzina kolumn: Zbiór kolumn.
  • Kolumna: Zbiór par klucz-wartość.
  • Przestrzeń nazw: Logiczne grupowanie tabel.
  • Komórka: Krotka {wiersz, kolumna, wersja} dokładnie określa definicję komórki w HBase.

Magazyny zorientowane kolumnowo i rzędowo

Magazyny zorientowane na kolumny i rzędy różnią się mechanizmem przechowywania. Jak wszyscy wiemy, tradycyjne modele relacyjne przechowują dane w formacie wierszowym, podobnie jak w przypadku wierszy danych. Magazyny zorientowane kolumnowo przechowują tabele danych w postaci kolumn i rodzin kolumn.

Poniższa tabela przedstawia kilka kluczowych różnic pomiędzy tymi dwoma magazynami

Baza danych zorientowana kolumnowo Baza danych zorientowana na wiersze
Jeśli chodzi o proces i analitykę, stosujemy takie podejście. Jak na przykład Przetwarzanie analityczne online i to zastosowania. Proces transakcyjny online takie jak bankowość i finanse, korzystają z tego podejścia.
Ilość danych, jaką można przechowywać w tym modelu, jest bardzo duża, jeśli chodzi o petabajty Jest przeznaczony dla małej liczby wierszy i kolumn.

Wyjaśnienie odczytu i zapisu danych HBase

Operacje odczytu i zapisu z Klienta do pliku Hfile można zobaczyć na poniższym diagramie.

HBase Odczyt i zapis danych

Krok 1) Klient chce zapisać dane i najpierw komunikuje się z serwerem Regionów, a następnie z regionami

Krok 2) Regiony kontaktujące się z magazynem pamięci w celu przechowywania powiązanych z rodziną kolumn

Krok 3) Najpierw dane są zapisywane w Memstore, gdzie są sortowane, a następnie przesyłane do HFile. Głównym powodem używania Memstore jest przechowywanie danych w rozproszonym systemie plików opartym na kluczu wiersza. Memstore zostanie umieszczony w pamięci głównej serwera Region, podczas gdy HFiles zostaną zapisane w HDFS.

Krok 4) Klient chce odczytać dane z Regionów

Krok 5) Z kolei Klient może mieć bezpośredni dostęp do magazynu Mem i może żądać danych.

Krok 6) Klient podchodzi do HFiles, aby uzyskać dane. Dane są pobierane i odzyskiwane przez Klienta.

Memstore przechowuje modyfikacje sklepu w pamięci. Hierarchia obiektów w regionach HBase jest pokazana od góry do dołu w poniższej tabeli.

Stół Tabela HBase obecna w klastrze HBase
Region HRegiony dla prezentowanych tabel
Sklep Przechowuje według ColumnFamily dla każdego regionu tabeli
Magazyn pamięci
  • Magazyn pamięci dla każdego sklepu dla każdego regionu dla tabeli
  • Sortuje dane przed załadowaniem do HFiles
  • Wydajność zapisu i odczytu wzrośnie z powodu sortowania
Plik sklepu StoreFiles dla każdego sklepu dla każdego regionu dla tabeli
Blokować Bloki obecne w StoreFiles

HBase kontra HDFS

HBase działa na platformie HDFS i HadoopNiektóre kluczowe różnice między HDFS i HBase dotyczą operacji na danych i przetwarzania.

HBAZA HDFS
Operacje o niskim opóźnieniu Operacje o dużym opóźnieniu
Losowo czyta i pisze Napisz raz. Czytaj wiele razy
Dostęp przez polecenia powłoki, API klienta w Java, REST, Avro lub Thrift Dostęp możliwy głównie za pośrednictwem zadań MR (Map Reduce)
Można wykonać zarówno przechowywanie, jak i przetwarzanie Dotyczy tylko powierzchni magazynowych

Niektóre typowe aplikacje przemysłowe IT wykorzystują operacje HBase wraz z Hadoop. Aplikacje obejmują dane giełdowe, operacje danych bankowości internetowej i przetwarzanie HBase jest najlepszą metodą rozwiązania.

Podsumowanie

  • Komponenty architektury HBase: HMaster, HRegion Server, HRegions, ZooKeeper, HDFS
  • HMaster w HBase jest implementacją serwera głównego w architekturze HBase.
  • Gdy serwer regionu HBase otrzymuje od klienta żądania zapisu i odczytu, przypisuje żądanie do określonego regionu, w którym znajduje się rzeczywista rodzina kolumn
  • Regiony HR to podstawowe elementy składowe klastra HBase, które składają się z rozkładu tabel i składają się z rodzin kolumn.
  • HBase Zookeeper to scentralizowany serwer monitorujący, który przechowuje informacje o konfiguracji i umożliwia rozproszoną synchronizację.
  • HDFS zapewnia wysoki stopień odporności na błędy i działa na tanim sprzęcie.
  • Model danych HBase to zestaw komponentów składający się z tabel, wierszy, rodzin kolumn, komórek, kolumn i wersji.
  • Magazyny zorientowane na kolumny i rzędy różnią się mechanizmem przechowywania.