HBase Architectură: cazuri de utilizare, componente și model de date
⚡ Rezumat inteligent
Arhitectura HBase este construită din patru componente coordonate — HMaster, Region Servers, ZooKeeper și HDFS — care stochează date într-un model orientat pe coloane, le împart în regiuni și deservesc citiri și scrieri aleatorii cu latență redusă.

Apache HBase este o bază de date NoSQL distribuită, orientată pe coloane, care rulează pe Hadoop și sistemul de fișiere distribuit Hadoop (HDFS). Arhitectura sa combină un master coordonator, servere regionale și ZooKeeper pentru a stoca tabele foarte mari și a servi citiri și scrieri aleatorii rapide.
HBase Architectura și componentele sale importante
Arhitectura HBase are următoarele componente principale:
- HMaster
- HRegionServer
- Hregiuni
- Ingrijitor zoo
- HDFS
Mai jos este prezentată o arhitectură detaliată a HBase cu componentele sale, așa cum se arată în diagramă.
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 serverului regional prezente în cluster și acționează ca o interfață pentru toate modificările metadatelor. Într-un mediu de cluster distribuit, serverul Master rulează pe NameNode. Serverul Master rulează mai multe fire de execuție în fundal.
Următoarele sunt rolurile 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 controlează echilibrarea încărcării și failover-ul pentru a gestiona încărcarea peste nodurile prezente în cluster.
- Când un client dorește să modifice o schemă sau o operațiune de metadate, HMaster își asumă responsabilitatea pentru aceste operațiuni.
Unele dintre metodele expuse de interfața HMaster sunt în principal metode orientate spre metadate:
- Tabel (createTable, removeTable, activare, dezactivare)
- ColumnFamily (adăugați o coloană, modificați coloana)
- Regiune (mutare, atribuire)
Clientul comunică 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 funcționare a serverelor de regiune.
În întreaga arhitectură, avem mai multe servere regionale. Un HLog este prezent în serverele regionale, care stochează toate fișierele jurnal.
Servere pentru regiunea HBase
Când un server de regiune HBase primește cereri de scriere și citire de la client, acesta atribuie cererea unei regiuni specifice, unde se află familia de coloane propriu-zisă. Clientul poate contacta direct serverele HRegion; nu este nevoie de permisiunea HMaster obligatorie pentru ca clientul să comunice cu serverele HRegion. Clientul necesită ajutor HMaster numai atunci când sunt necesare operațiuni legate de metadate și modificări de schemă.
HRegionServer este implementarea serverului de regiuni. Este responsabil pentru deservirea și gestionarea regiunilor sau a datelor prezente într-un cluster distribuit. Serverele de regiune rulează pe nodurile de date prezente în clusterul 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
HRegiunile sunt elementele de bază ale unui cluster HBase. Acestea constau în distribuția tabelelor și sunt alcătuite din familii de coloane. O regiune conține mai multe depozite, câte unul pentru fiecare familie de coloane. Este alcătuită în principal din două componente: MemStore și HFile.
Ingrijitor zoo
HBase Ingrijitor zoo este un server de monitorizare centralizat care menține informațiile de configurare și oferă sincronizare distribuită. Sincronizarea distribuită coordonează aplicațiile distribuite care rulează în cluster, oferind servicii de coordonare între noduri. Dacă clientul dorește să comunice cu regiunile, clientul trebuie mai întâi să contacteze ZooKeeper.
Este un proiect open source și oferă multe servicii importante.
Servicii oferite de ZooKeeper:
- Păstrează informațiile de configurare
- Oferă sincronizare distribuită
- Stabilește comunicarea clientului cu serverele regionale
- Oferă noduri efemere care reprezintă servere regionale diferite
- Permite serverului Master să utilizeze aceste noduri efemere pentru a descoperi serverele disponibile în cluster
- Traceroare server ks și partiții de rețea
Nodurile Master și slave HBase (serverele regionale) se înregistrează singure la ZooKeeper. Clientul are nevoie de acces la configurația cvorumului ZooKeeper (ZK) pentru a se conecta la serverele master și regional.
În timpul unei erori a nodurilor prezente în clusterul HBase, cvorumul ZooKeeper declanșează mesaje de eroare și începe să repare nodurile defecte.
HDFS
HDFS este Hadoop Distributed File SystemDupă cum sugerează și numele, oferă un mediu distribuit pentru stocare și este un sistem de fișiere conceput să ruleze pe hardware standard. Stochează fiecare fișier în mai multe blocuri, iar pentru a menține toleranța la erori, blocurile sunt replicate pe un cluster Hadoop.
HDFS oferă un grad ridicat de toleranță la erori și rulează pe hardware ieftin. Prin adăugarea de noduri la cluster și efectuarea procesării și stocării folosind hardware ieftin, oferă clientului rezultate mai bune în comparație cu configurația existentă.
Aici, datele stocate în fiecare bloc sunt replicate pe 3 noduri, astfel încât, dacă vreun nod se defectează, nu vor exista pierderi de date; are un mecanism adecvat de backup și recuperare.
HDFS intră în contact cu componentele HBase și stochează o cantitate mare de date într-un mod 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 și chei primare. O coloană din tabelul modelului de date HBase reprezintă un atribut al obiectelor.
Modelul de date HBase este alcătuit 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 și 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 unui obiect.
Cazuri de utilizare HBase
Următoarele sunt exemple de cazuri de utilizare HBase, cu o explicație detaliată a soluției oferite de HBase pentru diverse probleme tehnice.
| Declarație problemă | Soluţie |
| Industria telecomunicațiilor se confruntă cu următoarele provocări tehnice: stocarea miliardelor de înregistrări ale apelurilor (CDR) generate de domeniul telecomunicațiilor; furnizarea accesului în timp real la jurnalele CDR și la informațiile de facturare ale clienților; și furnizarea unei soluții eficiente din punct de vedere al costurilor în comparație cu sistemele tradiționale de baze de date. | 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. |
| Industria 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 monetare. | 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, HBase poate fi utilizat:
- Ori de câte ori este nevoie de aplicații care necesită multă scriere.
- Pentru efectuarea analizelor de jurnal online și generarea rapoartelor 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 un RowId, care este colecția mai multor familii de coloane prezente în tabel.
Familiile de coloane prezente în schemă sunt perechi cheie-valoare. Dacă observăm în detaliu, fiecare familie de coloane are mai multe coloane. Valorile coloanelor sunt stocate pe memoria discului. Fiecare celulă a tabelului are propriile metadate, cum ar fi o marcă temporală și alte informații.
Aspectul spațiului de stocare orientat pe coloane, cu chei de rând, familii de coloane și celule, este prezentat mai jos.
Următorii sunt termenii cheie care reprezintă o schemă de tabel HBase:
- Tabel: Colecție de rânduri prezentă.
- Rând: Colecție de familii de coloane.
- Familie de coloane: Colecție de coloane.
- Coloană: Colecție de perechi cheie-valoare.
- Spațiu de nume: Grup logicping de mese.
- Celulă: Un tuplu {rând, coloană, versiune} care specifică exact o definiție a celulei în HBase.
Stocare orientată pe coloane versus pe rânduri
Stocările orientate pe coloane și pe rânduri diferă prin mecanismul lor de stocare. După cum știm cu toții, modelele relaționale tradiționale stochează datele într-un format bazat pe rânduri, sub formă de rânduri de date. Stocările orientate pe coloane stochează tabelele de date sub formă de coloane și familii de coloane.
Tabelul următor prezintă câteva diferențe cheie între aceste două spații de depozitare.
| Baza de date orientată pe coloane | Bază de date orientată pe rânduri |
| Se utilizează atunci când situația implică procesare și analiză, cum ar fi procesarea analitică online și aplicațiile sale. | Procesarea tranzacțiilor online, cum ar fi domeniile bancare și financiare, utilizează această abordare. |
| Cantitatea de date care poate fi stocată în acest model este foarte mare, în termeni de 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 HFile sunt prezentate în diagrama de mai jos.
Pasul 1) Clientul dorește să scrie date și, la rândul său, comunică mai întâi cu serverul de regiuni și apoi cu regiunile.
Pasul 2) Regiunea contactează MemStore pentru stocarea datelor asociate familiei de coloane.
Pasul 3) Mai întâi, datele sunt stocate în MemStore, unde sunt sortate, iar apoi sunt transferate în HFile. Principalul motiv pentru utilizarea MemStore este de a stoca datele într-un sistem de fișiere distribuit pe baza cheii de rând. MemStore este plasat în memoria principală a serverului regional, în timp ce HFile sunt scrise în HDFS.
Pasul 4) Clientul dorește să citească date din regiuni.
Pasul 5) La rândul său, clientul poate avea acces direct la MemStore și poate solicita date.
Pasul 6) Clientul accesează HFiles pentru a obține datele. Datele sunt preluate și recuperate de către client.
MemStore conține modificări în memorie aduse depozitului. Ierarhia obiectelor din regiunile HBase, de sus în jos, este prezentată în tabelul de mai jos.
| Tabel | Tabelul HBază prezent în clusterul HBază |
| Regiune | HRegiuni pentru tabelele prezentate |
| Magazin | Stochează câte unul pentru fiecare familie de coloane pentru fiecare regiune a tabelului |
| MemStore | MemStore pentru fiecare depozit pentru fiecare regiune a tabelului. Sortează datele înainte de a fi stocate în HFiles. Performanța de scriere și citire crește datorită sortării. |
| StoreFile | StoreFiles pentru fiecare magazin pentru fiecare regiune pentru tabel |
| Bloca | Blocuri prezente în StoreFiles |
HBase vs. HDFS
HBase rulează pe HDFS și Hadoop. Câteva diferențe cheie între HDFS și HBase se referă la 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 multe ori |
| Accesat prin comenzi shell, o API client în Java, REST, Avro sau Thrift | Accesat în principal prin MapReduce (MR) locuri de muncă |
| Atât depozitarea, cât și prelucrarea pot fi efectuate | Este doar pentru spațiile de depozitare |
Unele aplicații industriale IT tipice utilizează operațiuni HBase împreună cu Hadoop. Aplicațiile includ date bursiere și operațiuni cu date bancare online, unde HBase este cea mai potrivită soluție. Odată ce clusterul dvs. este gata, puteți citirea și scrierea datelor în HBase or instalați HBase pe un nod proaspăt.



