Výukový program HBase: Úvod do HBase a případová studie na Facebooku



Tento výukový blog HBase vám představí, co je HBase a jeho funkce. Pokrývá také případovou studii služby Facebook Messenger, aby bylo možné pochopit výhody HBase.

Jak jsme zmínili v našem blog, HBase je podstatnou součástí našeho ekosystému Hadoop. Takže bych vás rád provedl tutoriálem HBase, kde vám představím Apache HBase, a poté projdeme případovou studii Facebook Messenger. V tomto výukovém blogu HBase se budeme věnovat následujícím tématům:

Výukový program Apache HBase: Historie

Začněme s historií HBase a víme, jak se HBase vyvinula v průběhu času.





Historie HBase - Výukový program HBase - Edureka

  • Apache HBase je modelován podle BigTable společnosti Google, která se používá ke shromažďování dat a poskytování žádostí o různé služby Google, jako jsou Mapy, Finance, Země atd.
  • Apache HBase začínal jako projekt společnosti Powerset for Natural Language Search, která zpracovávala obrovské a řídké datové sady.
  • Apache HBase byl poprvé vydán v únoru 2007. Později v lednu 2008 se HBase stal dílčím projektem Apache Hadoop.
  • V roce 2010 se společnost HBase stala projektem nejvyšší úrovně Apache.

Výukový program HBase | NoSQL databáze | Edureka



Poté, co jste věděli o historii Apache HBase, zajímalo by vás, co je to Apache HBase? Pojďme se posunout dále a podívejme se.

Výukový program Apache HBase: Úvod do HBase

HBase je open source, multidimenzionální, distribuovaný, škálovatelný a Databáze NoSQL napsáno v Javě. HBase běží nad HDFS (Hadoop Distributed File System) a poskytuje Hadoop funkce podobné BigTable. Je navržen tak, aby poskytoval tolerantní způsob ukládání velké sbírky řídkých datových sad.

Vzhledem k tomu, HBase dosahuje vysoké propustnosti a nízké latence tím, že poskytuje rychlejší přístup pro čtení a zápis na obrovské datové sady. Proto je HBase volbou pro aplikace, které vyžadují rychlý a náhodný přístup k velkému množství dat.



Poskytuje kompresi, operace v paměti a Bloomovy filtry (datová struktura, která určuje, zda je hodnota v sadě přítomna či nikoli), aby splnila požadavek rychlého a náhodného čtení a zápisu.

Pojďme to pochopit na příkladu: Proudový motor generuje různé typy dat z různých snímačů, jako je snímač tlaku, snímač teploty, snímač otáček atd., Které indikují stav motoru. To je velmi užitečné pro pochopení problémů a stavu letu. Continuous Engine Operations generuje 500 GB dat za let a každý den se jedná o 300 tisíc letů. Engine Analytics aplikovaný na taková data téměř v reálném čase lze tedy použít k proaktivní diagnostice problémů a snížení neplánovaných prostojů. To vyžaduje distribuované prostředí pro ukládání velkého množství dat rychlé náhodné čtení a zápis pro zpracování v reálném čase. Zde přichází HBase na záchranu. O HBase Read and Write budu podrobně hovořit ve svém příštím blogu Architektura HBase .

Jak víme, HBase je NoSQL databáze. Než tedy pochopíme více informací o HBase, pojďme nejprve diskutovat o databázích NoSQL a jejich typech.

Výukový program Apache HBase: NoSQL databáze

NoSQL znamená Nejen SQL . Databáze NoSQL jsou modelovány tak, aby mohly reprezentovat jiná data než tabulkové formáty, unkile relační databáze. Pro reprezentaci dat v databázích používá různé formáty, a proto existují různé typy databází NoSQL na základě jejich formátu reprezentace. Většina databází NoSQL využívá dostupnost a rychlost oproti konzistenci. Nyní pojďme dál a pochopme různé typy databází NoSQL a jejich formáty reprezentace.

Obchody klíč – hodnota:

