HBase Architectie: Use Cases, Componenten & Datamodel
โก Slimme samenvatting
De HBase-architectuur is opgebouwd uit vier coรถrdinerende componenten: HMaster, Region Servers, ZooKeeper en HDFS. Deze componenten slaan gegevens op in een kolomgeoriรซnteerd model, verdelen ze in regio's en zorgen voor willekeurige lees- en schrijfbewerkingen met lage latentie.

Apache HBase is een gedistribueerde, kolomgeoriรซnteerde NoSQL-database die draait bovenop... Hadoop en het Hadoop Distributed File System (HDFS). De architectuur combineert een coรถrdinerende master, regioservers en ZooKeeper om zeer grote tabellen op te slaan en snelle willekeurige lees- en schrijfbewerkingen mogelijk te maken.
HBase Architectie en zijn belangrijke componenten
De HBase-architectuur bestaat uit de volgende hoofdbestanddelen:
- HMaster
- HRegionServer
- HRegio's
- Dierentuinmedewerker
- HDFS
Hieronder vindt u een gedetailleerde architectuur van HBase met de bijbehorende componenten, zoals weergegeven in het diagram.
HMaster
HMaster in HBase is de implementatie van een masterserver in de HBase-architectuur. Het fungeert als een monitoringagent om alle Region Server-instanties in het cluster te bewaken en als interface voor alle metadatawijzigingen. In een gedistribueerde clusteromgeving draait de master op de NameNode. De master voert meerdere achtergrondthreads uit.
De volgende taken worden door HMaster in HBase uitgevoerd:
- Speelt een cruciale rol als het gaat om prestaties en het onderhouden van knooppunten in het cluster.
- HMaster biedt beheerdersprestaties en distribueert services naar servers in verschillende regio's.
- HMaster wijst regio's toe aan regioservers.
- HMaster regelt de taakverdeling en failover om de belasting over de knooppunten in het cluster te verdelen.
- Wanneer een klant een schema of metadata-bewerking wil wijzigen, neemt HMaster de verantwoordelijkheid voor deze bewerkingen op zich.
Sommige methoden die via de HMaster-interface beschikbaar worden gesteld, zijn voornamelijk op metadata gerichte methoden:
- Tabel (createTable, removeTable, inschakelen, uitschakelen)
- ColumnFamily (kolom toevoegen, kolom wijzigen)
- Regio (verplaatsen, toewijzen)
De client communiceert bidirectioneel met zowel HMaster als ZooKeeper. Voor lees- en schrijfbewerkingen neemt de client rechtstreeks contact op met de HRegion-servers. HMaster wijst regio's toe aan regioservers en controleert op zijn beurt de gezondheidsstatus van de regioservers.
In de gehele architectuur hebben we meerdere regioservers. Op elke regioserver bevindt zich een HLog-bestand waarin alle logbestanden worden opgeslagen.
HBase-regioservers
Wanneer een HBase Region Server schrijf- en leesverzoeken van de client ontvangt, wijst deze het verzoek toe aan een specifieke regio waar de kolomfamilie zich bevindt. De client kan rechtstreeks contact opnemen met de HRegion-servers; er is geen verplichte HMaster-machtiging nodig om met de HRegion-servers te communiceren. De client heeft alleen HMaster-ondersteuning nodig wanneer bewerkingen met betrekking tot metadata- en schemawijzigingen vereist zijn.
HRegionServer is de implementatie van de regioserver. Deze is verantwoordelijk voor het leveren en beheren van regio's, oftewel de data die aanwezig is in een gedistribueerd cluster. De regioservers draaien op de dataknooppunten in het Hadoop-cluster.
HMaster kan contact leggen met meerdere HRegion-servers en voert de volgende functies uit:
- Regio's hosten en beheren
- Regio's automatisch splitsen
- Het verwerken van lees- en schrijfverzoeken
- Direct communiceren met de klant
HBase-regio's
HRegions zijn de basiselementen van een HBase-cluster. Ze bestaan โโuit de verdeling van tabellen en zijn opgebouwd uit kolomfamilies. Een regio bevat meerdere opslaglocaties, รฉรฉn voor elke kolomfamilie. Een regio bestaat hoofdzakelijk uit twee componenten: de MemStore en de HFile.
Dierentuinmedewerker
HBase Dierentuinmedewerker ZooKeeper is een gecentraliseerde monitoringserver die configuratie-informatie bijhoudt en gedistribueerde synchronisatie biedt. Gedistribueerde synchronisatie coรถrdineert de gedistribueerde applicaties die in het cluster draaien en biedt coรถrdinatiediensten tussen knooppunten. Als de client met regio's wil communiceren, moet deze eerst contact opnemen met ZooKeeper.
Het is een open source-project en het biedt veel belangrijke diensten.
Diensten geleverd door ZooKeeper:
- Bewaart configuratie-informatie
- Biedt gedistribueerde synchronisatie
- Legt clientcommunicatie met regionale servers tot stand.
- Biedt tijdelijke knooppunten die verschillende regioservers vertegenwoordigen.
- Hiermee kan de masterserver deze tijdelijke knooppunten gebruiken om beschikbare servers in het cluster te ontdekken.
- TracKS-serverstoring en netwerkonderbrekingen
De master- en HBase-slave-nodes (regioservers) registreren zich bij ZooKeeper. De client heeft toegang nodig tot de ZooKeeper (ZK) quorumconfiguratie om verbinding te maken met de master- en regioservers.
Bij een storing van knooppunten in het HBase-cluster genereert het ZooKeeper-quorum foutmeldingen en start het de reparatie van de defecte knooppunten.
HDFS
HDFS is de gedistribueerde versie van Hadoop. File SystemZoals de naam al doet vermoeden, biedt het een gedistribueerde omgeving voor opslag en is het een bestandssysteem dat is ontworpen om te draaien op standaard hardware. Het slaat elk bestand op in meerdere blokken en om fouttolerantie te garanderen, worden de blokken gerepliceerd over een Hadoop-cluster.
HDFS biedt een hoge mate van fouttolerantie en draait op goedkope, standaard hardware. Door knooppunten aan het cluster toe te voegen en de verwerking en opslag uit te voeren met behulp van goedkope, standaard hardware, behaalt de klant betere resultaten in vergelijking met de bestaande configuratie.
Hier worden de gegevens in elk blok over 3 knooppunten gerepliceerd, zodat er geen gegevensverlies optreedt als een van de knooppunten uitvalt; er is een degelijk back-up- en herstelmechanisme.
HDFS maakt contact met de HBase-componenten en slaat een grote hoeveelheid data op een gedistribueerde manier op.
HBase-gegevensmodel
Het HBase-datamodel is een verzameling componenten die bestaat uit tabellen, rijen, kolomfamilies, cellen, kolommen en versies. HBase-tabellen bevatten kolomfamilies en rijen, met elementen die zijn gedefinieerd als primaire sleutels. Een kolom in de tabel van het HBase-datamodel vertegenwoordigt een attribuut van de objecten.
Het HBase-datamodel bestaat uit de volgende elementen:
- Aantal tafels
- Elke tabel met kolomfamilies en rijen
- Elke tabel moet een element hebben dat is gedefinieerd als primaire sleutel.
- De rijsleutel fungeert als primaire sleutel in HBase.
- Voor elke toegang tot HBase-tabellen wordt deze primaire sleutel gebruikt.
- Elke kolom in HBase vertegenwoordigt een attribuut dat overeenkomt met een object.
HBase-gebruiksscenario's
Hieronder volgen voorbeelden van HBase-gebruiksscenario's met een gedetailleerde uitleg van de oplossing die HBase biedt voor diverse technische problemen.
| Probleemstelling | Het resultaat |
| De telecomsector staat voor de volgende technische uitdagingen: het opslaan van miljarden gespreksgegevens (Call Detail Record, CDR) die door de telecomsector worden gegenereerd; het bieden van realtime toegang tot CDR-logs en factuurgegevens van klanten; en het bieden van een kosteneffectieve oplossing in vergelijking met traditionele databasesystemen. | HBase wordt gebruikt om miljarden rijen met gedetailleerde oproeprecords op te slaan. Als er 20 TB aan data per maand wordt toegevoegd aan de bestaande RDBMS-database, zal de performance verslechteren. Om een โโgrote hoeveelheid data in dit use case te verwerken, is HBase de beste oplossing. HBase voert snelle query's uit en geeft records weer. |
| De banksector genereert dagelijks miljoenen gegevens. Daarnaast heeft de banksector ook een analyseoplossing nodig die fraude bij geldtransacties kan opsporen. | Voor het opslaan, verwerken en bijwerken van enorme hoeveelheden data en voor het uitvoeren van analyses is HBase, geรฏntegreerd met diverse componenten van het Hadoop-ecosysteem, een ideale oplossing. |
Daarnaast kan HBase gebruikt worden:
- Wanneer er behoefte is aan applicaties die veel schrijfbewerkingen vereisen.
- Voor het uitvoeren van online loganalyses en het genereren van compliance-rapporten.
Opslagmechanisme in HBase
HBase is een kolomgeoriรซnteerde database, waarbij gegevens in tabellen worden opgeslagen. De tabellen zijn gesorteerd op RowId. Zoals hieronder weergegeven, heeft HBase een RowId, een verzameling van verschillende kolomfamilies die in de tabel aanwezig zijn.
De kolomfamilies in het schema zijn sleutel-waardeparen. Elke kolomfamilie bestaat uit meerdere kolommen. De kolomwaarden worden opgeslagen in het schijfgeheugen. Elke cel in de tabel heeft zijn eigen metadata, zoals een tijdstempel en andere informatie.
De kolomgeoriรซnteerde opslagindeling, met rijsleutels, kolomfamilies en cellen, wordt hieronder weergegeven.
De volgende termen geven de belangrijkste kenmerken van een HBase-tabelschema weer:
- Tabel: Verzameling van aanwezige rijen.
- Rij: Verzameling van kolomfamilies.
- Kolomfamilie: Een verzameling kolommen.
- Kolom: Verzameling van sleutel-waardeparen.
- Naamruimte: Logische groepping van tabellen.
- Cel: Een tuple van {rij, kolom, versie} die exact de definitie van een cel in HBase aangeeft.
Kolomgeoriรซnteerde versus rijgerichte opslagplaatsen
Kolomgeoriรซnteerde en rijgeoriรซnteerde opslagmethoden verschillen in hun opslagmechanisme. Zoals we allemaal weten, slaan traditionele relationele modellen gegevens op in een rijgebaseerd formaat, in de vorm van rijen met gegevens. Kolomgeoriรซnteerde opslagmethoden slaan gegevenstabellen op in termen van kolommen en kolomfamilies.
De volgende tabel geeft een overzicht van enkele belangrijke verschillen tussen deze twee opslagmethoden.
| Kolomgeoriรซnteerde database | Rijgeoriรซnteerde database |
| Wordt gebruikt wanneer de situatie verwerking en analyse vereist, zoals online analytische verwerking en de bijbehorende toepassingen. | Online transactieverwerking, zoals in de bank- en financiรซle sector, maakt gebruik van deze aanpak. |
| De hoeveelheid data die in dit model kan worden opgeslagen is enorm, in de orde van petabytes. | Het is ontworpen voor een klein aantal rijen en kolommen. |
HBase-gegevens lezen en schrijven uitgelegd
De lees- en schrijfbewerkingen van de client naar het HFile worden weergegeven in het onderstaande diagram.
Stap 1) De client wil gegevens schrijven en communiceert daarom eerst met de regioserver en vervolgens met de regio's.
Stap 2) De regio neemt contact op met de MemStore om de gegevens op te slaan die aan de kolomfamilie zijn gekoppeld.
Stap 3) Eerst worden de gegevens opgeslagen in de MemStore, waar ze worden gesorteerd, en daarna worden ze naar het HFile geschreven. De belangrijkste reden voor het gebruik van de MemStore is het opslaan van gegevens in een gedistribueerd bestandssysteem op basis van de rijsleutel. De MemStore bevindt zich in het hoofdgeheugen van de Region Server, terwijl de HFiles naar HDFS worden geschreven.
Stap 4) De client wil gegevens uit de regio's lezen.
Stap 5) De client heeft vervolgens direct toegang tot de MemStore en kan gegevens opvragen.
Stap 6) De client benadert de HFiles om de gegevens op te halen. De gegevens worden door de client opgehaald en verwerkt.
De MemStore bewaart in-memory wijzigingen aan de opslag. De hiรซrarchie van objecten in HBase-regio's, van boven naar beneden, wordt weergegeven in de onderstaande tabel.
| tafel | HBase-tabel aanwezig in het HBase-cluster |
| Regio | HRegions voor de gepresenteerde tabellen |
| Shop | Slaat รฉรฉn exemplaar per kolomfamilie op voor elke regio van de tabel. |
| MemWinkel | MemStore wordt gebruikt voor elke opslaglocatie in elke regio van de tabel. Het sorteert de gegevens voordat ze naar HFiles worden geschreven. De schrijf- en leesprestaties verbeteren dankzij het sorteren. |
| Winkelbestand | StoreFiles voor elke winkel voor elke regio voor de tabel |
| Block | Blokken aanwezig in StoreFiles |
HBase versus HDFS
HBase draait bovenop HDFS en Hadoop. Enkele belangrijke verschillen tussen HDFS en HBase liggen in de manier waarop gegevens worden bewerkt en verwerkt.
| HBase | HDFS |
| Lage latentie-bewerkingen | Hoge latentie-bewerkingen |
| Willekeurig leest en schrijft | Schrijf het รฉรฉn keer, lees het vele malen |
| toegankelijk via shell-opdrachten, een client-API in JavaREST, Avro of Thrift | Voornamelijk toegankelijk via MapReduce (MR) banen |
| Zowel opslag als verwerking is mogelijk. | Het is uitsluitend bedoeld voor opslagruimtes. |
Sommige typische industriรซle IT-toepassingen maken gebruik van HBase-bewerkingen in combinatie met Hadoop. Toepassingen zijn onder andere de verwerking van beursgegevens en online bankgegevens, waar HBase de meest geschikte oplossing is. Zodra uw cluster gereed is, kunt u Gegevens lezen en schrijven in HBase or HBase installeren op een nieuw knooppunt.



