HBase-architectuur, componenten, gegevensmodel en use cases

Inhoudsopgave:

Anonim

Opslagmechanisme in HBase

HBase is een kolomgeoriënteerde database en gegevens worden opgeslagen in tabellen. De tabellen zijn gesorteerd op RowId. Zoals hieronder wordt weergegeven, heeft HBase RowId, de verzameling van verschillende kolomfamilies die in de tabel aanwezig zijn.

De kolomfamilies die in het schema aanwezig zijn, zijn sleutel / waarde-paren. Als we in detail bekijken dat elke kolomfamilie meerdere aantallen kolommen heeft. De kolomwaarden die zijn opgeslagen in het schijfgeheugen. Elke cel van de tabel heeft zijn eigen metadata zoals tijdstempel en andere informatie.

Opslagmechanisme in HBase

De volgende zijn de belangrijkste termen die naar HBase komen die het tabelschema vertegenwoordigen

  • Tafel : Verzameling rijen aanwezig.
  • Rij : verzameling kolomfamilies.
  • Column Family : Verzameling van kolommen.
  • Kolom : Verzameling van sleutel-waardeparen.
  • Naamruimte : logische groepering van tabellen.
  • Cel : een tupel {rij, kolom, versie} specificeert exact een celdefinitie in HBase.

In deze tutorial leer je,

  • Opslagmechanisme in HBase
  • HBase-gegevensmodel
  • HBase-architectuur en zijn belangrijke componenten
  • HBase lezen en schrijven van gegevens uitgelegd
  • HBase-gebruiksscenario's
  • HBASE versus HDFS

Kolomgeoriënteerde versus rijgeoriënteerde opslag

Kolom- en rijgeoriënteerde opslagplaatsen verschillen in hun opslagmechanisme. Zoals we allemaal weten, slaan traditionele relationele modellen gegevens op in termen van een op rijen gebaseerd formaat, zoals in termen van rijen met gegevens. Kolomgeoriënteerde opslagruimten slaan gegevenstabellen op in termen van kolommen en kolomfamilies.

De volgende tabel geeft een aantal belangrijke verschillen tussen deze twee opslagruimtes

Kolomgeoriënteerde database Rij-georiënteerde database
  • Als het om proces en analyse gaat, gebruiken we deze benadering. Zoals Online Analytical Processing en zijn toepassingen.
  • Online transactionele processen zoals bank- en financiële domeinen gebruiken deze benadering.
  • De hoeveelheid data die in dit model kan worden opgeslagen, is in termen van petabytes enorm groot
  • Het is ontworpen voor een klein aantal rijen en kolommen.

HBase-gegevensmodel

HBase-gegevensmodel is een set 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 HBase-gegevensmodeltabel vertegenwoordigt attributen van de objecten.

HBase Data Model bestaat uit de volgende elementen,

  • Set tafels
  • Elke tabel met kolomfamilies en rijen
  • Elke tabel moet een element hebben dat is gedefinieerd als primaire sleutel.
  • Rijsleutel fungeert als een primaire sleutel in HBase.
  • Elke toegang tot HBase-tabellen gebruikt deze primaire sleutel
  • Elke kolom in HBase geeft een kenmerk aan dat overeenkomt met het object

HBase-architectuur en zijn belangrijke componenten

Hieronder vindt u een gedetailleerde architecutre van HBase met componenten:

HBase-architectuurdiagram

HBase-architectuur bestaat hoofdzakelijk uit vier componenten

  • HMaster
  • HRegionserver
  • HRegio's
  • Dierentuinmedewerker
  • HDFS

HMaster:

HMaster in HBase is de implementatie van een Master-server in HBase-architectuur. Het fungeert als een bewakingsagent om alle Region Server-instanties in het cluster te bewaken en fungeert als een interface voor alle metagegevenswijzigingen. In een gedistribueerde clusteromgeving draait Master op NameNode. Master voert verschillende achtergrondthreads uit.

De volgende zijn belangrijke rollen die door HMaster in HBase worden uitgevoerd.

  • Speelt een cruciale rol in termen van prestaties en het onderhouden van knooppunten in het cluster.
  • HMaster biedt beheerdersprestaties en distribueert services naar verschillende regioservers.
  • HMaster wijst regio's toe aan regioservers.
  • HMaster heeft de functies zoals het regelen van taakverdeling en failover om de belasting over knooppunten in het cluster af te handelen.
  • Wanneer een cliënt een schema wil wijzigen en metadata-bewerkingen wil wijzigen, neemt HMaster de verantwoordelijkheid voor deze bewerkingen.

