Mecanism de stocare în HBase
HBase este o bază de date orientată pe coloane și 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 sale metadate, cum ar fi marca de timp ș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 : Colecție de familii de coloane.
- Familia de coloane: Colecție de coloane.
- Coloană : Colecție de perechi cheie-valoare.
- Spațiu de nume : grupare logică a tabelelor.
- Celulă : un tuplu {rând, coloană, versiune} specifică exact o definiție a celulei în HBase.
În acest tutorial - veți învăța,
- Mecanism de stocare în HBase
- Modelul de date HBase
- Arhitectura HBase și componentele sale importante
- Datele de citire și scriere HBase sunt explicate
- Cazuri de utilizare HBase
- HBASE vs. HDFS
Depozite orientate pe coloană vs orientate pe rând
Depozitele 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 ceea ce privește formatul bazat pe rând, ca și în ceea ce privește rândurile de date. Depozitele orientate pe coloane stochează tabele de date în termeni de coloane și familii de coloane.
Tabelul următor oferă câteva diferențe cheie între aceste două depozite
Baza de date orientată pe coloane | Baza de date orientată pe rând |
|
|
|
|
Modelul de date HBase
HBase Data Model 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 principale. O coloană din tabelul modelului de date HBase reprezintă atribute 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ă.
- Tasta 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ă atributul corespunzător obiectului
Arhitectura HBase și componentele sale importante
Mai jos este un arhitectură detaliată a HBase cu componente:
Arhitectura HBase constă în principal din patru componente
- HMaster
- HRegionserver
- HRegiuni
- Ingrijitor zoo
- HDFS
HMaster:
HMaster în HBase este implementarea unui server Master în arhitectură HBase. 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 de metadate. Într-un mediu de cluster distribuit, Master rulează pe NameNode. Master rulează mai multe fire de 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țe de administrator și distribuie servicii către diferite servere de regiune.
- HMaster atribuie regiuni serverelor de regiuni.
- HMaster are caracteristici cum ar fi controlul echilibrării încărcării și a reluării la eroare pentru a gestiona sarcina peste nodurile prezente în cluster.
- Atunci când un client dorește să schimbe orice schemă și să schimbe orice operațiuni de metadate, HMaster își asumă responsabilitatea pentru aceste operațiuni.
Unele dintre metodele expuse de HMaster Interface sunt în principal metode orientate către metadate.
- Tabel (createTable, removeTable, enable, disable)
- ColumnFamily (adăugați 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țiile de citire și scriere, contactează direct cu serverele HRegion. HMaster atribuie regiuni serverelor regionale și, la rândul său, verifică starea de sănătate a serverelor regionale.
În întreaga arhitectură, avem servere cu mai multe regiuni. Hlog este prezent în servere regionale care vor stoca toate fișierele jurnal.
Servere HBase Regions:
Când HBase Region Server primește cereri de scriere și citire de la client, acesta atribuie cererea unei anumite regiuni, în care se află familia de coloane. Cu toate acestea, clientul poate contacta direct cu serverele HRegion, nu este nevoie de permisiunea obligatorie HMaster către client cu privire la comunicarea cu serverele HRegion. Clientul necesită ajutor HMaster atunci când sunt necesare operațiuni legate de metadate și schimbări de schemă.
HRegionServer este implementarea Region Server. Este responsabil pentru deservirea și gestionarea regiunilor sau a datelor care sunt prezente într-un cluster distribuit. Serverele regionale rulează pe noduri 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 regiunilor în mod automat
- Gestionarea cererilor de citire și scriere
- Comunicarea directă cu clientul
Regiuni HBase:
Regiunile HR sunt elementele de bază ale clădirii clusterului HBase, care constă în distribuirea tabelelor și sunt formate din familii de coloane. Conține mai multe magazine, unul pentru fiecare familie de coloane. Se compune î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ă pe întregul cluster cu responsabilitatea de a furniza servicii de coordonare între noduri. Dacă clientul dorește să comunice cu regiunile, clientul serverului trebuie să se adreseze mai întâi ZooKeeper.
Este un proiect open source și oferă atât de multe servicii importante.
Servicii furnizate de ZooKeeper
- Menține informațiile de configurare
- Oferă sincronizare distribuită
- Stabilire de comunicare client cu servere regionale
- Oferă noduri efemere pentru care reprezintă servere de regiuni diferite
- Utilizarea serverelor master de noduri efemere pentru descoperirea serverelor disponibile în cluster
- Pentru a urmări eșecul serverului și partițiile de rețea
Nodurile slave master și HBase (servere regionale) s-au înregistrat la ZooKeeper. Clientul are nevoie de acces la configurația cvorumului ZK (zookeeper) pentru a se conecta cu serverele master și regionale.
În timpul unei eșecuri a nodurilor care sunt prezente în clusterul HBase, ZKquoram va declanșa mesaje de eroare și va începe să repare nodurile eșuate.
HDFS:
HDFS este un sistem de fișiere distribuite Hadoop, deoarece numele sugerează că oferă un mediu distribuit pentru stocare și este un sistem de fișiere conceput într-un mod pentru a rula pe hardware de marfă. Stochează fiecare fișier în mai multe blocuri și pentru a menține toleranța la erori, blocurile sunt reproduse într-un cluster Hadoop.
HDFS oferă un grad ridicat de toleranță la erori și funcționează pe hardware ieftin de marfă. Prin adăugarea de noduri în cluster și efectuarea procesării și stocării utilizând hardware-ul de marfă ieftin, acesta va oferi clientului rezultate mai bune în comparație cu cel existent.
Aici, datele stocate în fiecare bloc se reproduc în 3 noduri, într-un caz când vreun nod coboară, nu va exista nici o pierdere de date, va avea un mecanism de recuperare adecvat.
HDFS intră în contact cu componentele HBase și stochează o cantitate mare de date într-un mod distribuit.
Datele de citire și scriere HBase sunt explicate
Operațiile de citire și scriere de la client în Hfile pot fi 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 Regions și apoi cu regiunile
Pasul 2) Regiunile care contactează memstore pentru stocarea asociate cu familia de coloane
Pasul 3) Primele stocări de date în Memstore, unde datele sunt sortate și, după aceea, sunt transferate în HFile. Motivul principal pentru utilizarea Memstore este stocarea datelor într-un sistem de fișiere distribuit bazat pe cheia de rând. Memstore va fi plasat în memoria principală a serverului Region în timp ce HFiles 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 magazinul Mem și poate solicita date.
Pasul 6) Clientul abordează HFiles pentru a obține datele. Datele sunt preluate și recuperate de către Client.
Memstore păstrează modificările în memorie ale magazinului. Ierarhia obiectelor din regiunile HBase este așa cum se arată de sus în jos în tabelul de mai jos.
Masa | Tabelul HBase prezent în clusterul HBase |
Regiune | HRegiuni pentru tabelele prezentate |
Magazin | Stochează pe coloanăFamilie pentru fiecare regiune pentru tabel |
Memstore |
|
StoreFile | StoreFiles pentru fiecare magazin pentru fiecare regiune pentru tabel |
bloc | Blocuri prezente în interiorul StoreFiles |
Cazuri de utilizare HBase
Următoarele sunt exemple de cazuri de utilizare HBase, cu o explicație detaliată a soluției pe care o oferă pentru diverse probleme tehnice
Declarație problemă | Soluţie |
---|---|
Industria telecomunicațiilor se confruntă cu următoarele provocări tehnice
| HBase este utilizat 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ă zilnic milioane de înregistrări. În plus, industria bancară are nevoie și de o soluție de analiză care poate detecta frauda în tranzacțiile cu bani | Pentru a stoca, procesa și actualiza volume mari de date și a efectua analize, o soluție ideală este - HBase integrat cu mai multe componente ale ecosistemului Hadoop. |
În afară de aceasta, HBase poate fi utilizat
- Ori de câte ori este nevoie să scrieți aplicații grele.
- Efectuarea analizei jurnalelor online și generarea rapoartelor de conformitate.
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 |
|
|
|
|
|
|
|
|
|
|
Unele aplicații industriale tipice IT utilizează operațiuni HBase împreună cu Hadoop. Aplicațiile includ date de bursă, operațiuni de date bancare online, iar procesarea Hbase este cea mai potrivită metodă de soluție.
rezumat
Hbase este una dintre bazele de date distribuite orientate pe coloane NoSql disponibile în fundația Apache. HBase oferă mai multă performanță pentru recuperarea mai puține înregistrări decât Hadoop sau Hive. Este foarte ușor să căutați orice valoare de intrare dată, deoarece acceptă indexarea, tranzacțiile și actualizarea.
Putem efectua analize online în timp real folosind Hbase integrat cu ecosistemul Hadoop. Are un sharding automat și configurabil pentru seturi de date sau tabele și oferă API-uri odihnitoare pentru efectuarea lucrărilor MapReduce.