HBase ArchiTecture: Use Cases, Components & Data Model

HBase Architecture og dens viktige komponenter

HBase-arkitektur består hovedsakelig av fire komponenter

  • HMaster
  • HRegionserver
  • HR-regioner
  • Dyrepasser
  • HDFS

Nedenfor er en detaljert arkitektur av HBase med komponenter:

HBase Architecture
HBase ArchiTecture Diagram

HMaster

HMaster i HBase er implementeringen av en Master-server i HBase-arkitektur. Den fungerer som en overvåkingsagent for å overvåke alle Region Server-forekomster som er tilstede i klyngen og fungerer som et grensesnitt for alle metadataendringene. I et distribuert klyngemiljø kjører Master på NameNode. Master kjører flere bakgrunnstråder.

Følgende er viktige roller utført av HMaster i HBase.

  • Spiller en viktig rolle når det gjelder ytelse og vedlikehold av noder i klyngen.
  • HMaster gir adminytelse og distribuerer tjenester til forskjellige regionservere.
  • HMaster tildeler regioner til regionservere.
  • HMaster har funksjoner som å kontrollere belastningsbalansering og failover for å håndtere belastningen over noder som er tilstede i klyngen.
  • Når en klient ønsker å endre et hvilket som helst skjema og endre eventuelle Metadata-operasjoner, tar HMaster ansvaret for disse operasjonene.

Noen av metodene som eksponeres av HMaster Interface er primært metadataorienterte metoder.

  • Tabell (opprett tabell, fjerntabell, aktiver, deaktiver)
  • ColumnFamily (legg til kolonne, endre kolonne)
  • Region (flytte, tilordne)

Klienten kommuniserer på en toveis måte med både HMaster og ZooKeeper. For lese- og skriveoperasjoner tar den direkte kontakt med HRegion-servere. HMaster tildeler regioner til regionservere og kontrollerer på sin side helsestatusen til regionservere.

I hele arkitekturen har vi flere regionservere. Hlog tilstede i regionservere som skal lagre alle loggfilene.

HBase Region-servere

Når HBase Region Server mottar skrive- og leseforespørsler fra klienten, tilordner den forespørselen til en bestemt region, der den faktiske kolonnefamilien ligger. Imidlertid kan klienten kontakte HRegion-servere direkte, det er ikke behov for HMaster obligatorisk tillatelse til klienten angående kommunikasjon med HRegion-servere. Klienten krever HMaster-hjelp når operasjoner relatert til metadata og skjemaendringer kreves.

HRegionServer er Region Server-implementeringen. Den er ansvarlig for å betjene og administrere regioner eller data som finnes i en distribuert klynge. Regionserverne kjører på datanoder som er tilstede i Hadoop-klyngen.

HMaster kan komme i kontakt med flere HRegion-servere og utfører følgende funksjoner.

  • Hosting og administrering av regioner
  • Deler regioner automatisk
  • Håndtering av lese- og skriveforespørsler
  • Kommuniserer direkte med kunden

HBase-regioner

HRegioner er de grunnleggende byggeelementene i HBase-klyngen som består av distribusjon av tabeller og består av kolonnefamilier. Den inneholder flere butikker, en for hver kolonnefamilie. Den består hovedsakelig av to komponenter, som er Memstore og Hfile.

Dyrepasser

HBase Zookeeper er en sentralisert overvåkingsserver som vedlikeholder konfigurasjonsinformasjon og gir distribuert synkronisering. Distribuert synkronisering er å få tilgang til de distribuerte applikasjonene som kjører på tvers av klyngen med ansvaret for å tilby koordineringstjenester mellom noder. Hvis klienten ønsker å kommunisere med regioner, må serverens klient henvende seg til ZooKeeper først.

Det er et åpen kildekode-prosjekt, og det gir så mange viktige tjenester.

Tjenester levert av Dyrepasser

  • Vedlikeholder konfigurasjonsinformasjon
  • Gir distribuert synkronisering
  • Klientkommunikasjonsetablering med regionservere
  • Gir flyktige noder som representerer forskjellige regionservere
  • Masterservers brukbarhet av flyktige noder for å oppdage tilgjengelige servere i klyngen
  • For å spore serverfeil og nettverkspartisjoner

