HBase ArchiTecture: Use Cases, Components & Data Model

⚡ Smart opsummering

HBase-arkitekturen er bygget op af fire koordinerende komponenter - HMaster, Region Servers, ZooKeeper og HDFS - der lagrer data i en kolonneorienteret model, opdeler dem i regioner og betjener tilfældige læsninger og skrivninger med lav latenstid.

  • 🧭 HMaster: Tildeler regioner til regionsservere, håndterer load balancing og failover og administrerer ændringer i skemaer og metadata.
  • 🗄️ Regionale servere: Betjen klienters læse- og skriveanmodninger, host regioner og opdel regioner automatisk, efterhånden som data vokser.
  • 🧱 Regioner og butikker: Hver region har ét lager pr. kolonnefamilie, bygget ud fra et MemStore i hukommelsen og HFiles på disken.
  • 🔗 Dyrepasser: Koordinerer klyngen, tracks-serverfejl og indeholder den quorumkonfiguration, som klienter bruger til at oprette forbindelse.
  • 🧮 Datamodel: Tabeller grupperer kolonnefamilier og rækker, og en rækkenøgle fungerer som primærnøgle for enhver adgang.
  • ⚡ HBase vs. HDFS: HBase tilføjer tilfældige læsninger og skrivninger med lav latenstid oven i HDFS-batchlagring.

HBase-arkitektur med dens komponenter, datamodel og læse- og skrivedataflow

Apache HBase er en distribueret, kolonneorienteret NoSQL-database, der kører oven på Hadoop og Hadoop Distributed File System (HDFS). Dets arkitektur kombinerer en koordinerende master, regionservere og ZooKeeper til at gemme meget store tabeller og udføre hurtige tilfældige læsninger og skrivninger.

HBase Architecture og dens vigtige komponenter

HBase-arkitekturen har følgende hovedkomponenter:

  • HMaster
  • HRegionServer
  • HR-regioner
  • Dyrepasser
  • HDFS

Nedenfor er en detaljeret arkitektur af HBase med dens komponenter, som vist i diagrammet.

HBase-arkitekturdiagram, der viser HMaster, Region Servers, ZooKeeper og HDFS

HMaster

HMaster i HBase er implementeringen af ​​en masterserver i HBase-arkitekturen. Den fungerer som en overvågningsagent til at overvåge alle Region Server-instanser, der er til stede i klyngen, og fungerer som en grænseflade for alle metadataændringer. I et distribueret klyngemiljø kører masteren på NameNode. Masteren kører flere baggrundstråde.

Følgende er vigtige roller, som HMaster udfører i HBase:

  • Spiller en afgørende rolle med hensyn til ydeevne og vedligeholdelse af noder i klyngen.
  • HMaster leverer admin ydeevne og distribuerer tjenester til forskellige regionsservere.
  • HMaster tildeler regioner til regionsservere.
  • HMaster styrer load balancing og failover for at håndtere belastningen på noder, der findes i klyngen.
  • Når en klient ønsker at ændre et skema eller en metadataoperation, tager HMaster ansvaret for disse operationer.

Nogle af de metoder, der eksponeres af HMaster-grænsefladen, er primært metadata-orienterede metoder:

  • Tabel (opret tabel, fjern tabel, aktiver, deaktiver)
  • ColumnFamily (tilføj kolonne, rediger kolonne)
  • Region (flytte, tildele)

Klienten kommunikerer tovejs med både HMaster og ZooKeeper. Ved læse- og skriveoperationer kontakter den HRegion-serverne direkte. HMaster tildeler regioner til regionservere og kontrollerer til gengæld regionservernes sundhedsstatus.

I hele arkitekturen har vi flere regionservere. En HLog er til stede på regionserverne, som gemmer alle logfilerne.

HBase Region-servere

Når en HBase Region Server modtager skrive- og læseanmodninger fra klienten, tildeler den anmodningen til en bestemt region, hvor den faktiske kolonnefamilie befinder sig. Klienten kan kontakte HRegion-serverne direkte; der er ikke behov for obligatorisk HMaster-tilladelse for at klienten kan kommunikere med HRegion-serverne. Klienten kræver kun HMaster-hjælp, når der kræves handlinger relateret til metadata og skemaændringer.

