HBase

HBase
Tyyppi ilmainen ja avoimen lähdekoodin ohjelmisto ja tietokannan hallintajärjestelmä
Kehittäjä Apache Software Foundation
Sisään kirjoitettu Java [3] [2]
Käyttöjärjestelmä cross-platform
Ensimmäinen painos 2006 [1] ja 14. huhtikuuta 2012 [2]
Laitteistoalusta Java-virtuaalikone
uusin versio
vapauttaa ehdokas
Lisenssi Apache License 2.0 [4]
Verkkosivusto hbase.apache.org

HBase  on avoimen lähdekoodin NoSQL DBMS , Hadoop - ekosysteemin projekti . kirjoitettu Javalla ; kuuluu "sarakeperhe" -luokkaan , monet tekniset ratkaisut on otettu Google BigTablesta . Se toimii HDFS -hajautetun tiedostojärjestelmän päällä ja tarjoaa BigTable-tyyppisiä ominaisuuksia Hadoopille, eli se tarjoaa vikasietoisen tavan tallentaa suuria määriä harvaa tietoa.

Pakkaustuki, muistin sisäiset toiminnot ja Bloom-suodatin jokaiselle alla olevalle sarakkeelle toteutetaan BigTable [5] -dokumentaation mukaisesti . HBasen taulukot voivat toimia syötteenä ja ulostulona MapReduce -toteutuksen toimintaan Hadoop-projektissa, ja ne voidaan saada paitsi Java API:n, myös API:n kautta ( REST , Avro , Thrift ). Phoenix ja Trafodion -projektit tarjoavat SQL :n pääsyn HBase-ohjattuihin tietoihin.

Sitä käytetään tietojen hallintaan useissa suurissa projekteissa [6] [7] , erityisesti Facebook käytti HBasea viestintäalustana [8] vuosina 2010-2018 (vuonna 2018 alusta siirrettiin MyRocksiin [9] ), uskollisia käyttäjiä ovat myös Adobe , StumbleUpon , Twitter , Yahoo! (operoi 3 000 solmun HBase-klusteria [10] ).

Historia

Powersetin Chad Walters ja Jim Kellerman aloittivat HBase-projektin vuonna 2006. Hankkeen täytyi käsitellä suuria tietomääriä luonnollisen kielen hakukoneen luomiseksi. Prototyyppi perustui vuonna 2005 julkaistuun Googlen artikkeliin Bigtable-järjestelmästä [11] . Helmikuussa 2007 Mike Cafarella kirjoitti järjestelmään tynkäkoodin, jota Jim Kellerman kehitti edelleen. Projekti sai pian paljon huomiota kehittäjiltä, ​​ja se sai korkean prioriteetin Apache-säätiössä [12] .

Ensimmäinen HBasen versio toimitettiin Hadoop 0.15.0:n kanssa lokakuussa 2007. Toukokuussa 2010 järjestelmä siirtyi Hadoop-aliprojektiluokasta Apache Foundationin huipputason projektiluokkaan . Vuodesta 2012 lähtien on järjestetty HBaseCon-järjestelmän kehittäjien ja käyttäjien vuotuinen konferenssi.

Vuonna 2015 järjestelmästä julkaistiin versio 1.0, jonka sekä rahasto että riippumattomat tarkkailijat totesivat tuotteen maturiteettia osoittavaksi virstanpylväksi [10] ; 2010-luvun toisesta puoliskosta lähtien kiinnostus järjestelmää kohtaan on kasvanut myös siihen liittyvien SQL-rajapintojen (Phoenix, Trafodion) myötä.

Tietomallit

Sovellukset tallentavat tiedot riveistä ja sarakkeista koostuviin taulukoihin. Taulukon solut (rivien ja sarakkeiden risteykset) ovat versioohjattuja. Oletusversio on aikaleima, jonka HBase määrittää automaattisesti lisäyksen yhteydessä. Solun sisältö on tulkitsematon tavutaulukko .

Taulukon riviavaimet ovat myös tavutaulukoita, joten teoriassa riviavain voi olla mitä tahansa merkkijonoista pitkien ja jopa sarjamuotoisten tietorakenteiden binääriesitykseen. Taulukon rivit lajitellaan riviavaimen (taulukon ensisijainen avain) mukaan. Lajittelu tapahtuu tavujärjestyksessä. Kaikki taulukon käyttöoikeudet perustuvat ensisijaiseen avaimeen. Sarakkeet on ryhmitelty sarakeperheisiin. Kaikilla sarakeperheen jäsenillä on yhteinen etuliite, esimerkiksi sarakkeet temperature:airja temperature:dew_pointkuuluvat perheeseen temperatureja station:identifierkuuluu perheeseen station. Sarakeperheen etuliitteen on oltava tulostettavia merkkejä. Viimeinen osa (tarkenne) voi koostua mielivaltaisista tavuista.

Taulukon sarakeperheet on määritettävä ennalta osana taulukkoskeeman määritystä, mutta uusia perheenjäseniä voidaan lisätä tarpeen mukaan. Esimerkiksi uusi sarake station:addressvoidaan välittää asiakkaalle osana päivitystä, ja sen arvo tallennetaan onnistuneesti - olettaen, että sarakeperhe stationon jo taulukossa. Fyysisesti kaikki sarakeperheiden jäsenet tallennetaan yhdessä tiedostojärjestelmään . Koska asetukset ja tekniset tiedot asetetaan sarakeperheen tasolla, on toivottavaa, että kaikilla perheenjäsenillä on samanlaiset käyttötavat ja mitoitusominaisuudet.

Alueet

HBase jakaa taulukot automaattisesti vaakasuunnassa niin sanotuiksi alueiksi . Jokainen alue muodostaa taulukon rivien osajoukon . Alueen määrittelee taulukko, johon se kuuluu, sen ensimmäinen rivi (mukaan lukien) ja viimeinen rivi (ei sisälly). Taulukko koostuu aluksi yhdestä alueesta, mutta kun alue kasvaa konfiguroitavan kokokynnyksen yli, se jakautuu kahdeksi uudeksi, suunnilleen samankokoiseksi alueeksi. Ensimmäiseen osioon saakka kaikki tietojen lataus suoritetaan samalla palvelimella, joka isännöi lähdealuetta. Taulukon kasvaessa sen alueiden määrä kasvaa. Alueet ovat HBase-klusteriin allokoituja yksiköitä. Jos taulukko on liian suuri yhdelle palvelimelle, sitä voi palvella palvelinklusteri, jossa jokainen solmu isännöi taulukon alueiden osajoukkoa. Lisäksi alueet tarjoavat kuormituksen tasapainotuksen pöydälle. Verkon kautta saatavilla olevien lajiteltujen alueiden joukko muodostaa taulukon kokonaissisällön.

Muistiinpanot

  1. http://hbase.apache.org/book/hbase.history.html
  2. 1 2 https://projects.apache.org/json/projects/hbase.json
  3. hbase Open Source -projekti Open Hubissa: Languages Page - 2006.
  4. http://hbase.apache.org/license.html
  5. Chang et ai. (2006). Bigtable: hajautettu tallennusjärjestelmä strukturoidulle tiedolle
  6. Powered by HBase (downlink) . Käyttöpäivä: 12. tammikuuta 2012. Arkistoitu alkuperäisestä 27. maaliskuuta 2013. 
  7. StumbleUpon HBase -esitys . Käyttöpäivä: 12. tammikuuta 2012. Arkistoitu alkuperäisestä 21. lokakuuta 2013.
  8. Viestien taustalla oleva tekniikka . Käyttöpäivä: 12. tammikuuta 2012. Arkistoitu alkuperäisestä 6. joulukuuta 2014.
  9. Xiang Li, Thomas Georgiou. Siirretään Messenger-tallennustilaa suorituskyvyn optimoimiseksi . Facebook (26.6.2018). Haettu 3. tammikuuta 2019. Arkistoitu alkuperäisestä 11. marraskuuta 2018.
  10. 12 Gavin Clarke. Apache kirjautuu vihdoin pois Hadoop-tietokannasta… 7 vuoden kehitystyön jälkeen . HBase 1.0 on yhteistyön kauneus . Rekisteri (24. helmikuuta 2015) . Haettu 3. tammikuuta 2019. Arkistoitu alkuperäisestä 4. tammikuuta 2019.
  11. Arkistoitu kopio . Haettu 18. tammikuuta 2010. Arkistoitu alkuperäisestä 3. tammikuuta 2010.
  12. Powerset-blogi arkistoitu 19. helmikuuta 2013.

Linkit