HBase

HBase
Type gratis og open source software og databasestyringssystem
Udvikler Apache Software Foundation
Skrevet i Java [3] [2]
Operativ system på tværs af platforme
Første udgave 2006 [1] og 14. april 2012 [2]
Hardware platform Java virtuel maskine
nyeste version
frigivelseskandidat
Licens Apache-licens 2.0 [4]
Internet side hbase.apache.org

HBase  er en open source NoSQL DBMS , et projekt fra Hadoop- økosystemet . Skrevet i Java ; tilhører kategorien "kolonnefamilie" , mange tekniske løsninger er overtaget fra Google BigTable . Det kører oven på det distribuerede HDFS -filsystem og giver BigTable-lignende funktioner til Hadoop, det vil sige, det giver en fejltolerant måde at lagre store mængder sparsomme data på.

Kompressionsunderstøttelse, operationer i hukommelsen og Bloom-filteret for hver underliggende kolonne er implementeret i overensstemmelse med BigTable [5] -dokumentationen . Tabeller i HBase kan tjene som input og output til driften af ​​MapReduce- implementeringen i Hadoop-projektet og kan opnås ikke kun gennem Java API'et, men også gennem API'et ( REST , Avro , Thrift ). Phoenix og Trafodion [ projekterne giver SQL -adgang til HBase-drevne data.

Det bruges til at håndtere data i en række store projekter [6] [7] , især Facebook brugte HBase til meddelelsesplatformen [8] i perioden 2010-2018 (i 2018 blev platformen overført til MyRocks [9] ), til loyale brugere inkluderer også Adobe , StumbleUpon , Twitter , Yahoo! (driver en HBase-klynge på 3.000 noder [10] ).

Historie

HBase-projektet blev startet i 2006 af Chad Walters og Jim Kellerman fra Powerset, som skulle behandle store mængder data for at skabe en søgemaskine med naturligt sprog. Prototypen var baseret på en Google -artikel offentliggjort i 2005 om Bigtable-systemet [11] . I februar 2007 skrev Mike Cafarella en stub-kode til systemet, som blev videreudviklet af Jim Kellerman. Projektet tiltrak hurtigt stor opmærksomhed fra udviklere og fik høj prioritet i Apache-fonden [12] .

Den første version af HBase blev leveret med Hadoop 0.15.0 i oktober 2007. I maj 2010 flyttede systemet fra Hadoop-delprojektkategorien til Apache Foundation -projektkategorien på øverste niveau . Siden 2012 har der været afholdt en årlig konference for udviklere og brugere af HBaseCon-systemet.

I 2015 blev version 1.0 af systemet frigivet, som blev noteret af både fonden og uafhængige observatører som en "milepæl", der angiver produktets modenhed [10] ; Siden anden halvdel af 2010'erne er interessen for systemet også vokset på grund af fremkomsten af ​​SQL-grænseflader til det (Phoenix, Trafodion).

Datamodeller

Applikationer gemmer data i tabeller, der består af rækker og kolonner. Tabelceller (krydsning af rækker og kolonner) er versionsstyrede. Standardversionen er tidsstemplet, der automatisk tildeles af HBase på tidspunktet for indsættelsen. Indholdet af cellen er en ufortolket række af bytes .

Tabelrækkenøgler er også byte-arrays, så i teorien kan en rækkenøgle være alt fra strenge til binære repræsentationer af longs og endda serialiserede datastrukturer. Tabelrækkerne er sorteret efter rækkenøglen (tabellens primære nøgle). Sortering sker i byte-rækkefølge. Alle tabeladgange er baseret på den primære nøgle. Kolonner er grupperet i kolonnefamilier. Alle medlemmer af en kolonnefamilie deler et fælles præfiks, så for eksempel kolonner temperature:airog temperature:dew_pointtilhører familien temperatureog station:identifiertilhører familien station. Kolonnefamiliepræfikset skal være udskrivbare tegn. Den sidste del (kvalifikation) kan bestå af vilkårlige bytes.

Tabelkolonnefamilier skal foruddefineres som en del af tabelskemadefinitionen, men nye familiemedlemmer kan tilføjes efter behov. For eksempel kan en ny kolonne station:addresssendes til klienten som en del af en opdatering, og dens værdi vil blive gemt med succes - forudsat at kolonnefamilien stationallerede eksisterer i tabellen. Fysisk er alle medlemmer af kolonnefamilier gemt sammen i filsystemet . Fordi indstillinger og specifikationer er indstillet på kolonnefamilieniveau, er det ønskeligt, at alle familiemedlemmer har lignende adgangsmønstre og størrelsesegenskaber.

Regioner

HBase opdeler automatisk tabeller vandret i såkaldte regioner . Hver region danner en undergruppe af tabelrækker. En region er defineret af den tabel, den tilhører, dens første række (inklusive) og sidste række (ikke inkluderet). Tabellen består oprindeligt af en enkelt region, men efterhånden som regionen vokser ud over en konfigurerbar størrelsestærskel, opdeles den i to nye områder af omtrent lige store størrelser. Indtil den første partition vil al dataindlæsning blive udført på den samme server, som er vært for kilderegionen. Efterhånden som tabellen vokser, stiger antallet af dens regioner. Regioner er enheder, der er allokeret i en HBase-klynge. Hvis en tabel er for stor til en enkelt server, kan den betjenes af en serverklynge, hvor hver node er vært for en undergruppe af tabellens regioner. Derudover sørger regioner for belastningsbalancering på bordet. Sættet af sorterede regioner, der er tilgængelige over netværket, udgør det samlede indhold af tabellen.

Noter

  1. http://hbase.apache.org/book/hbase.history.html
  2. 1 2 https://projects.apache.org/json/projects/hbase.json
  3. hbase Open Source-projektet på Open Hub: Languages-side - 2006.
  4. http://hbase.apache.org/license.html
  5. Chang, et al. (2006). Bigtable: Et distribueret lagringssystem til strukturerede data
  6. Drevet af HBase (downlink) . Dato for adgang: 12. januar 2012. Arkiveret fra originalen 27. marts 2013. 
  7. StumbleUpon HBase-præsentation . Dato for adgang: 12. januar 2012. Arkiveret fra originalen 21. oktober 2013.
  8. Meddelelsernes underliggende teknologi . Dato for adgang: 12. januar 2012. Arkiveret fra originalen 6. december 2014.
  9. Xiang Li, Thomas Georgiou. Migrering af Messenger-lagerplads for at optimere ydeevnen . Facebook (26. juni 2018). Hentet 3. januar 2019. Arkiveret fra originalen 11. november 2018.
  10. 12 Gavin Clarke. Apache afmelder endelig Hadoop-databasen... efter 7 års udvikling . HBase 1.0 er en "ting af kollaborativ skønhed" . Registret (24. februar 2015) . Hentet 3. januar 2019. Arkiveret fra originalen 4. januar 2019.
  11. Arkiveret kopi . Hentet 18. januar 2010. Arkiveret fra originalen 3. januar 2010.
  12. Powerset Blog Arkiveret 19. februar 2013.

Links