Je to databáze bez schémat, která obsahuje klíče a hodnoty. Každý klíč ukazuje na hodnotu, kterou je pole bajtů, může být řetězec, BLOB, XML atd., Např. Lamborghini je klíč a může poukazovat na hodnotu Gallardo, Aventador, Murciélago, Reventón, Diablo, Huracán, Veneno, Centenario atd.

Klíč-hodnota ukládá databáze: Aerospike, Couchbase, Dynamo, FairCom c-treeACE, FoundationDB, HyperDex, MemcacheDB, MUMPS, Oracle NoSQL Database, OrientDB, Redis, Riak, Berkeley DB.

Případ použití

Úložiště klíč-hodnota dobře zpracovávají velikost a jsou dobré při zpracování konstantního proudu operací čtení / zápisu s nízkou latencí. Díky tomu jsou ideální proPředvolby uživatelů a obchody s profily,Nejnovější položky doporučení produktů zobrazené na webových stránkách maloobchodníků, které podporují budoucí doporučení produktů zákazníků,Výsledkem reklamních zvyklostí při nakupování zákazníků jsou přizpůsobené reklamy, kupóny atd. Pro každého zákazníka v reálném čase.

Orientováno na dokument :

Sleduje stejný pár klíč-hodnota, ale je částečně strukturovaný jako XML, JSON, BSON. Tyto struktury jsou považovány za dokumenty.

Databáze založené na dokumentech: Apache CouchDB, Clusterpoint, Couchbase, DocumentDB, HyperDex, IBM Domino, MarkLogic, MongoDB, OrientDB, Qizx, RethinkDB.

Případ použití

Protože dokument podporuje flexibilní schéma, díky rychlému zápisu a rozdělení je vhodný pro vytváření uživatelských databází v různých službách, jako je twitter, webové stránky elektronického obchodování atd.

Orientováno na sloupec:

V této databázi jsou data uložena v buňkách seskupených ve sloupcích, nikoli v řádcích. Sloupce jsou logicky seskupeny do rodin sloupců, které lze vytvořit během definice schématu nebo za běhu.

Tyto typy databází ukládají celou buňku odpovídající sloupci jako nepřetržitý vstup na disk, čímž usnadňují přístup a vyhledávání mnohem rychleji.

Sloupcové databáze: HBase, Accumulo, Cassandra, Druid, Vertica.

Případ použití

Podporuje obrovské úložiště a umožňuje rychlejší přístup pro čtení i zápis. Díky tomu jsou sloupcově orientované databáze vhodné pro ukládání chování zákazníků na webových stránkách elektronického obchodování, ve finančních systémech, jako jsou Google Finance a údaje o akciových trzích, Google mapy atd.

Orientováno na graf:

Je to perfektní flexibilní grafické znázornění, používané na rozdíl od SQL. Tyto typy databází snadno řeší problémy se škálovatelností adres, protože obsahují hrany a uzly, které lze rozšířit podle požadavků.

php rozdíl mezi echem a tiskem

Databáze založené na grafech: AllegroGraph, ArangoDB, InfiniteGraph, Apache Giraph, MarkLogic, Neo4J, OrientDB, Virtuoso, Stardog.

Případ použití

To se v zásadě používá při detekci podvodů, motorech doporučení v reálném čase (ve většině případů elektronickém obchodování), správě hlavních dat (MDM), provozu sítí a IT, správě identit a přístupu (IAM) atd.

HBase a Cassandra jsou dvě slavné sloupcově orientované databáze. Takže teď, když to mluvíme na vyšší úroveň, pojďme porovnat a porozumět architektonickým a pracovním rozdílům mezi HBase a Cassandrou.

