Arhitektura HBase: Podatkovni model HBase in mehanizem branja / pisanja HBase



Ta spletni dnevnik o arhitekturi HBase pojasnjuje model HBase podatkov in daje vpogled v arhitekturo HBase. Pojasnjuje tudi različne mehanizme v HBase.

Arhitektura HBase

V mojem prejšnjem blogu na Vadnica za HBase , Razložil sem, kaj je HBase in njegove značilnosti. Omenil sem tudi študijo primera Facebook messengerja, ki vam pomaga, da se bolje povežete. Zdaj pa naprej v naši , Razložil vam bom podatkovni model HBase in HBase Architecture.Preden nadaljujete, morate vedeti tudi, da je HBase pomemben koncept, ki je sestavni del za certificiranje Hadoop za velike podatke.

Pomembne teme, skozi katere vas bom vodil v tem blogu o arhitekturi HBase, so:





Najprej razumemo podatkovni model HBase. HBase pomaga pri hitrejšem branju / pisanju in iskanju.



Arhitektura HBase: Podatkovni model HBase

Kot vemo, je HBase stolpno usmerjena baza podatkov NoSQL. Čeprav je videti podobno kot relacijska baza podatkov, ki vsebuje vrstice in stolpce, vendar ni relacijska baza podatkov. Relacijske zbirke podatkov so usmerjene v vrstice, HBase pa v stolpce. Torej, najprej razumemo razliko med bazami podatkov, usmerjenimi v stolpce in vrstice:

Vrstne in stolpčno usmerjene zbirke podatkov:

  • V vrstice usmerjene baze podatkov shranjujejo zapise tabel v zaporedju vrstic. Medtem ko so stolpčno usmerjene zbirke podatkovshranjujte zapise tabel v zaporedju stolpcev, tj. vnosi v stolpcu so shranjeni na sosednjih mestih na diskih.

Za boljše razumevanje si vzemimo primer in si oglejmo spodnjo tabelo.



Tabela - Arhitektura HBase - Edureka

html oznaka za prelom vrstice

Če je tabela shranjena v vrstici usmerjeno bazo podatkov. Shranila bo zapise, kot je prikazano spodaj:

eno,Paul Walker,ZDA,231,Galantno,

2, Vin Diesel,Brazilija,520,Mustang

V vrstico usmerjenih zbirkah podatkov se podatki shranjujejo na podlagi vrstic ali nabora, kot lahko vidite zgoraj.

Medtem ko baze podatkov usmerjene v stolpce te podatke shranjujejo kot:

eno,2., Paul Walker,Vin Diesel, ZDA,Brazilija, 231,520, Galantno,Mustang

V stolpčno usmerjenih zbirkah podatkov se vse vrednosti stolpcev shranijo skupaj, tako kot se vrednosti prvega stolpca shranijo skupaj, nato se vrednosti drugega stolpca shranijo skupaj in podatki v drugih stolpcih se shranijo na podoben način.

  • Kadar je količina podatkov zelo velika, na primer v smislu petabajtov ali eksabajtov, uporabljamo pristop, usmerjen v stolpce, ker so podatki enega samega stolpca shranjeni skupaj in so hitreje dostopni.
  • Medtem ko vrstno usmerjen pristop primerjalno obravnava manjše število vrstic in stolpcev, saj vrstno usmerjena baza podatkov hrani podatke v strukturirani obliki.
  • Ko moramo obdelati in analizirati velik nabor polstrukturiranih ali nestrukturiranih podatkov, uporabimo pristop, usmerjen v stolpce. Na primer aplikacije, ki se ukvarjajo z Spletna analitična obdelava kot so podatkovno rudarjenje, skladiščenje podatkov, aplikacije, vključno z analitiko itd.
  • Ker Spletna transakcijska obdelava kot so bančne in finančne domene, ki obdelujejo strukturirane podatke in zahtevajo transakcijske lastnosti (lastnosti ACID), uporabljajo pristop, usmerjen v vrstice.

