HBase

HBase
Typ bezplatný a otevřený software a systém správy databází
Vývojář Apache Software Foundation
Zapsáno v Java [3] [2]
Operační systém multiplatformní
První vydání 2006 [1] a 14. dubna 2012 [2]
Hardwarová platforma Java virtuální stroj
Nejnovější verze
kandidát na propuštění
Licence Licence Apache 2.0 [4]
webová stránka hbase.apache.org

HBase  je open source NoSQL DBMS , projekt ekosystému Hadoop . Napsáno v Javě ; patří do kategorie „column family“ , mnoho technických řešení je převzato z Google BigTable . Běží nad distribuovaným souborovým systémem HDFS a poskytuje funkce jako BigTable pro Hadoop, to znamená, že poskytuje způsob odolný proti chybám pro ukládání velkého množství řídkých dat.

Podpora komprese, operace v paměti a Bloomův filtr pro každý podkladový sloupec jsou implementovány v souladu s dokumentací BigTable [5] . Tabulky v HBase mohou sloužit jako vstup a výstup pro provoz implementace MapReduce v projektu Hadoop a lze je získat nejen prostřednictvím Java API, ale také prostřednictvím API ( REST , Avro , Thrift ). Projekty Phoenix a Trafodion poskytují SQL přístup k datům řízeným HBase.

Používá se ke správě dat v řadě velkých projektů [6] [7] , konkrétně Facebook používal HBase pro platformu pro zasílání zpráv [8] v období 2010-2018 (v roce 2018 byla platforma převedena na MyRocks [9] ), mezi věrné uživatele patří také Adobe , StumbleUpon , Twitter , Yahoo! (provozuje klastr HBase 3000 uzlů [10] ).

Historie

Projekt HBase zahájili v roce 2006 Chad Walters a Jim Kellerman ze společnosti Powerset, která potřebovala zpracovat velké množství dat k vytvoření vyhledávače v přirozeném jazyce. Prototyp byl založen na článku Google publikovaném v roce 2005 o systému Bigtable [11] . V únoru 2007 napsal Mike Cafarella útržkový kód pro systém, který dále rozvinul Jim Kellerman. Projekt brzy upoutal velkou pozornost vývojářů a získal vysokou prioritu v nadaci Apache [12] .

První verze HBase byla dodána s Hadoop 0.15.0 v říjnu 2007. V květnu 2010 se systém přesunul z kategorie podprojektů Hadoop do kategorie projektů nejvyšší úrovně nadace Apache . Od roku 2012 se koná výroční konference vývojářů a uživatelů systému HBaseCon.

V roce 2015 byla vydána verze 1.0 systému, která byla fondem i nezávislými pozorovateli označena jako „milník“ označující vyspělost produktu [10] ; Od druhé poloviny 2010 se zájem o systém zvýšil také díky vzhledu SQL rozhraní pro něj (Phoenix, Trafodion).

Datové modely

Aplikace ukládají data do tabulek složených z řádků a sloupců. Buňky tabulky (překřížení řádků a sloupců) jsou řízeny verzí. Výchozí verze je časové razítko automaticky přiřazené HBase v době vložení. Obsah buňky je neinterpretované pole bajtů .

Klíče řádků tabulky jsou také bajtová pole, takže teoreticky může být klíč řádku cokoli od řetězců po binární reprezentace longs a dokonce i serializované datové struktury. Řádky tabulky jsou seřazeny podle klíče řádku (primární klíč tabulky). Řazení se provádí v pořadí bajtů. Všechny přístupy k tabulce jsou založeny na primárním klíči. Sloupce jsou seskupeny do rodin sloupců. Všichni členové rodiny sloupců sdílejí společnou předponu, takže například sloupce temperature:aira temperature:dew_pointpatří do rodiny temperaturea station:identifierpatří do rodiny station. Předpona rodiny sloupců musí obsahovat tisknutelné znaky. Poslední část (kvalifikátor) se může skládat z libovolných bajtů.

Rodiny sloupců tabulky musí být předdefinovány jako součást definice schématu tabulky, ale podle potřeby lze přidat nové členy rodiny. Klientovi lze například v rámci aktualizace předat nový sloupec station:addressa jeho hodnota bude úspěšně uložena – za předpokladu, že rodina sloupců stationjiž v tabulce existuje. Fyzicky jsou všechny členy rodin sloupců uloženy společně v systému souborů . Protože se nastavení a specifikace nastavují na úrovni rodiny sloupců, je žádoucí, aby všichni členové rodiny měli podobné vzory přístupu a charakteristiky velikosti.

Regiony

HBase automaticky rozděluje tabulky horizontálně do tzv. regionů . Každá oblast tvoří podmnožinu řádků tabulky. Oblast je definována tabulkou, do které patří, jejím prvním řádkem (včetně) a posledním řádkem (nezahrnuto). Tabulka se zpočátku skládá z jedné oblasti, ale jak oblast roste nad konfigurovatelný práh velikosti, rozdělí se na dvě nové oblasti přibližně stejné velikosti. Až do prvního oddílu bude veškeré načítání dat probíhat na stejném serveru, který je hostitelem zdrojové oblasti. Jak tabulka roste, zvyšuje se počet jejích regionů. Regiony jsou jednotky alokované v clusteru HBase. Pokud je tabulka příliš velká pro jeden server, může být obsluhována serverovým clusterem, kde každý uzel hostí podmnožinu oblastí tabulky. Regiony navíc poskytují vyrovnávání zátěže na stole. Sada seřazených oblastí dostupných v síti tvoří celkový obsah tabulky.

Poznámky

  1. http://hbase.apache.org/book/hbase.history.html
  2. 1 2 https://projects.apache.org/json/projects/hbase.json
  3. Projekt hbase Open Source na Open Hub: Stránka jazyků - 2006.
  4. http://hbase.apache.org/license.html
  5. Chang, a kol. (2006). Bigtable: Distribuovaný úložný systém pro strukturovaná data
  6. Powered by HBase (downlink) . Datum přístupu: 12. ledna 2012. Archivováno z originálu 27. března 2013. 
  7. Prezentace StumbleUpon HBase . Datum přístupu: 12. ledna 2012. Archivováno z originálu 21. října 2013.
  8. Základní technologie zpráv . Datum přístupu: 12. ledna 2012. Archivováno z originálu 6. prosince 2014.
  9. Xiang Li, Thomas Georgiou. Migrace úložiště Messenger pro optimalizaci výkonu . Facebook (26. června 2018). Staženo 3. ledna 2019. Archivováno z originálu 11. listopadu 2018.
  10. 12 Gavin Clarke. Apache se konečně odhlásil z databáze Hadoop… po 7 letech vývoje . HBase 1.0 je „věc společné krásy“ . The Register (24. února 2015) . Staženo 3. ledna 2019. Archivováno z originálu dne 4. ledna 2019.
  11. Archivovaná kopie . Získáno 18. ledna 2010. Archivováno z originálu 3. ledna 2010.
  12. Blog Powerset Archivován 19. února 2013.

Odkazy