Sommige van de methoden die door HMaster Interface worden onthuld, zijn voornamelijk metadata-georiënteerde methoden.

  • Tabel (createTable, removeTable, inschakelen, uitschakelen)
  • ColumnFamily (kolom toevoegen, kolom wijzigen)
  • Regio (verplaatsen, toewijzen)

De klant communiceert bidirectioneel met zowel HMaster als ZooKeeper. Voor lees- en schrijfbewerkingen maakt het rechtstreeks contact met HRegion-servers. HMaster wijst regio's toe aan regioservers en controleert op zijn beurt de gezondheidsstatus van regioservers.

In de hele architectuur hebben we meerdere regioservers. Hlog aanwezig op regioservers die alle logbestanden gaan opslaan.

HBase-regio's-servers:

Wanneer HBase Region Server schrijf- en leesverzoeken van de client ontvangt, wijst het het verzoek toe aan een specifieke regio, waar de feitelijke kolomfamilie zich bevindt. De klant kan echter rechtstreeks contact opnemen met HRegion-servers, er is geen verplichte HMaster-toestemming voor de klant nodig voor communicatie met HRegion-servers. De client heeft hulp van HMaster nodig wanneer bewerkingen met betrekking tot metagegevens en schemawijzigingen vereist zijn.

HRegionServer is de implementatie van de Region Server. Het is verantwoordelijk voor het bedienen en beheren van regio's of gegevens die aanwezig zijn in een gedistribueerd cluster. De regioservers draaien op gegevensknooppunten die aanwezig zijn in het Hadoop-cluster.

HMaster kan in contact komen met meerdere HRegion-servers en voert de volgende functies uit.

  • Regio's hosten en beheren
  • Regio's automatisch splitsen
  • Verwerken van lees- en schrijfverzoeken
  • Rechtstreeks communiceren met de klant

HBase-regio's:

HRegions zijn de basisbouwelementen van het HBase-cluster dat bestaat uit de distributie van tabellen en bestaat uit kolomfamilies. Het bevat meerdere winkels, één voor elke kolomfamilie. Het bestaat voornamelijk uit twee componenten, namelijk Memstore en Hfile.

Dierentuinmedewerker:

HBase Zookeeper is een gecentraliseerde controleserver die configuratiegegevens bijhoudt en gedistribueerde synchronisatie biedt. Gedistribueerde synchronisatie is om toegang te krijgen tot de gedistribueerde applicaties die in het cluster worden uitgevoerd met de verantwoordelijkheid om coördinatiediensten tussen knooppunten te bieden. Als de client wil communiceren met regio's, moet de client van de server eerst ZooKeeper benaderen.

Het is een open source-project en het biedt zoveel belangrijke services.

Geleverde diensten door ZooKeeper

  • Onderhoudt configuratie-informatie
  • Biedt gedistribueerde synchronisatie
  • Clientcommunicatie tot stand brengen met regioservers
  • Biedt kortstondige knooppunten die verschillende regioservers vertegenwoordigen
  • De bruikbaarheid van masterservers van kortstondige knooppunten voor het ontdekken van beschikbare servers in het cluster
  • Om serverstoringen en netwerkpartities op te sporen

Master- en HBase-slave-knooppunten (regioservers) hebben zichzelf geregistreerd bij ZooKeeper. De client heeft toegang nodig tot de ZK-quorumconfiguratie (zookeeper) om verbinding te maken met hoofd- en regioservers.

Tijdens een storing van de knooppunten die aanwezig zijn in het HBase-cluster, zal ZKquoram foutmeldingen activeren en begint het de defecte knooppunten te repareren.

HDFS:

HDFS is een door Hadoop gedistribueerd bestandssysteem, zoals de naam al aangeeft, het biedt een gedistribueerde omgeving voor de opslag en het is een bestandssysteem dat zo is ontworpen dat het op standaardhardware kan worden uitgevoerd. Het slaat elk bestand op in meerdere blokken en om fouttolerantie te behouden, worden de blokken gerepliceerd over een Hadoop-cluster.

HDFS biedt een hoge mate van fouttolerantie en werkt op goedkope standaardhardware. Door knooppunten aan het cluster toe te voegen en verwerking en opslag uit te voeren met behulp van de goedkope standaardhardware, krijgt de klant betere resultaten in vergelijking met de bestaande.

Hierin worden de gegevens die in elk blok zijn opgeslagen, gerepliceerd in 3 knooppunten, in het geval dat een knooppunt uitvalt, er geen gegevens verloren gaan, het zal een goed back-upherstelmechanisme hebben.

HDFS komt in contact met de HBase-componenten en slaat een grote hoeveelheid data gedistribueerd op.

HBase lezen en schrijven van gegevens uitgelegd