Tabele HBase imajo naslednje komponente, prikazane na spodnji sliki:

  • Mize : Podatki so shranjeni v obliki tabele v HBase. Tu pa so tabele v stolpčno usmerjeni obliki.
  • Vrstica Ključ : Vrstice se uporabljajo za iskanje zapisov, ki omogočajo hitro iskanje. Bi vas zanimalo kako? V tem blogu bom razložil v delu o arhitekturi, ki se premika naprej.
  • Stolpec Družine : Različni stolpci so združeni v družino stolpcev. Te družine stolpcev so shranjene skupaj, kar omogoča hitrejši postopek iskanja, saj je do podatkov, ki pripadajo isti družini stolpcev, mogoče dostopati skupaj v enem iskanju.
  • Stolpec Kvalifikacije : Ime vsakega stolpca je znano kot njegov kvalifikator stolpca.
  • Celica : Podatki so shranjeni v celicah. Podatki se odvržejo v celice, ki so posebej opredeljene s kvalifikatorji vrstic in stolpcev.
  • Časovni žig : Časovni žig je kombinacija datuma in ure. Kadar koli so podatki shranjeni, se shranijo s svojim časovnim žigom. To olajša iskanje določene različice podatkov.

Na bolj preprost in razumljiv način lahko rečemo, da HBase sestavljajo:

  • Komplet miz
  • Vsaka tabela z družinami stolpcev in vrsticami
  • Vrstni ključ deluje kot primarni ključ v HBase.
  • Vsak dostop do tabel HBase uporablja ta primarni ključ
  • Vsak kvalifikator stolpca, ki je prisoten v HBase, označuje atribut, ki ustreza predmetu, ki je v celici.

Zdaj, ko veste za podatkovni model HBase, poglejmo, kako se ta podatkovni model ujema z arhitekturo HBase in je primeren za večje shranjevanje in hitrejšo obdelavo.

Arhitektura HBase: sestavni deli arhitekture HBase

HBase ima tri glavne sestavine, tj. HMaster strežnik , Strežnik regije HBase, regije in Oskrbnik živalskega vrta .

Spodnja slika pojasnjuje hierarhijo arhitekture HBase. Govorili bomo o vsakem posebej.


Zdaj bomo pred odhodom na HMaster razumeli Regije, saj so vsi ti strežniki (HMaster, Regijski strežnik, Zookeeper) nameščeni za usklajevanje in upravljanje regij ter izvajanje različnih operacij znotraj regij. Torej bi vas zanimalo, kaj so regije in zakaj so tako pomembne?

Arhitektura HBase: Regija

Območje vsebuje vse vrstice med začetno in končno tipko, dodeljeno tej regiji. Tabele HBase lahko razdelimo na več regij tako, da so vsi stolpci družine stolpcev shranjeni v eni regiji. Vsako območje vsebuje vrstice v razvrščenem vrstnem redu.

Številne regije so dodeljene a Regijski strežnik , ki je odgovoren za obdelavo, upravljanje, izvajanje operacij branja in pisanja na tem naboru regij.

Torej, zaključek na preprostejši način:

  • Tabelo lahko razdelimo na več regij. Regija je razvrščen obseg vrstic, ki shranjujejo podatke med začetnim in končnim ključem.
  • Regija ima privzeto velikost 256 MB, ki jo lahko nastavite glede na potrebe.
  • Skupina regij odjemalcem streže regijski strežnik.
  • Regijski strežnik lahko odjemalcu streže približno 1000 regij.

Zdaj, začenši z vrha hierarhije, bi vam najprej želel razložiti o strežniku HMaster, ki deluje podobno kot NameNode v HDFS . Potem, ko se pomaknem navzdol po hierarhiji, vas popeljem skozi ZooKeeper in Region Server.

Arhitektura HBase: HMaster

