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:

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
|
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.
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.
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 |
|
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.