HRegionServer er implementeringen af ​​Region Server. Den er ansvarlig for at betjene og administrere regioner, eller de data, der findes i en distribueret klynge. Regionserverne kører på de datanoder, der findes i Hadoop-klyngen.

HMaster kan komme i kontakt med flere HRegion-servere og udføre følgende funktioner:

  • Hosting og administration af regioner
  • Opdeler regioner automatisk
  • Håndtering af læse- og skriveanmodninger
  • Kommunikerer direkte med kunden

HBase-regioner

HRegions er de grundlæggende byggeelementer i en HBase-klynge. De består af distributionen af ​​tabeller og består af kolonnefamilier. En region indeholder flere lagre, et for hver kolonnefamilie. Den består hovedsageligt af to komponenter: MemStore og HFile.

Dyrepasser

HBase Dyrepasser er en centraliseret overvågningsserver, der vedligeholder konfigurationsoplysninger og leverer distribueret synkronisering. Distribueret synkronisering koordinerer de distribuerede applikationer, der kører på tværs af klyngen, og leverer koordineringstjenester mellem noder. Hvis klienten ønsker at kommunikere med regioner, skal klienten først kontakte ZooKeeper.

Det er et open source-projekt, og det leverer mange vigtige tjenester.

Tjenester leveret af ZooKeeper:

  • Vedligeholder konfigurationsoplysninger
  • Giver distribueret synkronisering
  • Etablerer klientkommunikation med regionale servere
  • Leverer kortvarige noder, der repræsenterer servere i forskellige regioner
  • Lader masterserveren bruge disse flygtige noder til at finde tilgængelige servere i klyngen.
  • Tracks serverfejl og netværkspartitioner

Master- og HBase-slavenoderne (regionservere) registrerer sig selv hos ZooKeeper. Klienten skal have adgang til ZooKeeper (ZK) quorumkonfigurationen for at oprette forbindelse til master- og regionserverne.

Under en fejl i noder i HBase-klyngen udløser ZooKeeper-kvorummet fejlmeddelelser og begynder at reparere de fejlbehæftede noder.

HDFS

HDFS er Hadoop-distribueret File SystemSom navnet antyder, leverer det et distribueret miljø til lagring, og det er et filsystem designet til at køre på almindelig hardware. Det gemmer hver fil i flere blokke, og for at opretholde fejltolerance replikeres blokkene på tværs af en Hadoop-klynge.

HDFS tilbyder en høj grad af fejltolerance og kører på billig standardhardware. Ved at tilføje noder til klyngen og udføre behandling og lagring ved hjælp af billig standardhardware, giver det klienten bedre resultater sammenlignet med den eksisterende opsætning.

Her replikeres dataene, der er gemt i hver blok, på tværs af 3 noder, så hvis en node går ned, vil der ikke være noget datatab; den har en ordentlig backup- og gendannelsesmekanisme.

HDFS kommer i kontakt med HBase-komponenterne og lagrer en stor mængde data på en distribueret måde.

HBase Data Model

HBase-datamodellen er et sæt komponenter, der består af tabeller, rækker, kolonnefamilier, celler, kolonner og versioner. HBase-tabeller indeholder kolonnefamilier og rækker med elementer defineret som primære nøgler. En kolonne i HBase-datamodeltabellen repræsenterer en attribut for objekterne.

HBase-datamodellen består af følgende elementer:

  • Sæt af borde
  • Hver tabel med kolonnefamilier og rækker
  • Hver tabel skal have et element defineret som en primærnøgle.
  • Rækkenøglen fungerer som en primærnøgle i HBase.
  • Enhver adgang til HBase-tabeller bruger denne primære nøgle.
  • Hver kolonne i HBase angiver en attribut, der svarer til et objekt.

HBase Use Cases

Følgende er eksempler på HBase-brugsscenarier med en detaljeret forklaring af den løsning, HBase tilbyder på forskellige tekniske problemer.