Výukový program HBase: HBase VS Cassandra

  • HBase je modelován na BigTable (Google), zatímco Cassandra je založena na DynamoDB (Amazon) původně vyvinutém Facebookem.
  • HBase využívá infrastrukturu Hadoop (HDFS, ZooKeeper), zatímco Cassandra se vyvinula samostatně, ale můžete kombinovat Hadoop a Cassandra podle svých potřeb.
  • HBase má několik komponent, které spolu komunikují, jako HBase HMaster, ZooKeeper, NameNode, Region Severs. Zatímco Cassandra je jediný typ uzlu, ve kterém jsou všechny uzly stejné a vykonává všechny funkce. Koordinátorem může být jakýkoli uzel, který odstraní jeden bod selhání.
  • HBase je optimalizován pro čtení a podporuje jednotlivé zápisy, což vede k přísné konzistenci. HBase podporuje skenování na základě dosahu, což zrychluje proces skenování. Zatímco Cassandra podporuje čtení jednoho řádku, což udržuje případnou konzistenci.
  • Cassandra nepodporuje skenování řádků na základě rozsahu, což zpomaluje proces skenování ve srovnání s HBase.
  • HBase podporuje uspořádané dělení, ve kterém jsou řádky rodiny Column uloženy v pořadí RowKey, zatímco v Casandře je uspořádané dělení výzvou. Díky rozdělení na RowKey je proces skenování v HBase rychlejší než ve srovnání s Cassandrou.
  • HBase nepodporuje vyrovnávání zátěže čtení, jeden server Region slouží požadavku na čtení a repliky se používají pouze v případě selhání. Zatímco Cassandra podporuje vyrovnávání zatížení čtení a umí číst stejná data z různých uzlů. To může ohrozit konzistenci.
  • V CAP (Consistency, Availability & Partition -Tolerance) theorem HBase udržuje Consistency and Availability while Cassandra focus on Availability and Partition -Tolerance.


Pojďme se hlouběji ponořit a pochopit vlastnosti Apache HBase, díky nimž je tak populární.

Výukový program Apache HBase: Vlastnosti HBase

  • Atomové čtení a zápis: Na úrovni řádků poskytuje HBase atomické čtení a zápis. Lze to vysvětlit tak, že během jednoho procesu čtení nebo zápisu je všem ostatním procesům zabráněno v provádění jakýchkoli operací čtení nebo zápisu.
  • Konzistentně čte a zapisuje: HBase poskytuje konzistentní čtení a zápis díky výše uvedené funkci.
  • Lineární a modulární škálovatelnost: Jelikož jsou datové sady distribuovány přes HDFS, je lineárně škálovatelná napříč různými uzly, stejně jako modulárně škálovatelná, protože je rozdělena mezi různé uzly.
  • Automatické a konfigurovatelné dělení stolů: Tabulky HBase jsou distribuovány napříč klastry a tyto klastry jsou distribuovány napříč regiony. Tyto oblasti a clustery se rozdělují a jsou redistribuovány s růstem dat.
  • Snadné použití rozhraní Java API pro přístup klienta: Poskytuje snadno použitelné rozhraní Java API pro programový přístup.
  • Thrift gateway a REST-ful webové služby: Podporuje také Thrift a REST API pro rozhraní jiných než Java.
  • Blokovat mezipaměť a Bloom filtry: HBase podporuje Block Cache a Bloom filtry pro optimalizaci velkoobjemových dotazů.
  • Automatická podpora selhání: HBase with HDFS provides WAL (Write Ahead Log) across clusters which provides automatic failure support.
  • Seřazené veslaři: Jelikož se vyhledávání provádí na řadě řádků, HBase ukládá veslové klíče v lexikografickém pořadí. Pomocí těchto seřazených řádků a časového razítka můžeme vytvořit optimalizovaný požadavek.

Nyní v tomto tutoriálu HBase pokračuji, řeknu vám, jaké jsou případy použití a scénáře, kde lze použít HBase, a poté porovnám HDFS a HBase.

Rád bych vás upozornil na scénáře, ve kterých je HBase nejvhodnější.

