HBase-arkitektur, komponenter, datamodell och användningsfall

Innehållsförteckning:

Anonim

Lagringsmekanism i HBase

HBase är en kolumnorienterad databas och data lagras i tabeller. Tabellerna sorteras efter RowId. Som visas nedan har HBase RowId, som är samlingen av flera kolumnfamiljer som finns i tabellen.

Kolumnfamiljerna som finns i schemat är nyckel-värdepar. Om vi ​​i detalj observerar varje kolumnfamilj som har flera kolumner. Kolumnvärdena lagrade i diskminnet. Varje cell i tabellen har sina egna metadata som tidsstämpel och annan information.

Lagringsmekanism i HBase

Kommer till HBase är följande nyckeltermer som representerar tabellschema

  • Tabell : Samling av närvarande rader.
  • Rad : Samling av kolumnfamiljer.
  • Kolumnfamilj : Samling av kolumner.
  • Kolumn : Samling av nyckel-värdepar.
  • Namnområde : Logisk gruppering av tabeller.
  • Cell : En {rad, kolumn, version} tupel anger exakt en celldefinition i HBase.

I den här handledningen lär du dig,

  • Lagringsmekanism i HBase
  • HBase-datamodell
  • HBase Architecture och dess viktiga komponenter
  • HBase Läs och skriv data förklarade
  • HBase användningsfall
  • HBASE vs. HDFS

Kolumnorienterad vs radorienterad lagring

Kolumn- och radorienterade lagringar skiljer sig åt i lagringsmekanismen. Som vi alla vet lagrar traditionella relationsmodeller data i radbaserat format som när det gäller datarader. Kolumnorienterade lagringar lagrar datatabeller i termer av kolumner och kolumnfamiljer.

Följande tabell ger några viktiga skillnader mellan dessa två lager

Kolumnorienterad databas Radorienterad databas
  • När situationen kommer till process och analys använder vi denna metod. Såsom online analytisk bearbetning och dess applikationer.
  • Online transaktionsprocess som bank- och finansdomäner använder denna metod.
  • Mängden data som kan lagras i den här modellen är väldigt enorm som när det gäller petabyte
  • Den är utformad för ett litet antal rader och kolumner.

HBase-datamodell

HBase datamodell är en uppsättning komponenter som består av tabeller, rader, kolumnfamiljer, celler, kolumner och versioner. HBase-tabeller innehåller kolumnfamiljer och rader med element definierade som primära nycklar. En kolumn i tabellen HBase datamodell representerar attribut till objekten.

HBase datamodell består av följande element,

  • Uppsättning av bord
  • Varje tabell med kolumnfamiljer och rader
  • Varje tabell måste ha ett element definierat som primär nyckel.
  • Radnyckel fungerar som en primärnyckel i HBase.
  • All tillgång till HBase-tabeller använder denna primära nyckel
  • Varje kolumn i HBase betecknar attribut som motsvarar objektet

HBase Architecture och dess viktiga komponenter

Nedan följer en detaljerad arkitrecutre av HBase med komponenter:

HBase-arkitekturdiagram

HBase-arkitekturen består huvudsakligen av fyra komponenter

  • HMaster
  • HRregionserver
  • HRregioner
  • Djurvakt
  • HDFS

HMaster:

HMaster i HBase är implementeringen av en Master-server i HBase-arkitektur. Det fungerar som en övervakningsagent för att övervaka alla instanser av Region Server som finns i klustret och fungerar som ett gränssnitt för alla metadataändringar. I en distribuerad klustermiljö kör Master på NameNode. Master kör flera bakgrundstrådar.

Följande är viktiga roller som HMaster utför i HBase.

  • Spelar en viktig roll när det gäller prestanda och underhåll av noder i klustret.
  • HMaster tillhandahåller administrationsprestanda och distribuerar tjänster till olika regionservrar.
  • HMaster tilldelar regioner till regionservrar.
  • HMaster har funktioner som att styra lastbalansering och failover för att hantera belastningen över noder som finns i klustret.
  • När en klient vill ändra något schema och ändra metadataåtgärder tar HMaster ansvar för dessa åtgärder.