Problemformulering Løsning
Telekommunikationsbranchen står over for følgende tekniske udfordringer: lagring af milliarder af CDR-logfiler (Call Detail Record) genereret af telekommunikationsdomænet; adgang til CDR-logfiler og kunders faktureringsoplysninger i realtid; og en omkostningseffektiv løsning sammenlignet med traditionelle databasesystemer. HBase bruges til at gemme milliarder af rækker af detaljerede opkaldsposter. Hvis der tilføjes 20 TB data om måneden til den eksisterende RDBMS-database, forringes ydeevnen. Til at håndtere en stor mængde data i denne use case er HBase den bedste løsning. HBase udfører hurtig forespørgsel og viser poster.
Banksektoren genererer millioner af poster dagligt. Derudover har banksektoren også brug for en analyseløsning, der kan opdage svindel i pengetransaktioner. For at gemme, behandle og opdatere store mængder data og udføre analyser er en ideel løsning HBase integreret med flere Hadoop-økosystemkomponenter.

Derudover kan HBase bruges:

  • Når der er behov for skrivetunge applikationer.
  • Til udførelse af online loganalyse og generering af compliance-rapporter.

Opbevaringsmekanisme i HBase

HBase er en kolonneorienteret database, og data gemmes i tabeller. Tabellerne sorteres efter RowId. Som vist nedenfor har HBase et RowId, som er samlingen af ​​flere kolonnefamilier, der findes i tabellen.

Kolonnefamilierne, der findes i skemaet, er nøgle-værdi-par. Hvis vi ser nærmere på det, har hver kolonnefamilie flere kolonner. Kolonneværdierne gemmes på diskhukommelsen. Hver celle i tabellen har sine egne metadata, såsom et tidsstempel og andre oplysninger.

Det kolonneorienterede lagringslayout med rækkenøgler, kolonnefamilier og celler er vist nedenfor.

HBase-lagringsmekanisme, der viser rækkenøglen, kolonnefamilierne, kolonnerne og cellerne

Følgende er de nøgleord, der repræsenterer et HBase-tabelskema:

  • Tabel: Samling af tilstedeværende rækker.
  • Række: Samling af kolonnefamilier.
  • Kolonnefamilie: Samling af kolonner.
  • Kolonne: Samling af nøgle-værdi-par.
  • Navnerum: Logisk gruppeping af borde.
  • Celle: En {row, column, version}-tuple, der præcist angiver en celledefinition i HBase.

Kolonneorienterede vs rækkeorienterede opbevaringssteder

Kolonneorienterede og rækkeorienterede lagringssystemer adskiller sig i deres lagringsmekanisme. Som vi alle ved, lagrer traditionelle relationsmodeller data i et rækkebaseret format, i form af datarækker. Kolonneorienterede lagringssystemer lagrer datatabeller i form af kolonner og kolonnefamilier.

Følgende tabel viser nogle af de vigtigste forskelle mellem disse to lagringsmuligheder.

Kolonneorienteret database Rækkeorienteret database
Bruges når situationen involverer behandling og analyse, såsom online analytisk behandling og dens applikationer. Online transaktionsbehandling, såsom bank- og finansdomæner, bruger denne tilgang.
Mængden af ​​data, der kan lagres i denne model, er meget stor, målt i petabyte. Den er designet til et lille antal rækker og kolonner.

HBase læse og skrive data forklaret

Læse- og skriveoperationerne fra klienten til HFile er vist i diagrammet nedenfor.

HBase læse- og skrivedataflow mellem klienten, regionserveren, MemStore og HFile

Trin 1) Klienten ønsker at skrive data og kommunikerer derefter først med regionsserveren og derefter med regionerne.

Trin 2) Regionen kontakter MemStore for at lagre de data, der er knyttet til kolonnefamilien.

Trin 3) Først gemmes dataene i MemStore, hvor dataene sorteres, og derefter overføres de til HFile. Hovedårsagen til at bruge MemStore er at gemme data i et distribueret filsystem baseret på rækkenøglen. MemStore placeres i Region Server-hovedhukommelsen, mens HFiles skrives til HDFS.

