Architektura HBase, składniki, model danych i przypadki użycia

Spisie treści:

Anonim

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żda rodzina kolumn ma wiele numerów kolumn. Wartości kolumn przechowywane w pamięci dyskowej. Każda komórka tabeli ma własne metadane, takie jak sygnatura czasowa i inne informacje.

Mechanizm przechowywania w HBase

Przechodząc do HBase, poniżej przedstawiono kluczowe terminy reprezentujące schemat tabeli

  • Tabela : kolekcja obecnych wierszy.
  • Wiersz : 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 bazie danych HBase.

W tym samouczku - dowiesz się,

  • Mechanizm przechowywania w HBase
  • Model danych HBase
  • Architektura HBase i jej ważne komponenty
  • Wyjaśnienie odczytu i zapisu danych HBase
  • Przypadki użycia HBase
  • HBASE a HDFS

Magazyny zorientowane na kolumny a magazyny zorientowane na rzędy

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

Poniższa tabela przedstawia niektóre kluczowe różnice między tymi dwoma magazynami

Baza danych zorientowana na kolumny Baza danych zorientowana na wiersz
  • Jeśli chodzi o procesy i analizy, stosujemy to podejście. Takich jak przetwarzanie analityczne online i jego aplikacje.
  • Takie podejście stosuje się w procesach transakcyjnych online, takich jak bankowość i finanse.
  • Ilość danych, które można przechowywać w tym modelu jest bardzo duża, jak na petabajty
  • Jest przeznaczony dla niewielkiej liczby wierszy i kolumn.

Model danych HBase

Model danych HBase to zestaw składników, który składa 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 stołów
  • 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 obecna w HBase oznacza atrybut odpowiadający obiektowi

Architektura HBase i jej ważne komponenty

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

Diagram architektury HBase

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

  • HMaster
  • HRegionserver
  • HRegions
  • Zookeeper
  • HDFS

HMaster:

HMaster w HBase to implementacja serwera Master w architekturze HBase. Działa jako agent monitorujący do monitorowania wszystkich instancji Region Server obecnych w klastrze i działa jako interfejs dla wszystkich zmian metadanych. W rozproszonym środowisku klastra Master działa w NameNode. Master prowadzi kilka wątków w tle.

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

  • Odgrywa istotną rolę w zakresie wydajności i utrzymania węzłów w klastrze.
  • HMaster zapewnia wydajność administracyjną i dystrybuuje usługi do różnych serwerów regionalnych.
  • HMaster przypisuje regiony do serwerów regionalnych.
  • HMaster ma takie funkcje, jak kontrolowanie równoważenia obciążenia i przełączanie awaryjne w celu obsługi obciążenia węzłów obecnych w klastrze.
  • Gdy klient chce zmienić dowolny schemat i dowolne operacje na metadanych, HMaster przejmuje odpowiedzialność za te operacje.

Niektóre metody ujawniane przez HMaster Interface to głównie metody zorientowane na metadane.

  • Tabela (createTable, removeTable, 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 regionalnych i z kolei sprawdza stan kondycji serwerów regionalnych.

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

Serwery regionów HBase:

Gdy serwer HBase Region Server odbiera żądania zapisu i odczytu od klienta, przypisuje żądanie do określonego regionu, w którym znajduje się rzeczywista rodzina kolumn. Klient ma jednak możliwość bezpośredniego kontaktu z serwerami HRegion, nie ma potrzeby posiadania przez HMaster obowiązkowej zgody klienta na komunikację z serwerami HRegion. Klient wymaga pomocy HMaster, gdy wymagane są operacje związane z metadanymi i zmianami schematu.

HRegionServer to implementacja serwera regionu. Odpowiada za obsługę regionów lub danych znajdujących się w rozproszonym klastrze i zarządzanie nimi. Serwery regionu działają na węzłach danych obecnych w klastrze Hadoop.

HMaster może nawiązać kontakt z wieloma serwerami HRegion i wykonuje 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:

Regiony HR są podstawowymi elementami budulcowymi klastra HBase, który obejmuje dystrybucję tabel i składa się z rodzin kolumn. Zawiera wiele sklepów, po jednym dla każdej rodziny kolumn. Składa się głównie z dwóch komponentów, którymi są Memstore i Hfile.

ZooKeeper:

HBase Zookeeper to scentralizowany serwer monitorowania, który przechowuje informacje o konfiguracji i zapewnia rozproszoną synchronizację. Rozproszona synchronizacja ma na celu uzyskanie dostępu do aplikacji rozproszonych działających w klastrze z odpowiedzialnością za zapewnienie 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, który zapewnia wiele ważnych usług.

Usługi świadczone przez ZooKeeper

  • Zachowuje informacje o konfiguracji
  • Zapewnia rozproszoną synchronizację
  • Nawiązanie komunikacji klienta z serwerami regionalnymi
  • Zapewnia węzły efemeryczne, które reprezentują różne serwery regionu
  • Użyteczność serwerów głównych w węzłach efemerycznych do wykrywania dostępnych serwerów w klastrze
  • Śledzenie awarii serwera i partycji sieciowych

Węzły Master i HBase slave (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.

Podczas awarii węzłów obecnych w klastrze HBase ZKquoram wyzwoli komunikaty o błędach i rozpocznie naprawę uszkodzonych węzłów.

HDFS:

HDFS to rozproszony system plików Hadoop, ponieważ nazwa wskazuje, że zapewnia rozproszone środowisko do przechowywania i jest to system plików zaprojektowany w taki sposób, aby działał na zwykłym sprzęcie. Przechowuje każdy plik w wielu blokach i aby zachować odporność na uszkodzenia, bloki są replikowane w klastrze Hadoop.

HDFS zapewnia wysoki stopień odporności na awarie i działa na tanim sprzęcie. Dodając węzły do ​​klastra i wykonując przetwarzanie i przechowywanie przy użyciu taniego, towarowego sprzętu, da to 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 gdy którykolwiek węzeł ulegnie awarii, dane nie zostaną utracone, będzie miał odpowiedni mechanizm odzyskiwania kopii zapasowej.

HDFS kontaktuje się ze składnikami HBase i przechowuje duże ilości danych w sposób rozproszony.

Wyjaśnienie odczytu i zapisu danych HBase

Operacje odczytu i zapisu z klienta do pliku H można przedstawić na poniższym diagramie.

Krok 1) Klient chce zapisywać dane i najpierw komunikuje się z serwerem Regions, a następnie z regionami

Krok 2) Regiony kontaktujące się z memstore w celu przechowywania skojarzonego z rodziną kolumn