Kot na spodnji sliki, lahko vidite, da HMaster obravnava zbirko strežnika regij, ki se nahaja na DataNode. Dovolite nam, da razumemo, kako HMaster to počne.

  • HBase HMaster izvaja operacije DDL (ustvarja in briše tabele) in strežnikom regij dodeli regije, kot lahko vidite na zgornji sliki.
  • Usklajuje in upravlja regijski strežnik (podobno kot NameNode upravlja DataNode v HDFS).
  • Območnim strežnikom dodeli regije ob zagonu in znova dodeli regije regijskim strežnikom med obnovitvijo in uravnoteženjem obremenitve.
  • Spremlja vse primerke regijskega strežnika v gruči (s pomočjo Zookeeperja) in izvaja obnovitvene dejavnosti, kadar kateri koli regijski strežnik ne deluje.
  • Ponuja vmesnik za ustvarjanje, brisanje in posodabljanje tabel.

HBase ima porazdeljeno in ogromno okolje, kjer samo HMaster ne zadostuje za upravljanje vsega. Torej bi se vprašali, kaj HMasterju pomaga pri upravljanju tega ogromnega okolja? Tu nastopi ZooKeeper. Ko bomo razumeli, kako HMaster upravlja s HBase okoljem, bomo razumeli, kako Zookeeper pomaga HMasterju pri upravljanju okolja.

Arhitektura HBase: ZooKeeper - koordinator

Ta spodnja slika pojasnjuje koordinacijski mehanizem ZooKeeperja.

  • Zookeeper deluje kot koordinator znotraj HBase porazdeljenega okolja. Pomaga pri vzdrževanju stanja strežnika znotraj gruče s komunikacijo prek sej.
  • Vsak strežnik regije skupaj s strežnikom HMaster redno pošilja utrip srca v Zookeeper in ta preveri, kateri strežnik je živ in na voljo, kot je navedeno na zgornji sliki. Ponuja tudi obvestila o napakah strežnika, tako da je mogoče izvesti ukrepe za obnovitev.
  • Glede na zgornjo sliko, ki jo vidite, obstaja neaktiven strežnik, ki deluje kot varnostna kopija aktivnega strežnika. Če aktivni strežnik ne uspe, pride na pomoč.
  • Aktivni HMaster pošlje srčne utripe skrbniku živalskega vrta, medtem ko neaktivni HMaster posluša obvestilo, ki ga pošlje aktivni HMaster. Če aktivni HMaster ne pošlje srčnega utripa, se seja izbriše in neaktivni HMaster postane aktiven.
  • Če regijski strežnik ne pošlje srčnega utripa, seja poteče in o njej so obveščeni vsi poslušalci. Nato HMaster izvede ustrezna obnovitvena dejanja, o katerih bomo razpravljali kasneje v tem blogu.
  • Zookeeper tudi vzdržuje pot strežnika .META, ki kateri koli stranki pomaga pri iskanju katere koli regije. Naročnik mora najprej pri strežniku .META preveriti, kateremu regijskemu strežniku pripada regija, in dobi pot tega regijskega strežnika.

Ko sem že govoril o strežniku .META, naj vam najprej razložim, kaj je strežnik .META? Tako lahko delo ZooKeeper in .META Server enostavno povežete skupaj. Kasneje, ko vam bom v tem blogu razložil mehanizem iskanja HBase, bom razložil, kako to dvoje delujeta v sodelovanju.

Arhitektura HBase: Meta tabela

  • Tabela META je posebna kataloška tabela HBase. Vzdržuje seznam vseh strežnikov Regions v sistemu za shranjevanje HBase, kot lahko vidite na zgornji sliki.
  • Če pogledamo sliko, ki jo vidite, .META datoteka vzdržuje tabelo v obliki ključev in vrednosti. Ključ predstavlja začetni ključ regije in njen id, medtem ko vrednost vsebuje pot strežnika regije.

Kot sem že razpravljal o Regijskem strežniku in njegovih funkcijah, medtem ko sem vam razlagal Regije, se zdaj premikamo po hierarhiji in osredotočil se bom na komponento Regijskega strežnika in njihove funkcije. Kasneje bom razpravljal o mehanizmu iskanja, branja, pisanja in razumel, kako vse te komponente delujejo skupaj.

Arhitektura HBase: Komponente regijskega strežnika