Några av metoderna som exponeras av HMaster Interface är främst metadataorienterade metoder.

  • Tabell (createTable, removeTable, aktivera, inaktivera)
  • ColumnFamily (lägg till kolumn, ändra kolumn)
  • Region (flytta, tilldela)

Klienten kommunicerar på ett dubbelriktat sätt med både HMaster och ZooKeeper. För läs- och skrivoperationer, kommer den direkt i kontakt med HRegions servrar. HMaster tilldelar regioner till regionservrar och kontrollerar i sin tur hälsostatusen för regionservrar.

I hela arkitekturen har vi flera regionservrar. Hlog närvarande i regionservrar som ska lagra alla loggfiler.

HBase Regions-servrar:

När HBase Region Server tar emot skriv- och läsförfrågningar från klienten, tilldelar den begäran till en specifik region där den faktiska kolumnfamiljen finns. Klienten kan dock direkt kontakta HRegion-servrar, det finns inget behov av HMaster obligatoriskt tillstånd till klienten angående kommunikation med HRegion-servrar. Klienten kräver HMaster-hjälp när operationer relaterade till metadata och schemaändringar krävs.

HRegionServer är implementeringen av Region Server. Det ansvarar för att betjäna och hantera regioner eller data som finns i ett distribuerat kluster. Regionens servrar körs på datanoder som finns i Hadoop-klustret.

HMaster kan komma i kontakt med flera HRegion-servrar och utför följande funktioner.

  • Värd och hantering av regioner
  • Dela regioner automatiskt
  • Hantering av läs- och skrivförfrågningar
  • Kommunicera direkt med klienten

HBase-regioner:

HRregioner är de grundläggande byggelementen i HBase-klustret som består av fördelningen av tabeller och består av kolumnfamiljer. Den innehåller flera butiker, en för varje kolumnfamilj. Den består huvudsakligen av två komponenter, som är Memstore och Hfile.

ZooKeeper:

HBase Zookeeper är en central övervakningsserver som underhåller konfigurationsinformation och tillhandahåller distribuerad synkronisering. Distribuerad synkronisering är att komma åt de distribuerade applikationer som körs över klustret med ansvaret för att tillhandahålla samordningstjänster mellan noder. Om klienten vill kommunicera med regioner måste serverns klient närma sig ZooKeeper först.

Det är ett öppen källkodsprojekt och det erbjuder så många viktiga tjänster.

Tjänster från ZooKeeper

  • Underhåller konfigurationsinformation
  • Ger distribuerad synkronisering
  • Klientkommunikationsetablering med regionservrar
  • Tillhandahåller kortvariga noder som representerar olika regionservrar
  • Master servrar användbarhet av efemera noder för att upptäcka tillgängliga servrar i klustret
  • För att spåra serverfel och nätverkspartitioner

Master- och HBase-slavnoder (regionservrar) registrerade sig hos ZooKeeper. Klienten behöver åtkomst till ZK (zookeeper) kvorumkonfiguration för att ansluta till huvud- och regionservrar.

Under ett fel i noder som finns i HBase-kluster kommer ZKquoram att utlösa felmeddelanden och det börjar reparera de misslyckade noderna.

HDFS:

HDFS är ett Hadoop-distribuerat filsystem, som namnet antyder ger det en distribuerad miljö för lagring och det är ett filsystem utformat på ett sätt att köras på råvaruhårdvara. Den lagrar varje fil i flera block och för att bibehålla feltolerans replikeras blocken över ett Hadoop-kluster.

HDFS ger en hög grad av feltolerans och körs på billig råvaruhårdvara. Genom att lägga till noder i klustret och utföra bearbetning och lagring med hjälp av billig råvaruhårdvara kommer det att ge klienten bättre resultat jämfört med den befintliga.

Här, replikeras datan som lagras i varje block till tre noder, vilket i vilket fall som helst när någon nod går ner kommer det inte att förlora data, det kommer att ha en ordentlig säkerhetskopieringsmekanism.

HDFS kommer i kontakt med HBase-komponenterna och lagrar en stor mängd data på ett distribuerat sätt.

HBase Läs och skriv data förklarade

Läs- och skrivoperationerna från klient till Hfile kan visas i diagrammet nedan.

