HBase | |
---|---|
Típusú | ingyenes és nyílt forráskódú szoftverek és adatbázis-kezelő rendszer |
Fejlesztő | Apache Software Foundation |
Beírva | Java [3] [2] |
Operációs rendszer | platformközi |
Első kiadás | 2006 [1] és 2012. április 14. [2] |
Hardver platform | Java virtuális gép |
legújabb verzió |
|
felszabadító jelölt |
|
Engedély | Apache License 2.0 [4] |
Weboldal | hbase.apache.org _ |
A HBase egy nyílt forráskódú NoSQL DBMS , a Hadoop ökoszisztéma projektje . Java nyelven írva ; az "oszlopcsalád" kategóriába tartozik , sok műszaki megoldást a Google BigTable vette át . A HDFS elosztott fájlrendszeren fut, és BigTable-szerű képességeket biztosít a Hadoop számára, vagyis hibatűrő módot biztosít nagy mennyiségű, ritka adat tárolására.
A tömörítési támogatás, a memórián belüli műveletek és az egyes mögöttes oszlopok Bloom-szűrője a BigTable [5] dokumentációjának megfelelően valósul meg . A HBase táblái bemenetként és kimenetként szolgálhatnak a Hadoop projekt MapReduce implementációjának működéséhez , és nem csak a Java API-n, hanem az API-n ( REST , Avro , Thrift ) keresztül is beszerezhetők. A Phoenix és a Trafodion projektek SQL hozzáférést biztosítanak a HBase által vezérelt adatokhoz.
Számos nagy projekt adatkezelésére használják [6] [7] , különösen a Facebook HBase-t használt az üzenetküldő platformhoz [8] 2010-2018 között (2018-ban a platform átkerült a MyRockshoz [9] ), a hűséges felhasználók közé tartozik még az Adobe , a StumbleUpon , a Twitter , a Yahoo! (egy 3000 csomópontból álló HBase klasztert működtet [10] ).
A HBase projektet 2006-ban Chad Walters és Jim Kellerman, a Powersettől indították el, amelynek nagy mennyiségű adatot kellett feldolgoznia egy természetes nyelvű keresőmotor létrehozásához. A prototípus a Google 2005-ben megjelent cikkén alapult a Bigtable rendszerről [11] . 2007 februárjában Mike Cafarella írt egy csonkkódot a rendszerhez, amelyet Jim Kellerman fejlesztett tovább. A projekt hamarosan felkeltette a fejlesztők nagy érdeklődését, és az Apache alapítványban is kiemelt prioritást kapott [12] .
A HBase első verzióját a Hadoop 0.15.0-val szállították 2007 októberében. 2010 májusában a rendszer átkerült a Hadoop alprojekt kategóriából az Apache Foundation legfelső szintű projektkategóriájába . 2012 óta évente megrendezik a HBaseCon rendszer fejlesztői és felhasználói konferenciáját.
2015-ben megjelent a rendszer 1.0-s verziója, amelyet az alap és a független megfigyelők is „mérföldkőként” jegyeztek meg, jelezve a termék lejáratát [10] ; A 2010-es évek második felétől a rendszer iránti érdeklődés a hozzá való SQL interfészek (Phoenix, Trafodion) megjelenése miatt is megnőtt.
Az alkalmazások sorokból és oszlopokból álló táblázatokban tárolják az adatokat. A táblázatcellák (sorok és oszlopok keresztezései) verziófüggő. Az alapértelmezett verzió a HBase által a beillesztéskor automatikusan hozzárendelt időbélyeg. A cella tartalma egy értelmezetlen bájttömb .
A táblasorkulcsok egyben bájttömbök is, így elméletileg a sorkulcs bármi lehet, a karakterláncoktól a longok bináris megjelenítéséig, sőt a soros adatstruktúrákig. A táblázat sorai a sorkulcs (a tábla elsődleges kulcsa) szerint vannak rendezve. A rendezés bájt sorrendben történik. Minden tábla-hozzáférés az elsődleges kulcson alapul. Az oszlopok oszlopcsaládokba vannak csoportosítva. Az oszlopcsalád minden tagja közös előtaggal rendelkezik, így például az oszlopok temperature:airés temperature:dew_pointa családhoz tartoznak, és a temperaturecsaládhoz station:identifiertartoznak station. Az oszlopcsalád előtagjának nyomtatható karakterekből kell állnia. Az utolsó rész (minősítő) tetszőleges bájtokból állhat.
A táblázatoszlop-családokat előre meg kell adni a táblaséma-definíció részeként, de szükség esetén új családtagok is hozzáadhatók. Például egy új oszlopot station:addressát lehet adni az ügyfélnek a frissítés részeként, és az értéke sikeresen elmentésre kerül - feltételezve, hogy az oszlopcsalád stationmár létezik a táblában. Fizikailag az oszlopcsaládok összes tagja együtt van tárolva a fájlrendszerben . Mivel a beállítások és specifikációk az oszlopcsalád szintjén vannak megadva, kívánatos, hogy minden családtag hasonló hozzáférési mintákkal és méretezési jellemzőkkel rendelkezzen.
A HBase automatikusan felosztja a táblákat vízszintesen úgynevezett régiókra . Minden régió táblázatsorok egy részhalmazát alkotja. A régiót az a tábla határozza meg, amelyhez tartozik, az első sora (beleértve) és az utolsó sor (nem tartalmazza). A táblázat kezdetben egyetlen régióból áll, de amint a régió túllép egy konfigurálható méretküszöbön, két új, megközelítőleg azonos méretű régióra oszlik. Az első partícióig minden adatbetöltés ugyanazon a kiszolgálón történik, amelyen a forrásrégió található. Ahogy a táblázat növekszik, úgy nő a régióinak száma. A régiók egy HBase-fürtben lefoglalt egységek. Ha egy tábla túl nagy egyetlen kiszolgálóhoz, akkor azt egy szerverfürt is kiszolgálhatja, ahol minden csomópont a tábla régióinak egy részhalmazát tárolja. Ezenkívül a régiók terheléselosztást biztosítanak az asztalon. A hálózaton keresztül elérhető rendezett régiók halmaza alkotja a táblázat teljes tartalmát.
Apache Software Foundation | |||||||
---|---|---|---|---|---|---|---|
Legfelső szintű projektek |
| ||||||
Alprojektek |
| ||||||
Apache |
| ||||||
Egyéb projektek | |||||||
Fejlesztő projektek ( inkubátor ) |
| ||||||
Leszerelt projektek ( tetőtér ) | |||||||
|