Ta spodnja slika prikazuje komponente regijskega strežnika. Zdaj jih bom obravnaval ločeno.

Regijski strežnik vzdržuje različne regije, ki se izvajajo na vrhu . Komponente regijskega strežnika so:

  • WAL: Kot lahko sklepate iz zgornje slike, je zapis vnaprej (WAL) datoteka, ki je priložena vsakemu strežniku regije znotraj porazdeljenega okolja. WAL shrani nove podatke, ki niso bili ohranjeni ali namenjeni trajnemu shranjevanju. Uporablja se v primeru, da ni mogoče obnoviti naborov podatkov.
  • Block Cache: Iz zgornje slike je jasno razvidno, da je Block Cache na vrhu strežnika Region. Pogosto prebrane podatke shrani v pomnilnik. Če se podatki v BlockCache uporabljajo vsaj nedavno, se ti podatki odstranijo iz BlockCache.
  • MemStore: To je predpomnilnik za pisanje. Shrani vse dohodne podatke, preden jih zapiše na disk ali v trajni pomnilnik. Za vsako družino stolpcev v regiji obstaja en MemStore. Kot lahko vidite na sliki, obstaja več memStores za regijo, ker vsaka regija vsebuje več družin stolpcev. Podatki so razvrščeni v leksikografskem vrstnem redu, preden jih zapišete na disk.
  • HFile: Na zgornji sliki lahko vidite, da je datoteka HFile shranjena v HDFS. Tako shrani dejanske celice na disk. MemStore podatke posreduje v HFile, ko velikost MemStore preseže.

Zdaj, ko poznamo glavne in manjše sestavne dele arhitekture HBase, bom razložil mehanizem in njihova skupna prizadevanja pri tem. Ne glede na to, ali gre za branje ali pisanje, najprej moramo iskati, kje brati ali kje zapisati datoteko. Torej, razumimo ta postopek iskanja, saj je to eden od mehanizmov, zaradi katerega je HBase zelo priljubljen.

Arhitektura HBase: Kako se iskanje začne v HBase?

Kot veste, Zookeeper shrani lokacijo tabele META. Vsakič, ko odjemalec pristopi z zahtevami za branje ali pisanje v HBase, se zgodi naslednja operacija:

  1. Naročnik pridobi lokacijo tabele META iz ZooKeeper.
  2. Nato odjemalec zahteva dostop do lokacije Regijskega strežnika ustreznega ključa vrstice iz tabele META. Naročnik shrani te podatke z lokacijo tabele META.
  3. Nato bo mesto vrstice dobil tako, da bo zahteval od ustreznega strežnika regije.

Za prihodnje reference odjemalec s svojim predpomnilnikom pridobi lokacijo tabele META in predhodno prebranega strežnika regije s ključem vrstice. Potem se odjemalec ne bo skliceval na tabelo META, dokler ne pride do napake, ker je regija premaknjena ali premaknjena. Nato bo spet zahteval strežnik META in posodobil predpomnilnik.

Kot vsakič odjemalci ne izgubljajo časa z iskanjem lokacije Regijskega strežnika s strežnika META, kar prihrani čas in pospeši postopek iskanja. Zdaj pa naj vam povem, kako poteka pisanje v HBase. Katere komponente so vključene v to in kako so vključene?

Arhitektura HBase: HBase Write Mehanizem

Ta spodnja slika pojasnjuje mehanizem pisanja v HBase.

Mehanizem pisanja gre zaporedoma skozi naslednji postopek (glej zgornjo sliko):

Korak 1: Kadar koli ima stranka zahtevo za pisanje, stranka podatke zapiše v WAL (Write Ahead Log).

  • Nato so spremembe dodane na koncu datoteke WAL.
  • Datoteka WAL se vzdržuje v vsakem regijskem strežniku in regijski strežnik jo uporablja za obnovitev podatkov, ki niso zajeti na disku.

2. korak: Ko so podatki zapisani v WAL, se kopirajo v MemStore.

3. korak: Ko so podatki nameščeni v MemStore, stranka prejme potrditev.