De lees- en schrijfbewerkingen van Client naar Hfile kunnen in het onderstaande diagram worden weergegeven.

Stap 1) De klant wil gegevens schrijven en communiceert op zijn beurt eerst met de server van de regio en vervolgens met de regio's

Stap 2) Regio's die contact opnemen met memstore voor het opslaan van de kolomfamilie

Stap 3) De eerste gegevens worden opgeslagen in Memstore, waar de gegevens worden gesorteerd en daarna worden ze doorgespoeld in HFile. De belangrijkste reden voor het gebruik van Memstore is om gegevens op te slaan in een gedistribueerd bestandssysteem op basis van Row Key. Memstore wordt in het hoofdgeheugen van de regioserver geplaatst terwijl HFiles naar HDFS worden geschreven.

Stap 4) Klant wil gegevens uit Regio's lezen

Stap 5) De Klant kan op zijn beurt direct toegang hebben tot de Mem store en kan om gegevens opvragen.

Stap 6) De klant benadert HFiles om de gegevens op te halen. De gegevens worden opgehaald en opgehaald door de klant.

Memstore bevat in-memory wijzigingen aan de winkel. De hiërarchie van objecten in HBase-regio's wordt van boven naar beneden weergegeven in de onderstaande tabel.

Tafel HBase-tabel aanwezig in het HBase-cluster
Regio HRegio's voor de gepresenteerde tabellen
Winkel Het slaat per ColumnFamily voor elke regio voor de tabel op
Memstore
  • Memstore voor elke winkel voor elke regio voor de tafel
  • Het sorteert gegevens voordat ze in HFiles worden doorgespoeld
  • De schrijf- en leesprestaties zullen toenemen door het sorteren
StoreFile StoreFiles voor elke winkel voor elke regio voor de tabel
Blok Blokken aanwezig in StoreFiles

HBase-gebruiksscenario's

Hieronder volgen voorbeelden van HBase-use-cases met een gedetailleerde uitleg van de oplossing die het biedt voor verschillende technische problemen

Probleemstelling Oplossing
De telecomsector staat voor de volgende technische uitdagingen
  • Miljarden CDR-logrecords (Call gedetailleerde opname) opslaan die zijn gegenereerd door het telecomdomein
  • Biedt realtime toegang tot CDR-logboeken en factuurgegevens van klanten
  • Bied 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 gegevens per maand wordt toegevoegd aan de bestaande RDBMS-database, zullen de prestaties verslechteren. Om in deze use case een grote hoeveelheid data te verwerken, is HBase de beste oplossing. HBase voert snelle query's uit en geeft records weer.
De banksector genereert dagelijks miljoenen records. Daarnaast heeft de banksector ook een analyseoplossing nodig die fraude bij geldtransacties kan detecteren Om enorme hoeveelheden gegevens op te slaan, te verwerken en bij te werken en analyses uit te voeren, is een ideale oplossing - HBase geïntegreerd met verschillende Hadoop-ecosysteemcomponenten.

Afgezien daarvan kan HBase worden gebruikt

  • Telkens wanneer er zware applicaties moeten worden geschreven.
  • Online logboekanalyses uitvoeren en nalevingsrapporten genereren.

HBase versus HDFS

HBase draait bovenop HDFS en Hadoop. Enkele belangrijke verschillen tussen HDFS en HBase zijn in termen van gegevensbewerkingen en verwerking.

HBASE

HDFS

  • Operaties met lage latentie
  • Operaties met hoge latentie
  • Willekeurig leest en schrijft
  • Eén keer schrijven Meerdere keren lezen
  • Toegankelijk via shell-opdrachten, client-API in Java, REST, Avro of Thrift
  • Voornamelijk toegankelijk via MR-taken (Map Reduce)
  • Opslag en proces kunnen beide worden uitgevoerd
  • Het is alleen voor opslagruimtes

Sommige typische industriële IT-applicaties gebruiken HBase-bewerkingen samen met Hadoop. Toepassingen zijn onder meer beursgegevens, gegevens over onlinebankieren en verwerking. Hbase is de meest geschikte oplossingsmethode.

Overzicht

Hbase is een van de NoSql-kolomgeoriënteerde gedistribueerde databases die beschikbaar zijn in Apache Foundation. HBase biedt meer prestaties voor het ophalen van minder records in plaats van Hadoop of Hive. Het is heel gemakkelijk om naar elke invoerwaarde te zoeken omdat het indexering, transacties en updates ondersteunt.

We kunnen online realtime analyses uitvoeren met behulp van Hbase geïntegreerd met het Hadoop-ecosysteem. Het heeft een automatische en configureerbare sharding voor datasets of tabellen en biedt rustgevende API's om de MapReduce-taken uit te voeren.