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 er tilstede i tabellen.
Kolonnefamiliene som er tilstede i skjemaet er nøkkelverdipar. Hvis vi i detalj observerer hver kolonnefamilie som har flere antall kolonner. Kolonneverdiene lagret i diskminnet. Hver celle i tabellen har sine egne metadata som tidsstempel og annen informasjon.

Lagringsmekanisme i HBase
Når det gjelder HBase er følgende nøkkelord som representerer tabellskjema
- Tabell : Samling av rader til stede.
- Rad : Samling av kolonnefamilier.
- Kolonnefamilie : Samling av kolonner.
- Kolonne : Samling av nøkkelverdipar.
- Navneområde : Logisk gruppering av tabeller.
- Celle : En {rad, kolonne, versjon} tuple spesifiserer nøyaktig en celledefinisjon i HBase.
I denne opplæringen - vil du lære,
- Lagringsmekanisme i HBase
- HBase datamodell
- HBase Architecture og dens viktige komponenter
- HBase Les og skriv data forklart
- HBase brukstilfeller
- HBASE vs. HDFS
Kolonneorientert vs Radorientert lagring
Kolonne- og radorienterte lagre er forskjellige i lagringsmekanismen. Som vi alle vet, lagrer tradisjonelle relasjonsmodeller data i form av radbasert format som i form av datarader. Kolonneorienterte lagringer lagrer datatabeller når det gjelder kolonner og kolonnefamilier.
Tabellen nedenfor gir noen viktige forskjeller mellom disse to lagrene
Kolonneorientert database | Radorientert database |
|
|
|
|
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 tabellen HBase datamodell representerer attributter til objektene.
HBase datamodell 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ære nøkkelen
- Hver kolonne i HBase betegner attributt som tilsvarer objektet
HBase Architecture og dens viktige komponenter
Nedenfor er en detaljert arkitekter av HBase med komponenter:
HBase-arkitekturen består hovedsakelig av fire komponenter
- HMaster
- HRregionserver
- HRregioner
- Dyrepasser
- HDFS
HMaster:
HMaster i HBase er implementeringen av en Master-server i HBase-arkitektur. Det 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 tilbyr adminytelse og distribuerer tjenester til forskjellige regionsservere.
- HMaster tildeler regioner til regionservere.
- HMaster har funksjonene som å kontrollere lastbalansering og failover for å håndtere belastningen over noder som er tilstede i klyngen.
- Når en klient ønsker å endre skjema og endre Metadata-operasjoner, tar HMaster ansvar for disse operasjonene.
Noen av metodene eksponert av HMaster Interface er primært Metadata-orienterte metoder.
- Tabell (createTable, removeTable, enable, disable)
- ColumnFamily (legg til kolonne, endre kolonne)
- Region (flytte, tildele)
Klienten kommuniserer på en toveis måte med både HMaster og ZooKeeper. For lese- og skriveoperasjoner, kontakter den direkte med HRegion-servere. HMaster tilordner regioner til regionservere, og i sin tur sjekker du helsesstatusen til områdeserverne.
I hele arkitekturen har vi flere regionservere. Hlog til stede i regionservere som skal lagre alle loggfilene.
HBase Regions-servere:
Når HBase Region Server mottar forespørsler om skriving og lesing fra klienten, tilordner den forespørselen til en bestemt region, der den faktiske kolonnefamilien befinner seg. Imidlertid kan klienten kontakte direkte med HRegion-servere, 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 er påkrevd.
HRegionServer er implementeringen av Region Server. Det er ansvarlig for å betjene og administrere regioner eller data som er tilstede i en distribuert klynge. Regionserverne kjøres 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 administrere regioner
- Deler regioner automatisk
- Håndtering av lese- og skriveforespørsler
- Kommunisere med klienten direkte
HBase-regioner:
HR-regioner er de grunnleggende bygningselementene i HBase-klyngen som består av fordelingen 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 distribuerte applikasjoner som kjører over klyngen med ansvaret for å tilby koordineringstjenester mellom noder. Hvis klienten vil kommunisere med regioner, må serverens klient nærme seg ZooKeeper først.
Det er et open source-prosjekt, og det gir så mange viktige tjenester.
Tjenester levert av ZooKeeper
- Opprettholder konfigurasjonsinformasjon
- Tilbyr distribuert synkronisering
- Klientkommunikasjonsetablering med regionservere
- Tilbyr kortvarige noder som representerer forskjellige regionservere
- Master serveres brukervennlighet av kortvarige noder for å oppdage tilgjengelige servere i klyngen
- For å spore serverfeil og nettverkspartisjoner
Master- og HBase-slaveknuter (regionservere) registrerte seg hos ZooKeeper. Klienten trenger tilgang til ZK (zookeeper) quorumkonfigurasjon for å koble til master- og regionservere.
Under svikt i noder som finnes i HBase-klynge, vil ZKquoram utløse feilmeldinger, og det begynner å reparere de mislykkede nodene.
HDFS:
HDFS er et Hadoop-distribuert filsystem, som navnet antyder, gir det et distribuert miljø for lagring, og det er et filsystem designet på en måte å kjøre på råvaremaskinvare. Den lagrer hver fil i flere blokker, og for å opprettholde feiltoleranse replikeres blokkene over en Hadoop-klynge.
HDFS gir en høy grad av feiltoleranse og kjører på billig råvaremaskinvare. Ved å legge til noder i klyngen og utføre behandling og lagring ved å bruke billig råvaremaskinvare, vil det gi klienten bedre resultater sammenlignet med den eksisterende.
Her inne replikeres dataene som er lagret i hver blokk i 3 noder, uansett i tilfelle når en node går ned, vil det ikke være noe tap av data, den vil ha en ordentlig sikkerhetskopieringsmekanisme.
HDFS kommer i kontakt med HBase-komponentene og lagrer en stor mengde data på en distribuert måte.
HBase Les og skriv data forklart
Les og skriv-operasjonene fra klient til Hfile kan vises i diagrammet nedenfor.
Trinn 1) Klienten ønsker å skrive data og kommuniserer i sin tur først med Regions server og deretter regioner
Trinn 2) Regioner som kontakter memstore for lagring tilknyttet kolonnefamilien
Trinn 3) Første datalagring i Memstore, hvor dataene sorteres, og deretter skylles de inn i HFile. Hovedårsaken til bruk av Memstore er å lagre data i et distribuert filsystem basert på radnøkkel. Memstore vil bli plassert i hovedminnet til Region-serveren mens HFiles er skrevet inn i HDFS.
Trinn 4) Kunden vil lese data fra regioner
Trinn 5) I sin tur kan klienten ha direkte tilgang til Mem store, og den kan be om data.
Trinn 6) Kunden nærmer seg HFiles for å få data. Dataene blir hentet og hentet av klienten.
Memstore har endringer 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 | HRregioner for de presenterte tabellene |
butikk | Den lagrer per ColumnFamily for hver region for tabellen |
Memstore |
|
StoreFile | StoreFiles for hver butikk for hver region for tabellen |
Blokkere | Blokker finnes i StoreFiles |
HBase brukstilfeller
Følgende er eksempler på HBase-brukstilfeller med en detaljert forklaring på løsningen den gir til ulike tekniske problemer
Problemstilling | Løsning |
---|---|
Telekomindustrien står overfor følgende tekniske utfordringer
| HBase brukes til å lagre milliarder av rader med detaljerte samtaleposter. Hvis det legges til 20 TB data per måned i den eksisterende RDBMS-databasen, vil ytelsen forverres. For å håndtere en stor mengde data i dette brukstilfellet, er HBase den beste løsningen. HBase utfører rask spørring og viser poster. |
The Banking industrien genererer millioner av plater på en 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 datamengder og utføre analyser, er en ideell løsning - HBase integrert med flere Hadoop økosystemkomponenter. |
Bortsett fra det, kan HBase brukes
- Når det er behov for å skrive tunge applikasjoner.
- Utfører logganalyse på nettet og genererer rapporter om samsvar.
HBase vs. HDFS
HBase kjører på toppen av HDFS og Hadoop. Noen viktige forskjeller mellom HDFS og HBase er når det gjelder datadrift og behandling.
HBASE |
HDFS |
|
|
|
|
|
|
|
|
|
|
Noen typiske IT-industrielle applikasjoner bruker HBase-operasjoner sammen med Hadoop. Søknadene inkluderer børsdata, datadrift i nettbank og behandling av Hbase er den beste løsningsmetoden.
Sammendrag
Hbase er en av NoSql kolonneorientert distribuert database tilgjengelig i apache foundation. HBase gir mer ytelse for å hente færre poster i stedet for Hadoop eller Hive. Det er veldig enkelt å søke etter gitt inngangsverdi fordi det støtter indeksering, transaksjoner og oppdatering.
Vi kan utføre analyser i sanntid online ved hjelp av Hbase integrert med Hadoop-økosystemet. Den har en automatisk og konfigurerbar skjæring for datasett eller tabeller og gir avslappende API-er for å utføre MapReduce-jobbene.