4. korak: Ko MemStore doseže prag, podatke odvrže ali jih posreduje v datoteko HFile.

Zdaj pa se poglobimo in razumemo, kako MemStore prispeva k pisanju in kakšne so njegove funkcije?

kako zagnati php v operacijskem sistemu Windows 10

HBase Write Mehanizem- MemStore

  • MemStore podatke, shranjene v njem, vedno posodablja v leksikografskem vrstnem redu (zaporedno v slovarju) kot razvrščene KeyValues. Za vsako družino stolpcev obstaja en MemStore, zato se posodobitve shranijo na razvrščen način za vsako družino stolpcev.
  • Ko MemStore doseže prag, razvrsti vse podatke v novo HFile. Ta datoteka HF je shranjena v HDFS. HBase vsebuje več datotek HFi za vsako družino stolpcev.
  • Sčasoma število HFile raste, ko MemStore odvrže podatke.
  • MemStore shrani tudi zadnjo zapisano zaporedno številko, zato Master Server in MemStore vesta, kaj je storjeno do zdaj in kje začeti. Ko se regija zažene, se prebere zadnja zaporedna številka in s te številke se začnejo nova urejanja.

Kot sem že večkrat razpravljal, je HFile glavno trajno shranjevanje v arhitekturi HBase. Končno so vsi podatki predani HFile, ki je trajno shranjevanje HBase. Poglejmo si torej lastnosti datoteke HFile, ki omogoča hitrejše iskanje med branjem in pisanjem.

Arhitektura HBase: HBase Write Mehanizem- HFile

  • Zapisi so zaporedno postavljeni na disk. Zato je gibanje glave branja in pisanja na disku zelo manjše. Zaradi tega je mehanizem pisanja in iskanja zelo hiter.
  • Indeksi HFile se naložijo v pomnilnik vsakič, ko se odpre HFile. To pomaga pri iskanju zapisa v enem samem iskanju.
  • Napovednik je kazalec, ki kaže na meta blok HFile. Zapisano je na koncu predane datoteke. Vsebuje informacije o časovnem žigu in filtrih cvetov.
  • Bloom Filter pomaga pri iskanju parov vrednosti ključev, preskoči datoteko, ki ne vsebuje zahtevane tipke vrstice. Timestamp pomaga tudi pri iskanju različice datoteke, pomaga pri preskakovanju podatkov.

Po poznavanju mehanizma pisanja in vloge različnih komponent pri hitrejšem pisanju in iskanju. Pojasnil vam bom, kako bralni mehanizem deluje znotraj arhitekture HBase? Nato bomo prešli na mehanizme, ki povečajo učinkovitost HBase, kot so kompaktiranje, razdelitev regije in obnovitev.

Arhitektura HBase: Preberite mehanizem

Kot je razloženo v našem iskalnem mehanizmu, odjemalec najprej pridobi lokacijo regijskega strežnika iz strežnika .META, če ga odjemalec nima v predpomnilniku. Nato gre skozi zaporedne korake, kot sledi:

  • Za branje podatkov optični bralnik najprej poišče celico vrstice v predpomnilniku blokov. Tu so shranjeni vsi nedavno prebrani pari vrednosti ključev.
  • Če Scanner ne najde zahtevanega rezultata, se premakne v MemStore, saj vemo, da je to predpomnilnik za pisanje. Tam išče zadnje napisane datoteke, ki v HFile še niso izpisane.
  • Končno bo za nalaganje podatkov iz HFile uporabil bloom filtre in blokiral predpomnilnik.

Do zdaj sem razpravljal o mehanizmu iskanja, branja in pisanja HBase. Zdaj si bomo ogledali mehanizem HBase, ki omogoča hitro iskanje, branje in pisanje v HBase. Najprej bomo razumeli Zbijanje , ki je eden od teh mehanizmov.

Arhitektura HBase: Zbijanje