Trin 4) Klienten ønsker at læse data fra regionerne.

Trin 5) Klienten kan til gengæld have direkte adgang til MemStore og anmode om data.

Trin 6) Klienten tilgår HFiles for at hente dataene. Dataene hentes og aflæses af klienten.

MemStore indeholder ændringer i hukommelsen til lageret. Hierarkiet af objekter i HBase-regioner, fra top til bund, vises i tabellen nedenfor.

Bordlampe HBase-tabel til stede i HBase-klyngen
Område HRegioner for de præsenterede tabeller
Butik Gemmer én pr. kolonnefamilie for hver region i tabellen
MemStore MemStore for hvert lager for hver region for tabellen. Den sorterer data før de flyttes til HFiles. Skrive- og læseydelsen øges på grund af sortering.
Gem fil StoreFiles for hver butik for hver region for tabellen
Blokering Blokke til stede i StoreFiles

HBase vs. HDFS

HBase kører oven på HDFS og Hadoop. Nogle vigtige forskelle mellem HDFS og HBase er med hensyn til dataoperationer og -behandling.

HBase HDFS
Operationer med lav latens Operationer med høj latens
Tilfældig læsning og skrivning Skriv én gang, læs mange gange
Tilgås gennem skal kommandoer, en klient-API i Java, REST, Avro eller Thrift Primært tilgængelig via MapReduce (MR) job
Både opbevaring og forarbejdning kan udføres Det er kun til opbevaringsområder

Nogle typiske industrielle IT-applikationer bruger HBase-operationer sammen med Hadoop. Applikationerne omfatter data om børser og netbankdata, hvor HBase er den bedst egnede løsning. Når din klynge er klar, kan du læse og skrive data i HBase or installer HBase på en frisk node.

Ofte Stillede Spørgsmål

Ja. HBase er en distribueret, kolonneorienteret NoSQL-database modelleret efter Google Bigtable og bygget oven på HDFS. Den gemmer sparsomme data i tabeller af kolonnefamilier og bruger ikke faste skemaer eller SQL-joins som en relationsdatabase.

WAL'en, også kaldet HLog, registrerer alle skrivninger på Region Server, før de går ind i MemStore. Den gemmes på HDFS, så hvis en Region Server går ned før en flush, afspiller HBase WAL'en for at gendanne de ikke-gemte redigeringer.

Komprimering fletter HFiles for at holde læsninger hurtige. Mindre komprimering kombinerer flere små tilstødende HFiles til én. Større komprimering omskriver alle HFiles i en kolonnefamilie til en enkelt fil og fjerner fysisk slettede og udløbne celler.

Begge er Bigtable-inspirerede NoSQL-lagre, men HBase kører på HDFS med en enkelt aktiv HMaster og stærk konsistens, mens Cassandra er masterløs med justerbar, til sidst konsistent replikering. HBase passer til Hadoop-analyser; Cassandra passer til altid-på-skrivninger.

Design rækkenøgler, så læsning og skrivning er jævnt fordelt på tværs af regioner. Undgå monotont stigende nøgler, som skaber hotspots på én regionsserver. Brug salting, hashing eller feltreversering, og hold nøglerne korte, da de gentages i hver celle.

En region opdeles automatisk, når dens lager vokser over en konfigureret størrelsestærskel. Regionserveren opdeler den i to underregioner ved den midterste rækketast, og HMaster kan tildele en af ​​dem til en anden server for at afbalancere belastningen.

AI- og maskinlæringsværktøjer analyserer forespørgsels- og adgangsmønstre for at foreslå række-nøgle- og kolonnefamiliedesign, der undgår hotspots. De scanner også Region Server-målinger og -logfiler for tidligt at markere anomalier såsom skæve regioner eller fejlende noder.

Ja. GitHub Copilot udkast til HBase Java klientkode, shell-kommandoer og scanningsfiltre fra en kort kommentar. RevSe dens output for korrekte tabelnavne, kolonnefamilier og API-klasser såsom Forbindelse og Tabel, før du kører den på en rigtig klynge.

Opsummer dette indlæg med: