HBase Architecture: Use Cases, Components & Data Model
⚡ Chytré shrnutí
Architektura HBase je postavena ze čtyř koordinujících se komponent – HMaster, Region Servers, ZooKeeper a HDFS – které ukládají data ve sloupcově orientovaném modelu, rozdělují je do regionů a obsluhují náhodné čtení a zápisy s nízkou latencí.
Apache HBase je distribuovaná, sloupcově orientovaná NoSQL databáze, která běží na Hadoop a distribuovaný souborový systém Hadoop (HDFS). Jeho architektura kombinuje koordinující master, regionální servery a ZooKeeper pro ukládání velmi velkých tabulek a obsluhu rychlých náhodných čtení a zápisů.
HBase Architektura a její důležité součásti
Architektura HBase má následující hlavní komponenty:
- HMaster
- HRegionServer
- HRregiony
- ZooKeeper
- HDFS
Níže je uvedena podrobná architektura HBase s jejími komponentami, jak je znázorněno na diagramu.
HMaster
HMaster v HBase je implementace hlavního serveru v architektuře HBase. Funguje jako monitorovací agent pro monitorování všech instancí Region Serveru přítomných v clusteru a funguje jako rozhraní pro všechny změny metadat. V distribuovaném prostředí clusteru běží hlavní server na uzlu NameNode. Hlavní server běží několik vláken na pozadí.
Následují důležité role, které HMaster v HBase plní:
- Hraje zásadní roli z hlediska výkonu a údržby uzlů v clusteru.
- HMaster poskytuje výkon správce a distribuuje služby na servery různých oblastí.
- HMaster přiřazuje regiony serverům regionů.
- HMaster řídí vyvažování zátěže a failover pro zpracování zátěže uzlů přítomných v clusteru.
- Pokud chce klient změnit jakékoli schéma nebo operaci s metadaty, HMaster přebírá za tyto operace odpovědnost.
Některé z metod zpřístupněných rozhraním HMaster jsou primárně metody orientované na metadata:
- Tabulka (createTable, removeTable, povolit, zakázat)
- ColumnFamily (přidat sloupec, upravit sloupec)
- Oblast (přesunout, přiřadit)
Klient komunikuje obousměrně s HMaster i ZooKeeperem. Pro operace čtení a zápisu přímo kontaktuje servery HRegion. HMaster přiřazuje regiony serverům regionů a následně kontroluje jejich stav.
V celé architektuře máme více regionálních serverů. Na regionálních serverech je přítomen HLog, který ukládá všechny soubory protokolu.
Servery regionu HBase
Když server HBase Region přijme od klienta požadavky na zápis a čtení, přiřadí tyto požadavky konkrétní oblasti, kde se nachází skutečná rodina sloupců. Klient může přímo kontaktovat servery HRegion; pro komunikaci se servery HRegion není nutné povinné oprávnění HMaster. Klient potřebuje pomoc HMaster pouze v případě, že jsou vyžadovány operace související s metadaty a změnami schématu.
HRegionServer je implementace Region Serveru. Je zodpovědný za obsluhu a správu regionů neboli dat, která se nacházejí v distribuovaném clusteru. Regionální servery běží na datových uzlech v clusteru Hadoop.
HMaster se může spojit s více servery HRegion a provádí následující funkce:
- Hosting a správa regionů
- Automatické rozdělení regionů
- Zpracování požadavků na čtení a zápis
- Přímá komunikace s klientem
Oblasti HBase
HRegiony jsou základními stavebními prvky clusteru HBase. Skládají se z distribuce tabulek a skládají se z rodin sloupců. Region obsahuje více úložišť, jedno pro každou rodinu sloupců. Skládá se hlavně ze dvou komponent: MemStore a HFile.
ZooKeeper
HBase ZooKeeper je centralizovaný monitorovací server, který uchovává konfigurační informace a poskytuje distribuovanou synchronizaci. Distribuovaná synchronizace koordinuje distribuované aplikace běžící v clusteru a poskytuje koordinační služby mezi uzly. Pokud chce klient komunikovat s regiony, musí se nejprve obrátit na ZooKeeper.
Je to open source projekt a poskytuje mnoho důležitých služeb.
Služby poskytované společností ZooKeeper:
- Uchovává informace o konfiguraci
- Poskytuje distribuovanou synchronizaci
- Navazuje komunikaci klienta s regionálními servery
- Poskytuje dočasné uzly, které reprezentují servery z různých regionů.
- Umožňuje hlavnímu serveru používat tyto dočasné uzly k vyhledávání dostupných serverů v clusteru.
- TracSelhání serveru ks a síťové oddíly
Hlavní a podřízené uzly HBase (regionální servery) se registrují u ZooKeeperu. Klient potřebuje přístup ke konfiguraci kvora ZooKeeperu (ZK), aby se mohl připojit k hlavnímu a regionálním serverům.
Během selhání uzlů přítomných v clusteru HBase kvorum ZooKeeperu spustí chybové zprávy a začne opravovat vadné uzly.
HDFS
HDFS je distribuovaný systém Hadoop. File SystemJak název napovídá, poskytuje distribuované prostředí pro ukládání dat a jedná se o souborový systém navržený pro běh na běžném hardwaru. Každý soubor ukládá do více bloků a pro zachování odolnosti proti chybám jsou bloky replikovány napříč clusterem Hadoop.
HDFS poskytuje vysoký stupeň odolnosti proti chybám a běží na levném běžném hardwaru. Přidáním uzlů do clusteru a prováděním zpracování a ukládání pomocí levného běžného hardwaru poskytuje klientovi lepší výsledky ve srovnání se stávajícím nastavením.
Data uložená v každém bloku jsou zde replikována napříč 3 uzly, takže pokud kterýkoli uzel selže, nedojde ke ztrátě dat; uzel má řádný mechanismus zálohování a obnovy.
HDFS se dostává do kontaktu s komponentami HBase a distribuovaným způsobem ukládá velké množství dat.
Datový model HBase
Datový model HBase je sada komponent, která se skládá z tabulek, řádků, rodin sloupců, buněk, sloupců a verzí. Tabulky HBase obsahují rodiny sloupců a řádky s prvky definovanými jako primární klíče. Sloupec v tabulce datového modelu HBase představuje atribut objektů.
Datový model HBase se skládá z následujících prvků:
- Sada stolů
- Každá tabulka s rodinami sloupců a řádky
- Každá tabulka musí mít prvek definovaný jako primární klíč.
- Klíč řádku funguje v HBase jako primární klíč.
- Jakýkoli přístup k tabulkám HBase používá tento primární klíč.
- Každý sloupec v HBase označuje atribut odpovídající objektu.
Případy použití HBase
Následují příklady použití HBase s podrobným vysvětlením řešení, které HBase poskytuje pro různé technické problémy.
| Problémové prohlášení | Řešení |
| Telekomunikační průmysl čelí následujícím technickým výzvám: ukládání miliard záznamů o hovorech (CDR) generovaných telekomunikační doménou; poskytování přístupu k protokolům CDR a fakturačním informacím zákazníků v reálném čase; a poskytování cenově efektivního řešení ve srovnání s tradičními databázovými systémy. | HBase se používá k ukládání miliard řádků podrobných záznamů hovorů. Pokud se do stávající databáze RDBMS přidá 20 TB dat za měsíc, výkon se zhorší. Pro zpracování velkého množství dat v tomto případě použití je HBase nejlepším řešením. HBase provádí rychlé dotazování a zobrazuje záznamy. |
| Bankovní sektor generuje denně miliony záznamů. Kromě toho bankovní sektor potřebuje také analytické řešení, které dokáže odhalit podvody v peněžních transakcích. | Pro ukládání, zpracování a aktualizaci obrovského množství dat a provádění analytických analýz je ideálním řešením HBase integrovaný s několika komponentami ekosystému Hadoop. |
Kromě toho lze HBase použít:
- Kdykoli je potřeba aplikací s velkým objemem zápisu.
- Pro provádění online analýzy protokolů a generování zpráv o shodě s předpisy.
Úložný mechanismus v HBase
HBase je sloupcově orientovaná databáze a data jsou uložena v tabulkách. Tabulky jsou seřazeny podle RowId. Jak je znázorněno níže, HBase má RowId, což je kolekce několika rodin sloupců, které jsou v tabulce přítomny.
Rodiny sloupců, které jsou ve schématu přítomny, jsou páry klíč-hodnota. Pokud se podíváme blíže, každá rodina sloupců má více sloupců. Hodnoty sloupců jsou uloženy v paměti disku. Každá buňka tabulky má svá vlastní metadata, jako je časové razítko a další informace.
Níže je znázorněno sloupcově orientované rozložení úložiště s klíči řádků, rodinami sloupců a buňkami.
Následují klíčové termíny reprezentující schéma tabulky HBase:
- Tabulka: Přítomna kolekce řádků.
- Řádek: Kolekce rodin sloupců.
- Rodina sloupců: Kolekce sloupců.
- Sloupec: Kolekce párů klíč-hodnota.
- Jmenný prostor: Logická skupinaping stolů.
- Buňka: N-tice {řádek, sloupec, verze}, která přesně specifikuje definici buňky v HBase.
Úložiště orientovaná na sloupce vs. na řádky
Sloupcově orientované a řádkově orientované úložiště se liší v mechanismu ukládání. Jak všichni víme, tradiční relační modely ukládají data v řádkovém formátu, tedy v podobě řádků dat. Sloupcově orientovaná úložiště ukládají datové tabulky v podobě sloupců a rodin sloupců.
Následující tabulka uvádí některé klíčové rozdíly mezi těmito dvěma úložišti.
| Databáze orientovaná na sloupce | Řádkově orientovaná databáze |
| Používá se, když situace zahrnuje zpracování a analytiku, jako je online analytické zpracování a jeho aplikace. | Online transakční zpracování, jako například bankovnictví a finance, využívá tento přístup. |
| Množství dat, které lze v tomto modelu uložit, je velmi velké, vyjádřeno v petabajtech. | Je určen pro malý počet řádků a sloupců. |
Vysvětlení dat pro čtení a zápis HBase
Operace čtení a zápisu z klienta do HFile jsou znázorněny na níže uvedeném diagramu.
Krok 1) Klient chce zapisovat data a následně nejprve komunikuje se serverem regionů a poté s regiony.
Krok 2) Region kontaktuje MemStore za účelem uložení dat spojených s rodinou sloupců.
Krok 3) Nejprve se data ukládají do MemStore, kde se třídí, a poté se ukládají do HFile. Hlavním důvodem použití MemStore je ukládání dat do distribuovaného souborového systému na základě klíče řádku. MemStore je umístěn v hlavní paměti Region Serveru, zatímco HFiles se zapisují do HDFS.
Krok 4) Klient chce číst data z regionů.
Krok 5) Klient může mít následně přímý přístup k MemStore a může si vyžádat data.
Krok 6) Klient se obrací na HFiles, aby získal data. Data jsou klientem načítána a zpracovávána.
MemStore uchovává úpravy úložiště v paměti. Hierarchie objektů v oblastech HBase odshora dolů je znázorněna v tabulce níže.
| Tabulka | Tabulka HBase přítomná v clusteru HBase |
| Kraj | HRregiony pro prezentované tabulky |
| Obchod | Ukládá jeden na rodinu sloupců pro každou oblast tabulky. |
| MemStore | MemStore pro každé úložiště pro každou oblast tabulky. Před uložením do HFiles třídí data. Díky třídění se zvyšuje výkon zápisu a čtení. |
| StoreFile | StoreFiles pro každý obchod pro každou oblast pro tabulku |
| Blokovat | Bloky přítomné uvnitř StoreFiles |
HBase vs. HDFS
HBase běží na systémech HDFS a Hadoop. Některé klíčové rozdíly mezi HDFS a HBase spočívají v datových operacích a zpracování.
| HBase | HDFS |
| Operace s nízkou latencí | Operace s vysokou latencí |
| Náhodné čtení a zápis | Napiš jednou, přečti mnohokrát |
| Přístup přes příkazy shellu, klientské API v Java, REST, Avro nebo Thrift | Primárně přístupné přes MapReduce (MR) pracovních míst |
| Lze provádět jak skladování, tak zpracování | Je to jen pro skladovací prostory |
Některé typické průmyslové IT aplikace používají operace HBase spolu s Hadoopem. Mezi aplikace patří burzovní data a operace s daty online bankovnictví, kde je HBase nejvhodnějším řešením. Jakmile je váš cluster připraven, můžete... čtení a zápis dat v HBase or instalace HBase na novém uzlu.