Krok 3) Najpierw dane przechowuje się w Memstore, gdzie dane są sortowane, a następnie przesyłane do HFile. Głównym powodem korzystania z Memstore jest przechowywanie danych w rozproszonym systemie plików opartym na kluczu wiersza. Memstore zostanie umieszczony w głównej pamięci serwera Region, podczas gdy pliki 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 zażądać danych.

Krok 6) Klient zwraca się do HFiles w celu pobrania danych. Dane są pobierane i odzyskiwane przez Klienta.

Memstore przechowuje modyfikacje w pamięci sklepu. 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 Regiony HR dla prezentowanych tabel
Sklep Przechowuje według ColumnFamily dla każdego regionu tabeli
Memstore
  • Memstore dla każdego sklepu dla każdego regionu tabeli
  • Sortuje dane przed przekazaniem ich do HFiles
  • Wydajność zapisu i odczytu wzrośnie z powodu sortowania
StoreFile StoreFiles dla każdego sklepu dla każdego regionu tabeli
Blok Bloki obecne w StoreFiles

Przypadki użycia HBase

Poniżej znajdują się przykłady przypadków użycia HBase ze szczegółowym wyjaśnieniem rozwiązania, które zapewnia, dla różnych problemów technicznych

Stwierdzenie problemu Rozwiązanie
Branża telekomunikacyjna stoi przed następującymi wyzwaniami technicznymi
  • Przechowywanie miliardów rekordów dziennika CDR (szczegółowe nagrywanie rozmów) wygenerowanych przez domenę telekomunikacyjną
  • Zapewnienie dostępu w czasie rzeczywistym do dzienników CDR i informacji rozliczeniowych klientów
  • Zapewnij ekonomiczne rozwiązanie w porównaniu z tradycyjnymi systemami 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. Najlepszym rozwiązaniem do obsługi dużej ilości danych w tym przypadku użycia jest HBase. HBase wykonuje szybkie zapytania i wyświetla rekordy.
Banking generuje miliony płyt na codzień. Oprócz tego branża bankowa potrzebuje również rozwiązania analitycznego, które może wykryć oszustwa w transakcjach pieniężnych Idealnym rozwiązaniem do przechowywania, przetwarzania i aktualizowania ogromnych ilości danych oraz przeprowadzania analiz jest - HBase zintegrowana z kilkoma komponentami ekosystemu Hadoop.

Poza tym, można użyć HBase

  • Zawsze, gdy istnieje potrzeba pisania ciężkich aplikacji.
  • Wykonywanie analizy dzienników online i generowanie raportów zgodności.

HBase a HDFS

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

HBASE

HDFS

  • Operacje o niskim opóźnieniu
  • Operacje o dużym opóźnieniu
  • Losowo czyta i pisze
  • Napisz raz Przeczytaj wiele razy
  • Dostęp za pośrednictwem poleceń powłoki, interfejsu API klienta w języku Java, REST, Avro lub Thrift
  • Dostęp głównie poprzez zadania MR (Map Reduce)
  • Można wykonywać zarówno przechowywanie, jak i przetwarzanie
  • Dotyczy tylko magazynów

Niektóre typowe aplikacje przemysłowe IT używają operacji HBase wraz z Hadoop. Aplikacje obejmują dane giełdowe, operacje na danych bankowych online i przetwarzanie Hbase jest najlepiej dopasowaną metodą rozwiązania.

Podsumowanie

Hbase jest jedną z rozproszonych baz danych NoSql zorientowanych na kolumny, dostępnych w fundacji Apache. HBase zapewnia większą wydajność pobierania mniejszej liczby rekordów niż Hadoop lub Hive. Wyszukiwanie dowolnej wartości wejściowej jest bardzo łatwe, ponieważ obsługuje indeksowanie, transakcje i aktualizację.

Możemy przeprowadzać analizy online w czasie rzeczywistym za pomocą Hbase zintegrowanego z ekosystemem Hadoop. Ma automatyczne i konfigurowalne fragmentowanie dla zestawów danych lub tabel i zapewnia spokojne interfejsy API do wykonywania zadań MapReduce.