Výukový program HBase: Kde můžeme použít HBase?

  • Měli bychom použít HBase tam, kde máme velké datové sady (miliony nebo miliardy nebo řádky a sloupce) a vyžadujeme rychlý, náhodný a reálný čas, přístup ke čtení a zápisu přes data.
  • Datové sady jsou distribuovány napříč různými klastry a pro zpracování dat potřebujeme vysokou škálovatelnost.
  • Data jsou shromažďována z různých zdrojů dat a jsou to buď polostrukturovaná nebo nestrukturovaná data, nebo kombinace všech. S HBase se to dalo snadno zvládnout.
  • Chcete ukládat data orientovaná na sloupce.
  • Máte spoustu verzí datových sad a musíte je všechny uložit.

Než skočím na případovou studii Facebook Messenger,řeknu vám, jaké jsou rozdíly mezi HBase a HDFS.

Výukový program HBase: HBase VS HDFS

HDFS je distribuovaný souborový systém založený na prostředí Java, který umožňuje ukládat velká data napříč více uzly v clusteru Hadoop. HDFS je tedy základní úložný systém pro ukládání dat v distribuovaném prostředí. HDFS je souborový systém, zatímco HBase je databáze (podobně jako NTFS a MySQL).

Protože HDFS i HBase ukládají jakýkoli druh dat (tj. Strukturovaná, polostrukturovaná a nestrukturovaná) v distribuovaném prostředí, pojďme se podívat na rozdíly mezi souborovým systémem HDFS a HBase, databází NoSQL.

  • HBase poskytuje přístup s nízkou latencí k malému množství dat v rámci velkých datových sad, zatímco HDFS poskytuje operace s vysokou latencí.
  • HBase podporuje náhodné čtení a zápisy, zatímco HDFS podporuje WORM (zápis jednou, čtení mnohokrát nebo vícekrát).
  • K HDFS se v zásadě nebo primárně přistupuje prostřednictvím úloh MapReduce, zatímco k HBase se přistupuje prostřednictvím příkazů prostředí, Java API, REST, Avro nebo Thrift API.

HDFS ukládá velké datové sady v distribuovaném prostředí a na těchto datech využívá dávkové zpracování. Např. pomohlo by webové stránce elektronického obchodu ukládat miliony údajů o zákaznících v distribuovaném prostředí, které rostlo po dlouhou dobu (mohlo to být 4–5 let nebo více). Pak využívá dávkové zpracování nad těmito daty a analyzuje chování zákazníků, vzorce, požadavky. Poté by společnost mohla zjistit, jaký typ produktu si zákazník koupil za které měsíce. Pomáhá ukládat archivovaná data a provádět nad nimi dávkové zpracování.

Zatímco HBase ukládá data způsobem orientovaným na sloupec, kde je každý sloupec uložen společně, takže čtení se zrychluje s využitím zpracování v reálném čase. Např. v podobném prostředí elektronického obchodu ukládá miliony produktových dat. Pokud tedy hledáte produkt mezi miliony produktů, optimalizuje se proces vyhledávání a hledání a výsledek se vytvoří okamžitě (nebo můžete říci v reálném čase). Podrobný Architektonické vysvětlení HBase , Budu se zabývat v mém příštím blogu.

Jak víme, HBase je distribuován přes HDFS, takže kombinace obou nám dává skvělou příležitost využít výhody obou, v řešení na míru, jak uvidíme v níže uvedené případové studii Facebook messenger.

Výukový program HBase: Případová studie Facebook Messenger

Platforma pro zasílání zpráv na Facebooku v listopadu 2010 přešla z Apache Cassandra na HBase.

Facebook Messenger kombinuje zprávy, e-mail, chat a SMS do konverzace v reálném čase. Facebook se pokoušel vybudovat škálovatelnou a robustní infrastrukturu, která by zvládla sadu těchto služeb.

V té době zpracovávala infrastruktura zpráv více než 350 milionů uživatelů, kteří posílali více než 15 miliard osobních zpráv za měsíc. Chatovací služba podporuje více než 300 milionů uživatelů, kteří posílají více než 120 miliard zpráv měsíčně.

Monitorováním využití zjistili, že se objevily dva obecné datové vzorce:

jak psát třídu singleton v java
  • Krátká sada časových dat, která má tendenci být volatilní
  • Stále rostoucí soubor dat, ke kterým se málokdy přistupuje

