V dnešním příspěvku pojďme diskutovat o architektuře HBase. Pojďme si prohlédnout naše základy HBase, než se ponoříme hlouběji do architektury HBase.
HBase - Základy:
HBase je open-source, NoSQL, distribuovaný, nerelační, verzovaný, vícerozměrný, sloupově orientovaný obchod, který byl modelován po Google BigTable, který běží nad HDFS. „„ NoSQL “je široký pojem, což znamená, že databáze není RDBMS, který podporuje SQL jako svůj primární přístupový jazyk. Existuje však mnoho typů databází NoSQL a Berkeley DB je dobrým příkladem místní databáze NoSQL, zatímco HBase je velmi distribuovaná databáze.
HBase poskytuje všechny funkce Google BigTable. Začalo to jako projekt společnosti Powerset ke zpracování obrovského množství dat pro vyhledávání v přirozeném jazyce. Byl vyvinut jako součást projektu Hadoop společnosti Apache a běží na vrcholu HDFS (Hadoop Distributed File System). Poskytuje způsoby odolné proti chybám ukládání velkého množství řídkých dat. HBase je ve skutečnosti spíše „Data Store“ než „Data Base“, protože mu chybí mnoho funkcí dostupných v RDBMS, jako jsou typové sloupce, sekundární indexy, triggery a pokročilé jazyky dotazů atd.
jak nainstalovat php na Windows
V databázích orientovaných na sloupce se datová tabulka ukládá jako části sloupců dat, nikoli jako řádky dat. Datový model databáze orientované na sloupce se skládá z názvu tabulky, klíče řádku, rodiny sloupců, sloupců, časového razítka. Při vytváření tabulek v HBase budou řádky jednoznačně identifikovány pomocí klíčů řádků a časového razítka. V tomto datovém modelu jsou rodiny sloupců statické, zatímco sloupce jsou dynamické. Nyní se podívejme na architekturu HBase.
Kdy jít na HBase?
HBase je dobrá volba, pouze pokud existují stovky milionů nebo miliardy řádků. HBase lze také použít na místech, kde uvažujete o přechodu z RDBMS na HBase jako kompletní redesign na rozdíl od portu. Jinými slovy, HBase není optimalizován pro klasické transakční aplikace nebo dokonce relační analytiku. Rovněž není úplnou náhražkou HDFS při provádění velké dávky MapReduce. Tak proč byste měli jít na HBase ?? Pokud má vaše aplikace variabilní schéma, kde se každý řádek mírně liší, měli byste se podívat na HBase.
Architektura HBase:
Následující obrázek jasně vysvětluje architekturu HBase.
V HBase existují tři hlavní komponenty: Mistr, server regionu a chovatel zoo . Ostatní komponenty jsou Memstore, HFile a WAL.
Protože HBase běží na HDFS, využívá architekturu Master-Slave, ve které bude HMaster hlavním uzlem a regionální servery jsou podřízenými uzly. Když klient odešle požadavek na zápis, HMaster dostane tento požadavek a předá jej na příslušný Region Server.
Regionální server:
Je to systém, který funguje podobně jako datový uzel. Když Region Server (RS) obdrží požadavek na zápis, přesměruje požadavek na konkrétní Region. Každá oblast ukládá sadu řádků. Data řádků lze rozdělit do více rodin sloupců (CF). Data konkrétního CF jsou uložena v HStore, který se skládá z Memstore a sady HFiles.
Co dělá Memstore?
Memstore sleduje všechny protokoly pro operace čtení a zápisu, které byly provedeny na daném regionálním serveru. Z toho můžeme říci, že funguje podobně jako uzel názvu v Hadoopu. Memstore je úložiště v paměti, proto Memstore využívá úložiště každého datového uzlu v paměti k ukládání protokolů. Když jsou splněny určité prahové hodnoty, data Memstore budou vyprázdněna do HFile.
Klíčovým účelem používání Memstore je potřeba ukládat data na DFS seřazená podle klíče řádku. Protože HDFS je navržen pro sekvenční čtení / zápis, aniž by byly povoleny žádné úpravy souborů, nemůže HBase efektivně zapisovat data na disk tak, jak je přijímán: zapsaná data nebudou tříděna (pokud není tříděn vstup), což znamená, že nebudou optimalizována pro budoucnost vyhledávání. Abychom tento problém vyřešili, vyrovnávací paměti HBase naposledy přijaly data do paměti (v Memstore), před vyprázdněním je „seřadí“ a poté zapisují na HDFS pomocí rychlých sekvenčních zápisů. HFile tedy obsahuje seznam seřazených řádků.
Pokaždé, když dojde k vyprázdnění Memstore, vytvoří se pro každý CF jeden HFile a časté spláchnutí může vytvořit spoustu HFile. Protože během čtení se HBase bude muset podívat na mnoho souborů HF, může rychlost čtení trpět. Aby se zabránilo otevření příliš mnoha souborů HFiles a aby se zabránilo zhoršení výkonu čtení, používá se proces zhutnění souborů HFiles. HBase bude periodicky (při dosažení určitých konfigurovatelných prahových hodnot) kompaktní několik menších souborů HF do velkého. Je zřejmé, že čím více souborů vytvořených Memstore propláchne, tím více práce (extra zatížení) pro systém. Přidáno k tomu, zatímco proces zhutňování se obvykle provádí souběžně s poskytováním dalších požadavků a když HBase nemůže držet krok s komprimací souborů HFile (ano, existují také nakonfigurované prahové hodnoty), bude znovu blokovat zápisy na RS. Jak jsme diskutovali výše, je to velmi nežádoucí.
Nemůžeme si být jisti, že data budou v Memstore trvalá. Předpokládejme, že konkrétní datanode nefunguje. Pak budou ztracena data, která se nacházejí v paměti daného datového uzlu.
K překonání tohoto problému, když požadavek přijde od hlavního, se také zapsal na WAL. WAL není nic jiného než Pište dopředu protokoly který je umístěn na HDFS, trvalé úložiště. Nyní se můžeme ujistit, že i když bude datový uzel dole, data se neztratí, tj. máme kopii všech akcí, které byste měli ve WAL dělat. Když je datový uzel nahoře, provede všechny činnosti znovu. Jakmile je operace dokončena, vše se vyprázdní z Memstore a WAL a zapíše se do HFile, aby se ujistil, že nám nedochází paměť.
Vezměme si jednoduchý příklad, že chci přidat řádek 10, pak přijde požadavek na zápis, říká, že dává všechna meta data Memstore a WAL. Jakmile je konkrétní řádek zapsán do HFile, vše v Memstore a WAL je vyprázdněno.
Zoo Keeper:
HBase je integrován s chovatelem zoo. Když spustím HBase, spustí se také instance správce zoo. Důvodem je to, že nám držitel zoo pomáhá sledovat všechny servery v regionu, které jsou pro HBase. Provozovatel zoo sleduje, kolik serverů regionů je, které servery regionů drží, z kterého datového uzlu do kterého datového uzlu. Sleduje menší datové soubory, kde chybí Hadoop. Snižuje režii nad Hadoopem, který sleduje většinu vašich meta dat. Proto HMaster získá podrobnosti o regionálních serverech kontaktováním správce zoo.
Máte na nás dotaz? Uveďte je v sekci komentáře a my se vám ozveme.
Související příspěvky: