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] ).
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ä.
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.
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.
Apache Software Foundation | |||||||
---|---|---|---|---|---|---|---|
Huipputason projektit |
| ||||||
Osaprojektit |
| ||||||
Apache Web |
| ||||||
Muut projektit | |||||||
Kehitysprojektit ( hautomo ) |
| ||||||
Käytöstä poistetut projektit ( ullakko ) | |||||||
|