HBase združuje HFiles za zmanjšanje pomnilnika in zmanjšanje števila iskanj po disku, potrebnih za branje. Ta postopek se imenuje zbijanje . Zbijanje izbere nekaj datotek HFi iz regije in jih kombinira. Kot vidite na zgornji sliki, obstajata dve vrsti stiskanja.

  1. Manjše zbijanje : HBase samodejno izbere manjše datoteke HFiles in jih ponovno posreduje večjim datotekam HFiles, kot je prikazano na zgornji sliki. To se imenuje Manjše zbijanje. Izvaja sortiranje združevanja za predajo manjših datotek HFiles večjim datotekam HFiles. To pomaga pri optimizaciji prostora za shranjevanje.
  2. Glavno zbijanje: Kot je prikazano na zgornji sliki, se pri glavnem zbijanju HBase združi in ponovno prenese manjše datoteke HFi regije v novo datoteko HFile. V tem postopku so iste družine stolpcev postavljene skupaj v novo HFile. V tem postopku pade izbrisana in potekla celica. Poveča bralno zmogljivost.

Toda med tem postopkom se lahko vhodno-izhodni diski in omrežni promet preobremenijo. To je znano kot pisanje ojačitve . Torej je običajno načrtovan med časi nizke obremenitve.

Zdaj je še en postopek optimizacije učinkovitosti, o katerem bom razpravljal, Regija Split . To je zelo pomembno za uravnoteženje obremenitve.

Arhitektura HBase: Regija Split

Spodnja slika prikazuje mehanizem Region Split.

Kadar regija postane velika, je razdeljena na dve podrejeni regiji, kot je prikazano na zgornji sliki. Vsaka regija predstavlja natančno polovico nadrejene regije. Potem se ta delitev sporoči HMasterju. To obravnava isti strežnik regij, dokler jih HMaster ne dodeli novemu strežniku regije za uravnoteženje obremenitve.

V nadaljevanju, nenazadnje, razložil vam bom, kako HBase obnovi podatke po napaki. Kot to vemo Odprava okvare je zelo pomembna lastnost HBase, zato nam sporočite, kako HBase obnovi podatke po okvari.

Arhitektura HBase: HBase zrušitve in obnovitev podatkov

  • Kadar regijski strežnik odpove, ZooKeeper obvesti HMaster o napaki.
  • Nato HMaster razdeli in dodeli regije zrušenega regijskega strežnika številnim aktivnim regijskim strežnikom. Za obnovitev podatkov MemStore okvarjenega regijskega strežnika HMaster distribuira WAL vsem regijskim strežnikom.
  • Vsak strežnik regije znova zažene WAL za izdelavo MemStore za družino stolpcev te neuspešne regije.
  • Podatki so zapisani v časovnem zaporedju (pravočasno) v WAL. Zato ponovna izvedba tega WAL pomeni izvedbo vseh sprememb, ki so bile narejene in shranjene v datoteki MemStore.
  • Potem ko vsi strežniki regij izvedejo WAL, se obnovijo podatki MemStore za vso družino stolpcev.

Upam, da bi vam ta spletni dnevnik pomagal pri podcenjevanju podatkovnega modela HBase in arhitekture HBase. Upam, da ste uživali. Zdaj se lahko povežete z značilnostmi HBase (kar sem razložil v prejšnjem Vadnica za HBase blog) z HBase Architecture in razumeti, kako deluje interno. Zdaj, ko poznate teoretični del HBase, preidite na praktični del. Ob upoštevanju tega, naš naslednji spletni dnevnik bo razložil vzorec HBase POC .

Zdaj, ko ste razumeli arhitekturo HBase, si oglejte Edureka, zaupanja vredno podjetje za spletno učenje z mrežo več kot 250.000 zadovoljnih učencev, ki se širijo po vsem svetu. Tečaj Edureka Big Data Hadoop Certification Training pomaga učencem, da postanejo strokovnjaki za HDFS, prejo, MapReduce, Pig, Hive, HBase, Oozie, Flume in Sqoop z uporabo primerov uporabe v realnem času na področju maloprodaje, družbenih medijev, letalstva, turizma in financ.

Imate vprašanje za nas? Prosimo, omenite to v oddelku za komentarje in se vam bomo javili.