Master- og HBase-slavenoder (regionservere) registrerte seg hos ZooKeeper. Klienten trenger tilgang til ZK(zookeeper) quorum-konfigurasjon for å koble til hoved- og regionservere.

Under en feil på noder som finnes i HBase-klyngen, vil ZKquoram utløse feilmeldinger, og den begynner å reparere de mislykkede nodene.

HDFS

HDFS er en Hadoop-distribuert File System, som navnet tilsier, gir det et distribuert miljø for lagringen, og det er et filsystem designet på en måte for å kjøre på råvaremaskinvare. Den lagrer hver fil i flere blokker, og for å opprettholde feiltoleranse, blir blokkene replikert over en Hadoop-klynge.

HDFS gir en høy grad av feiltoleranse og kjører på billig råvare. Ved å legge til noder til klyngen og utføre prosessering og lagring ved å bruke den billige varemaskinvaren, vil det gi klienten bedre resultater sammenlignet med den eksisterende.

Her replikeres dataene som er lagret i hver blokk til 3 noder. I et tilfelle når en node går ned, vil det ikke være noe tap av data, den vil ha en riktig sikkerhetskopigjenopprettingsmekanisme.

HDFS komme i kontakt med HBase-komponentene og lagre en stor mengde data på en distribuert måte.

HBase datamodell

HBase datamodell er et sett med komponenter som består av tabeller, rader, kolonnefamilier, celler, kolonner og versjoner. HBase-tabeller inneholder kolonnefamilier og rader med elementer definert som primærnøkler. En kolonne i HBase-datamodelltabellen representerer attributter til objektene.

HBase Data Model består av følgende elementer,

  • Sett med bord
  • Hver tabell med kolonnefamilier og rader
  • Hver tabell må ha et element definert som Primærnøkkel.
  • Radnøkkel fungerer som en primærnøkkel i HBase.
  • All tilgang til HBase-tabeller bruker denne primærnøkkelen
  • Hver kolonne som er tilstede i HBase, angir attributt som tilsvarer objektet

HBase-brukstilfeller

Følgende er eksempler på HBase-brukstilfeller med en detaljert forklaring av løsningen den gir på ulike tekniske problemer

Problemstilling Oppløsning
Telekomindustri står overfor følgende tekniske utfordringer

  • Lagring av milliarder av CDR-loggposter (Call detailed recording) generert av telekomdomene
  • Gir sanntidstilgang til CDR-logger og faktureringsinformasjon til kunder
  • Gi en kostnadseffektiv løsning sammenlignet med tradisjonelle databasesystemer
HBase brukes til å lagre milliarder av rader med detaljerte samtaleposter. Hvis 20 TB med data legges til per måned til den eksisterende RDBMS-databasen, vil ytelsen forringes. For å håndtere store mengder data i denne brukssaken er HBase den beste løsningen. HBase utfører rask spørring og viser poster.
Ocuco Bankindustrien genererer millioner av poster på daglig basis. I tillegg til dette trenger banknæringen også en analyseløsning som kan oppdage svindel i pengetransaksjoner For å lagre, behandle og oppdatere store mengder data og utføre analyser, er en ideell løsning – HBase integrert med flere Hadoop-økosystemkomponenter.

Foruten det kan HBase brukes

  • Når det er behov for å skrive tunge søknader.
  • Utføre online logganalyse og generere samsvarsrapporter.

Lagringsmekanisme i HBase

HBase er en kolonneorientert database og data lagres i tabeller. Tabellene er sortert etter RowId. Som vist nedenfor har HBase RowId, som er samlingen av flere kolonnefamilier som finnes i tabellen.

Kolonnefamiliene som finnes i skjemaet er nøkkelverdi-par. Hvis vi observerer i detalj hver kolonnefamilie har flere antall kolonner. Kolonneverdiene lagret i diskminnet. Hver celle i tabellen har sine egne metadata som tidsstempel og annen informasjon.

Lagringsmekanisme i HBase
Lagringsmekanisme i HBase

Når vi kommer til HBase, er følgende nøkkelbegreper som representerer tabellskjema

  • Bord: Samling av rader tilstede.
  • Rad: Samling av kolonnefamilier.
  • Kolonnefamilie: Samling av kolonner.
  • Kolonne: Samling av nøkkelverdi-par.
  • namespace: Logisk gruppering av tabeller.
  • Cell: En {rad, kolonne, versjon}-tuppel spesifiserer nøyaktig en celledefinisjon i HBase.

