HBase Architectură: cazuri de utilizare, componente și model de date
HBase Architectura și componentele sale importante
Arhitectura HBase constă în principal din patru componente
- HMaster
- Hregionserver
- Hregiuni
- Ingrijitor zoo
- HDFS
Mai jos este o arhitectură detaliată a HBase cu componente:
HMaster
HMaster în HBase este implementarea unui server Master în arhitectura HBase. Acesta acționează ca un agent de monitorizare pentru a monitoriza toate instanțele Regional Server prezente în cluster și acționează ca o interfață pentru toate modificările metadatelor. Într-un mediu de cluster distribuit, Master rulează pe NameNode. Master rulează mai multe fire în fundal.
Următoarele sunt roluri importante îndeplinite de HMaster în HBase.
- Joacă un rol vital în ceea ce privește performanța și menținerea nodurilor din cluster.
- HMaster oferă performanță de administrare și distribuie servicii către diferite servere din regiune.
- HMaster atribuie regiuni serverelor de regiune.
- HMaster are caracteristici precum controlul echilibrării încărcăturii și failover-ului pentru a gestiona sarcina peste nodurile prezente în cluster.
- Când un client dorește să schimbe orice schemă și să modifice orice operațiuni de metadate, HMaster își asumă responsabilitatea pentru aceste operațiuni.
Unele dintre metodele expuse de HMaster Interface sunt în primul rând metode orientate pe metadate.
- Tabel (createTable, removeTable, activare, dezactivare)
- ColumnFamily (adăugați o coloană, modificați coloana)
- Regiune (mutare, atribuire)
Clientul comunică într-un mod bidirecțional atât cu HMaster, cât și cu ZooKeeper. Pentru operațiuni de citire și scriere, contactează direct serverele HRegion. HMaster atribuie regiuni serverelor de regiune și, la rândul său, verifică starea de sănătate a serverelor de regiune.
În întreaga arhitectură, avem mai multe servere de regiune. Hlog prezent în serverele de regiune care vor stoca toate fișierele jurnal.
Servere pentru regiunea HBase
Când HBase Region Server primește cereri de scriere și citire de la client, acesta atribuie cererea unei anumite regiuni, unde se află familia reală de coloane. Cu toate acestea, clientul poate contacta direct cu serverele HRegion, nu este nevoie de permisiunea obligatorie HMaster pentru client în ceea ce privește comunicarea cu serverele HRegion. Clientul are nevoie de ajutor HMaster atunci când sunt necesare operațiuni legate de metadate și modificări ale schemei.
HReionServer este implementarea Regional Server. Este responsabil pentru deservirea și gestionarea regiunilor sau a datelor care sunt prezente într-un cluster distribuit. Serverele de regiune rulează pe noduri de date prezente în cluster-ul Hadoop.
HMaster poate intra în contact cu mai multe servere HRegion și îndeplinește următoarele funcții.
- Găzduirea și gestionarea regiunilor
- Împărțirea automată a regiunilor
- Gestionarea cererilor de citire și scriere
- Comunicarea directă cu clientul
Regiunile HBase
HRegions sunt elementele de bază ale clusterului HBase, care constă din distribuția de tabele și sunt compuse din familii de coloane. Conține mai multe magazine, câte unul pentru fiecare familie de coloane. Constă în principal din două componente, care sunt Memstore și Hfile.
Ingrijitor zoo
HBase Zookeeper este un server de monitorizare centralizat care menține informațiile de configurare și oferă sincronizare distribuită. Sincronizarea distribuită este de a accesa aplicațiile distribuite care rulează în cluster, cu responsabilitatea de a furniza servicii de coordonare între noduri. Dacă clientul dorește să comunice cu regiuni, clientul serverului trebuie să se apropie mai întâi de ZooKeeper.
Este un proiect open source și oferă atât de multe servicii importante.
Servicii furnizate de Ingrijitor zoo
- Menține informațiile de configurare
- Oferă sincronizare distribuită
- Stabilirea comunicării cu clientul cu serverele regiunii
- Oferă noduri efemere pentru care reprezintă servere de regiune diferite
- Utilizarea serverelor principale a nodurilor efemere pentru descoperirea serverelor disponibile în cluster
- Pentru a urmări defecțiunile serverului și partițiile de rețea
Nodurile master și slave HBase (servere de regiune) s-au înregistrat pe ZooKeeper. Clientul are nevoie de acces la configurația de cvorum ZK(zookeeper) pentru a se conecta la serverele master și regionale.
În timpul unei defecțiuni a nodurilor prezente în clusterul HBase, ZKquoram va declanșa mesaje de eroare și începe să repare nodurile eșuate.
HDFS
HDFS este un Hadoop distribuit File System, după cum sugerează și numele, oferă un mediu distribuit pentru stocare și este un sistem de fișiere proiectat astfel încât să ruleze pe hardware de bază. Stochează fiecare fișier în mai multe blocuri și pentru a menține toleranța la erori, blocurile sunt replicate într-un cluster Hadoop.
HDFS oferă un grad ridicat de toleranță la erori și rulează pe hardware ieftin. Adăugând noduri la cluster și efectuând procesarea și stocarea utilizând hardware-ul ieftin, acesta va oferi clientului rezultate mai bune în comparație cu cel existent.
Aici, datele stocate în fiecare bloc se replic în 3 noduri, în cazul în care orice nod scade, nu va exista nicio pierdere de date, va avea un mecanism adecvat de recuperare de rezervă.
HDFS intra în contact cu componentele HBase și stochează o cantitate mare de date într-o manieră distribuită.
Modelul de date HBase
Modelul de date HBase este un set de componente care constă din tabele, rânduri, familii de coloane, celule, coloane și versiuni. Tabelele HBase conțin familii de coloane și rânduri cu elemente definite ca chei primare. O coloană în tabelul modelului de date HBase reprezintă atributele obiectelor.
Modelul de date HBase constă din următoarele elemente,
- Set de mese
- Fiecare tabel cu familii de coloane și rânduri
- Fiecare tabel trebuie să aibă un element definit ca cheie primară.
- Cheia de rând acționează ca o cheie primară în HBase.
- Orice acces la tabelele HBase utilizează această cheie primară
- Fiecare coloană prezentă în HBase denotă un atribut corespunzător obiectului
Cazuri de utilizare HBase
Următoarele sunt exemple de cazuri de utilizare a HBase cu o explicație detaliată a soluției pe care o oferă pentru diferite probleme tehnice
Declarație problemă | Soluţie |
---|---|
Industria telecomunicațiilor se confruntă cu următoarele provocări tehnice
|
HBase este folosit pentru a stoca miliarde de rânduri de înregistrări detaliate ale apelurilor. Dacă se adaugă 20 TB de date pe lună la baza de date RDBMS existentă, performanța se va deteriora. Pentru a gestiona o cantitate mare de date în acest caz de utilizare, HBase este cea mai bună soluție. HBase efectuează interogări rapide și afișează înregistrări. |
Industrie bancară generează milioane de înregistrări zilnic. În plus, industria bancară are nevoie și de o soluție de analiză care să poată detecta Frauda în tranzacțiile cu bani | Pentru a stoca, procesa și actualiza volume mari de date și pentru a efectua analize, o soluție ideală este – HBase integrat cu mai multe componente ale ecosistemului Hadoop. |
În afară de asta, se poate folosi HBase
- Ori de câte ori este nevoie să scrieți aplicații grele.
- Efectuarea de analize online a jurnalelor și generarea de rapoarte de conformitate.
Mecanism de stocare în HBase
HBase este o bază de date orientată pe coloane, iar datele sunt stocate în tabele. Tabelele sunt sortate după RowId. După cum se arată mai jos, HBase are RowId, care este colecția mai multor familii de coloane care sunt prezente în tabel.
Familiile de coloane care sunt prezente în schemă sunt perechi cheie-valoare. Dacă observăm în detaliu fiecare familie de coloane având mai multe numere de coloane. Valorile coloanei stocate în memoria discului. Fiecare celulă a tabelului are propriile metadate, cum ar fi marca temporală și alte informații.
Venind la HBase, următorii sunt termenii cheie care reprezintă schema tabelului
- Tabel: Colecție de rânduri prezente.
- Rând: Culegere de familii de coloane.
- Familia de coloană: Colecție de coloane.
- Coloană: colecție de perechi cheie-valoare.
- Spațiu de nume: Gruparea logică a tabelelor.
- Celulă: Un tuplu {rând, coloană, versiune} specifică exact o definiție a celulei în HBase.
Stocare orientată pe coloane versus pe rânduri
Stocările orientate pe coloane și rânduri diferă prin mecanismul lor de stocare. După cum știm cu toții, modelele relaționale tradiționale stochează date în termeni de format bazat pe rând, cum ar fi în termeni de rânduri de date. Stocările orientate pe coloane stochează tabele de date în termeni de coloane și familii de coloane.
Următorul tabel oferă câteva diferențe cheie între aceste două depozite
Baza de date orientată pe coloane | Bază de date orientată pe rânduri |
---|---|
Când vine vorba de proces și analiză, folosim această abordare. Ca Procesare analitică online și aplicațiile sale. | Proces tranzacțional online precum domeniul bancar și financiar utilizează această abordare. |
Cantitatea de date care poate fi stocată în acest model este foarte mare, ca în ceea ce privește petabytes | Este conceput pentru un număr mic de rânduri și coloane. |
Date de citire și scriere HBase explicate
Operațiunile de citire și scriere de la client în fișierul H pot fi prezentate în diagrama de mai jos.
Pas 1) Clientul dorește să scrie date și, la rândul său, mai întâi comunică cu serverul Regions și apoi cu regiunile
Pas 2) Regiunile care contactează memstore pentru stocarea asociate cu familia de coloane
Pas 3) Mai întâi se stochează datele în Memstore, unde datele sunt sortate și după aceea, acestea se înregistrează în HFile. Motivul principal pentru utilizarea Memstore este stocarea datelor într-un sistem de fișiere distribuit bazat pe Row Key. Memstore va fi plasat în memoria principală a serverului Region în timp ce fișierele HF sunt scrise în HDFS.
Pas 4) Clientul dorește să citească date din regiuni
Pas 5) La rândul său, Clientul poate avea acces direct la magazinul Mem și poate solicita date.
Pasul 6) Client se apropie de HFiles pentru a obține datele. Datele sunt preluate și preluate de către Client.
Memstore deține modificări în memorie ale magazinului. Ierarhia obiectelor din regiunile HBase este cea prezentată de sus în jos în tabelul de mai jos.
Tabel | Tabelul HBază prezent în clusterul HBază |
Regiune | HRegiuni pentru tabelele prezentate |
Magazin | Se stochează per ColumnFamily pentru fiecare regiune pentru tabel |
Memstore |
|
StoreFile | StoreFiles pentru fiecare magazin pentru fiecare regiune pentru tabel |
Bloca | Blocuri prezente în StoreFiles |
HBase vs. HDFS
HBase rulează pe HDFS și Hadoop. Unele diferențe cheie între HDFS și HBase sunt în ceea ce privește operațiunile și procesarea datelor.
HBASE | HDFS |
---|---|
Operații cu latență scăzută | Operații cu latență ridicată |
Citiri și scrieri aleatorii | Scrie o dată Citește de mai multe ori |
Accesat prin comenzi shell, client API în Java, REST, Avro sau Thrift | Accesat în principal prin joburi MR (Map Reduce). |
Depozitarea și procesarea pot fi efectuate atât | Este doar pentru spatii de depozitare |
Unele aplicații industriale tipice IT utilizează operațiunile HBase împreună cu Hadoop. Aplicațiile includ datele bursiere, operațiunile de date bancare online și procesarea Hbase este cea mai potrivită soluție.
Rezumat
- Componente arhitecturii HBase: HMaster, HRegion Server, HRegions, ZooKeeper, HDFS
- HMaster în HBase este implementarea unui server Master în arhitectura HBase.
- Când HBase Region Server primește solicitări de scriere și citire de la client, acesta atribuie cererea unei anumite regiuni, unde se află familia reală de coloane
- HRegions sunt elementele de bază ale clusterului HBase, care constă din distribuția de tabele și sunt compuse din familii de coloane.
- HBase Zookeeper este un server de monitorizare centralizat care menține informațiile de configurare și oferă sincronizare distribuită.
- HDFS oferă un grad ridicat de toleranță la erori și rulează pe hardware ieftin.
- Modelul de date HBase este un set de componente care constă din tabele, rânduri, familii de coloane, celule, coloane și versiuni.
- Stocările orientate pe coloane și rânduri diferă prin mecanismul lor de stocare.