Apache HBase to rozproszona, nierelacyjna baza danych typu open source, wzorowana na Bigtable firmy Google i napisana w języku Java. Zapewnia możliwości podobne do Bigtable w połączeniu z Hadoop i HDFS (Hadoop Distributed Filesystem), tj. Zapewnia odporny na błędy sposób przechowywania dużych ilości rzadkich danych, które są powszechne w wielu przypadkach użycia dużych zbiorów danych. HBase służy do dostępu w czasie rzeczywistym do odczytu / zapisu do Big Data.
Architektura HBase Storage składa się z wielu komponentów. Przyjrzyjmy się funkcjom tych komponentów i dowiedzmy się, jak zapisywane są dane.
HFiles:
HFiles stanowi niski poziom architektury HBase. HFiles to pliki pamięci utworzone w celu szybkiego i wydajnego przechowywania danych HBase.
HMaster:
HMaster jest odpowiedzialny za przypisanie regionów do każdego HRegionServer po uruchomieniu HBase. Jest odpowiedzialny za zarządzanie wszystkim, co dotyczy wierszy, tabel i ich działań koordynacyjnych. Hmaster ma również szczegóły metadanych.
składniki HBase:
HBase zawiera następujące składniki:
- Tabela - obejmuje regiony
- Region - zakres wierszy przechowywanych razem
- Region Servers - obsługuje jeden lub więcej regionów
- Master Server - Daemon jest odpowiedzialny za zarządzanie klastrem HBase
HBase przechowuje dane bezpośrednio w HDFS i w dużym stopniu opiera się na wysokiej dostępności i odporności na błędy HDFS.
Architektura pamięci masowej HBase:
Ogólny przepływ jest taki, że Klient najpierw kontaktuje się z Zookeeper, aby znaleźć określony klucz wiersza. Odbywa się to poprzez pobieranie nazwy serwera z Zookeeper. Dzięki tym informacjom może teraz wysłać zapytanie do tego serwera, aby uzyskać serwer, który przechowuje metatabelę. Oba te szczegóły są buforowane i sprawdzane tylko raz. Wreszcie, może wysłać zapytanie do serwera metaserwera i pobrać serwer zawierający wiersz, którego szuka klient.
Gdy wie, w jakim regionie znajduje się wiersz, buforuje również te informacje i kontaktuje się bezpośrednio z HRegionServer. Z biegiem czasu Klient ma więc pełne informacje o tym, skąd pobierać wiersze, bez konieczności ponownego wysyłania zapytań do serwera metaserwera. Po otwarciu HRegion ustawia instancję Store dla każdej HColumnFamily dla każdej tabeli. Dane są zapisywane, gdy Klient wysyła żądanie do HRegionServer, który dostarcza szczegółowe informacje do pasującej instancji HRegion. Pierwszym krokiem jest to, że musimy zdecydować, czy dane powinny zostać najpierw zapisane w „Write-Ahead-Log” (WAL) reprezentowanym przez klasę HLog. Decyzja jest podejmowana na podstawie flagi ustawionej przez klienta.
Po zapisaniu danych do WAL są one umieszczane w MemStore. W tym samym czasie Memstore jest sprawdzane, czy jest zapełniony i w takim przypadku wymagane jest przepłukanie dysku. Następnie dane są zapisywane do HFile.
jak dodać java do ścieżki
Masz do nas pytanie? Wspomnij o nich w sekcji komentarzy, a my skontaktujemy się z Tobą.
powiązane posty