Kolonneorienterte vs radorienterte lagringer

Kolonne- og radorienterte lagringsenheter er forskjellige i lagringsmekanismen. Som vi alle vet lagrer tradisjonelle relasjonsmodeller data i form av radbasert format som når det gjelder rader med data. Kolonneorienterte lagringer lagrer datatabeller i form av kolonner og kolonnefamilier.

Følgende tabell gir noen viktige forskjeller mellom disse to lagringene

Kolonneorientert database Radorientert database
Når situasjonen kommer til prosess og analyser bruker vi denne tilnærmingen. Slik som Online analytisk behandling og det er applikasjoner. Online transaksjonsprosess slik som bank- og finansdomener bruker denne tilnærmingen.
Mengden data som kan lagres i denne modellen er veldig stor som når det gjelder petabyte Den er designet for et lite antall rader og kolonner.

HBase lese og skrive data forklart

Lese- og skriveoperasjonene fra klient til Hfile kan vises i diagrammet nedenfor.

HBase Lese og skrive data

Trinn 1) Klienten ønsker å skrive data og kommuniserer i sin tur først med regionsserver og deretter regioner

Trinn 2) Regioner som kontakter memstore for lagring knyttet til kolonnefamilien

Trinn 3) Data lagres først i Memstore, hvor dataene sorteres og deretter skylles de inn i HFile. Hovedgrunnen til å bruke Memstore er å lagre data i et distribuert filsystem basert på Row Key. Memstore vil bli plassert i regionserverens hovedminne mens HF-filer skrives inn i HDFS.

Trinn 4) Klient ønsker å lese data fra regioner

Trinn 5) På sin side kan klienten ha direkte tilgang til Mem-butikken, og den kan be om data.

Trinn 6) Klient henvender seg til HFiles for å få dataene. Dataene hentes og hentes av Kunden.

Memstore har modifikasjoner i minnet i butikken. Hierarkiet av objekter i HBase-regioner er som vist fra topp til bunn i tabellen nedenfor.

Bord HBase-tabell til stede i HBase-klyngen
Region HR-regioner for de presenterte tabellene
Butikk Den lagres per kolonnefamilie for hver region for tabellen
Memstore
  • Memstore for hver butikk for hver region for bordet
  • Den sorterer data før den skylles inn i HFiles
  • Skrive- og leseytelsen vil øke på grunn av sortering
Lagrefil StoreFiles for hver butikk for hver region for tabellen
Blokker Blokker tilstede inne i StoreFiles

HBase vs. HDFS

HBase kjører på toppen av HDFS og Hadoop. Noen viktige forskjeller mellom HDFS og HBase er når det gjelder dataoperasjoner og prosessering.

HBASE HDFS
Operasjoner med lav latens Operasjoner med høy latens
Tilfeldig lesing og skriving Skriv en gang Les mange ganger
Tilgang gjennom shell-kommandoer, klient-API i Java, REST, Avro eller Thrift Primært tilgang via MR (Map Reduce)-jobber
Både lagring og prosess kan utføres Det er kun for lagringsområder

Noen typiske IT-industriapplikasjoner bruker HBase-operasjoner sammen med Hadoop. Applikasjoner inkluderer børsdata, nettbankdataoperasjoner og behandling Hbase er best egnet løsningsmetode.

Sammendrag

  • HBase-arkitekturkomponenter: HMaster, HRegion Server, HRegions, ZooKeeper, HDFS
  • HMaster i HBase er implementeringen av en Master-server i HBase-arkitektur.
  • Når HBase Region Server mottar skrive- og leseforespørsler fra klienten, tildeler den forespørselen til en spesifikk region, der den faktiske kolonnefamilien befinner seg
  • HRegioner er de grunnleggende byggeelementene i HBase-klyngen som består av distribusjon av tabeller og består av kolonnefamilier.
  • HBase Zookeeper er en sentralisert overvåkingsserver som vedlikeholder konfigurasjonsinformasjon og gir distribuert synkronisering.
  • HDFS gir en høy grad av feiltoleranse og kjører på billig råvare.
  • HBase Data Model er et sett med komponenter som består av tabeller, rader, kolonnefamilier, celler, kolonner og versjoner.
  • Kolonne- og radorienterte lagringsenheter er forskjellige i lagringsmekanismen.