Steg 1) Klienten vill skriva data och kommunicerar i sin tur först med Regions server och sedan regioner

Steg 2) Regioner som kontaktar memstore för lagring av kolumnfamiljen

Steg 3) Första datalagring i Memstore, där data sorteras och därefter spolas det till HFile. Den främsta anledningen till att använda Memstore är att lagra data i ett distribuerat filsystem baserat på radnyckel. Memstore kommer att placeras i Region Server huvudminne medan HFiles skrivs in i HDFS.

Steg 4) Klienten vill läsa data från regioner

Steg 5) I sin tur kan klienten ha direkt åtkomst till Mem store och kan begära data.

Steg 6) Klienten närmar sig HFiles för att få data. Uppgifterna hämtas och hämtas av klienten.

Memstore har modifieringar i minnet i butiken. Hierarkin av objekt i HBase-regioner visas som uppifrån och ned i nedanstående tabell.

Tabell HBase-tabell i HBase-klustret
Område HRregioner för de presenterade tabellerna
Lagra Det lagras per ColumnFamily för varje region för tabellen
Memstore
  • Memstore för varje butik för varje region för tabellen
  • Det sorterar data innan det spolas in i HFiles
  • Skriv- och läsprestanda ökar på grund av sortering
StoreFile StoreFiles för varje butik för varje region för tabellen
Blockera Block finns i StoreFiles

HBase användningsfall

Nedan följer exempel på HBase-användningsfall med en detaljerad förklaring av den lösning den ger för olika tekniska problem

Problemförklaring Lösning
Telekomindustrin står inför följande tekniska utmaningar
  • Lagring av miljarder CDR (samtal detaljerad inspelning) loggposter genererade av telekomdomän
  • Tillhandahåller tillgång i realtid till CDR-loggar och faktureringsinformation för kunder
  • Ge kostnadseffektiv lösning jämfört med traditionella databassystem
HBase används för att lagra miljarder rader med detaljerade samtalsposter. Om 20 TB data läggs till per månad i den befintliga RDBMS-databasen försämras prestandan. För att hantera en stor mängd data i detta användningsfall är HBase den bästa lösningen. HBase utför snabba frågor och visar poster.
Den Bankindustrin genererar miljontals skivor på en daglig basis. Utöver detta behöver banksektorn också en analyslösning som kan upptäcka bedrägeri i penningtransaktioner För att lagra, bearbeta och uppdatera stora datamängder och utföra analyser är en idealisk lösning - HBase integrerad med flera Hadoop-ekosystemkomponenter.

Bortsett från det kan HBase användas

  • När det finns ett behov av att skriva tunga applikationer.
  • Utföra onlinelogganalys och generera efterlevnadsrapporter.

HBase vs HDFS

HBase körs ovanpå HDFS och Hadoop. Några viktiga skillnader mellan HDFS och HBase är när det gäller datahantering och bearbetning.

HBASE

HDFS

  • Åtgärder med låg latens
  • Hög latensoperationer
  • Slumpmässigt läser och skriver
  • Skriv en gång Läs många gånger
  • Åtkomst via skalkommandon, klient-API i Java, REST, Avro eller Thrift
  • Åtkomst primärt via MR-jobb (Map Reduce)
  • Lagring och process båda kan utföras
  • Det är bara för lagringsutrymmen

Vissa typiska IT-industriella applikationer använder HBase-verksamhet tillsammans med Hadoop. Applikationerna inkluderar börsdata, nätbanksdataföretag och bearbetning av Hbase är den bästa lösningsmetoden.

Sammanfattning

Hbase är en av NoSql-kolumnorienterad distribuerad databas tillgänglig i apache foundation. HBase ger mer prestanda för att hämta färre poster istället för Hadoop eller Hive. Det är väldigt enkelt att söka efter ett visst ingångsvärde eftersom det stöder indexering, transaktioner och uppdatering.

Vi kan utföra analyser i realtid online med Hbase integrerat med Hadoop-ekosystemet. Den har en automatisk och konfigurerbar delning för datamängder eller tabeller och ger avslappnade API: er för att utföra MapReduce-jobb.