Facebook chtěl najít řešení úložiště pro tyto dva způsoby používání a začal vyšetřovat, aby našel náhradu za stávající infrastrukturu Messages.

Dříve v roce 2008 použili databázi s otevřeným zdrojovým kódem, tj. Cassandru, což je úložiště klíčů a hodnot s případnou konzistencí, které již bylo v produkčním provozu pro Inbox Search. Jejich týmy disponovaly skvělými znalostmi v používání a správě databáze MySQL, takže změna jedné z technologií byla pro ně vážným problémem.

Strávili několik týdnů testováním různých frameworků, aby vyhodnotili klastry MySQL, Apache Cassandra, Apache HBase a dalších systémů. Nakonec vybrali HBase.

Protože MySQL nedokázal efektivně zpracovat velké datové sady, jak se indexy a datové sady zvětšily, výkon utrpěl. Zjistili, že Cassandra není schopna zvládnout obtížný vzorec pro sladění jejich nové infrastruktury Messages.

Hlavní problémy byly:

  • Ukládání velkých sad neustále rostoucích dat z různých služeb Facebooku.
  • Vyžaduje databázi, která na ní může využívat vysoké zpracování.
  • Vysoký výkon potřebný k uspokojení milionů požadavků.
  • Udržování konzistence v úložišti a výkonu.

Obrázek: Výzvy, kterým čelí Facebook Messenger

Pro všechny tyto problémy přišel Facebook s řešením, tj. HBase. Facebook přijal HBase pro obsluhu Facebook messenger, chat, e-mail atd. Kvůli jeho různým funkcím.

HBase přichází s velmi dobrou škálovatelností a výkonem pro toto pracovní vytížení s jednodušším modelem konzistence než Cassandra. Zatímco zjistili, že HBase je nejvhodnější z hlediska jejich požadavků, jako je automatické vyrovnávání zátěže a převzetí služeb při selhání, podpora komprese, více střepů na server atd.

HDFS, což je základní souborový systém používaný HBase, jim také poskytl několik potřebných funkcí, jako jsou kontrolní součty end-to-end, replikace a automatické vyvážení zátěže.

Obrázek: HBase jako řešení pro Facebook Messenger

Když přijali HBase, zaměřili se také na potvrzení výsledků zpět na samotnou HBase a začali úzce spolupracovat s komunitou Apache.

Vzhledem k tomu, že zprávy přijímají data z různých zdrojů, jako jsou SMS, chaty a e-maily, vytvořily aplikační server, který zpracovává veškerá rozhodnutí týkající se zprávy uživatele. Je propojen s velkým množstvím dalších služeb. Přílohy jsou uloženy v kupce sena (který funguje na HBase). Kromě Apache ZooKeeper také napsali službu zjišťování uživatelů, která hovoří s dalšími infrastrukturními službami o vztazích s přáteli, ověřování e-mailových účtů, rozhodování o doručení a ochraně osobních údajů.

Tým Facebooku strávil spoustu času potvrzením, že každá z těchto služeb je robustní, spolehlivá a poskytuje dobrý výkon pro zpracování systému zasílání zpráv v reálném čase.

Doufám, že tento výukový blog HBase je informativní a líbil se vám. V tomto blogu jste se seznámili se základy HBase a jeho funkcemi.V mém dalším blogu z , Vysvětlím architektura HBase a práce s HBase, díky níž je populární pro rychlé a náhodné čtení / zápis.

Nyní, když jste pochopili základy HBase, podívejte se na Edureka, důvěryhodná online vzdělávací společnost se sítí více než 250 000 spokojených studentů rozložených po celém světě. Kurz certifikace Edureka Big Data Hadoop Certification Training pomáhá studentům stát se odborníky na HDFS, Yarn, MapReduce, Pig, Hive, HBase, Oozie, Flume a Sqoop pomocí případů použití v reálném čase v oblasti maloobchodu, sociálních médií, letectví, cestovního ruchu, financí.

Máte na nás dotaz? Uveďte to prosím v sekci komentáře a my se vám ozveme.