Výukový program HBase: Úvod do HBase a prípadová štúdia na Facebooku



Tento výukový blog HBase vám predstaví, čo je HBase a jeho funkcie. Zahŕňa tiež prípadovú štúdiu Facebook Messenger s cieľom pochopiť výhody HBase.

Ako sme už uviedli v našom blog, HBase je podstatnou súčasťou nášho ekosystému Hadoop. Takže teraz by som vás rád previedol tutoriálom HBase, kde vám predstavím Apache HBase, a potom si prejdeme prípadovú štúdiu Facebook Messenger. V tomto výučbovom blogu HBase sa budeme venovať nasledujúcim témam:

Výukový program Apache HBase: História

Začnime históriou HBase a vieme, ako sa HBase vyvinula v priebehu určitého časového obdobia.





História HBase - Výukový program HBase - Edureka

  • Apache HBase je modelovaný podľa BigTable spoločnosti Google, ktorá sa používa na zhromažďovanie údajov a poskytovanie požiadaviek pre rôzne služby Google, ako sú Mapy, Financie, Earth atď.
  • Apache HBase začínal ako projekt spoločnosti Powerset for Natural Language Search, ktorá spracúvala masívne a riedke súbory dát.
  • Apache HBase bol prvýkrát uvedený na trh vo februári 2007. Neskôr v januári 2008 sa HBase stal čiastkovým projektom Apache Hadoop.
  • V roku 2010 sa spoločnosť HBase stala projektom najvyššej úrovne spoločnosti Apache.

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



Po znalosti histórie Apache HBase by vás zaujímalo, čo je Apache HBase? Poďme ďalej a pozrime sa.

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

HBase je open source, multidimenzionálny, distribuovaný, škálovateľný a NoSQL databáza napísané v Jave. HBase beží nad HDFS (Hadoop Distributed File System) a poskytuje Hadoopu podobné možnosti ako BigTable. Je navrhnutý tak, aby poskytoval odolný voči chybám a spôsobom ukladania veľkej zbierky riedkych množín údajov.

Pretože HBase dosahuje vysokú priepustnosť a nízku latenciu tým, že poskytuje rýchlejší prístup na čítanie a zápis na obrovské množiny údajov. Preto je HBase voľbou pre aplikácie, ktoré vyžadujú rýchly a náhodný prístup k veľkému množstvu dát.



Poskytuje kompresiu, operácie v pamäti a Bloomove filtre (dátová štruktúra, ktorá určuje, či je hodnota v množine prítomná alebo nie), aby splnila požiadavku rýchleho a náhodného čítania a zápisu.

Poďme to pochopiť na príklade: Prúdový motor generuje rôzne typy údajov z rôznych snímačov, ako sú snímač tlaku, snímač teploty, snímač otáčok atď., Ktoré indikujú zdravotný stav motora. To je veľmi užitočné na pochopenie problémov a stavu letu. Kontinuálna prevádzka motora generuje 500 GB dát na let a každý deň sa uskutoční približne 300-tisíc letov. Engine Analytics použitá na tieto údaje v takmer reálnom čase sa teda dá použiť na proaktívnu diagnostiku problémov a zníženie neplánovaných prestojov. To si vyžaduje distribuované prostredie na ukladanie veľkého množstva údajov rýchle náhodné čítanie a zápis na spracovanie v reálnom čase. Tu prichádza na pomoc HBase. O HBase Read and Write budem hovoriť podrobne v ďalšom blogu Architektúra HBase .

Ako vieme, HBase je NoSQL databáza. Pred porozumením podrobnejších informácií o HBase si teda najskôr povieme o databázach NoSQL a ich typoch.

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

NoSQL znamená Nielen SQL . Databázy NoSQL sú modelované takým spôsobom, že môžu predstavovať iné údaje ako tabuľkové formáty, unkile relačné databázy. Na reprezentáciu údajov v databázach používa rôzne formáty, a preto existujú rôzne typy databáz NoSQL na základe ich formátu zastúpenia. Väčšina databáz NoSQL využíva dostupnosť a rýchlosť oproti konzistencii. Poďme teraz ďalej a pochopme rôzne typy databáz NoSQL a ich formáty reprezentácie.

Obchody kľúč - hodnota:

Jedná sa o databázu bez schémy, ktorá obsahuje kľúče a hodnoty. Každý kľúč ukazuje na hodnotu, ktorou je pole bajtov, môže byť reťazec, BLOB, XML atď., Napr. Lamborghini je kľúč a môže poukazovať na hodnotu Gallardo, Aventador, Murciélago, Reventón, Diablo, Huracán, Veneno, Centenario atď.

Key-Value obchody databázy: Aerospike, Couchbase, Dynamo, FairCom c-treeACE, FoundationDB, HyperDex, MemcacheDB, MUMPS, Oracle NoSQL Database, OrientDB, Redis, Riak, Berkeley DB.

Prípad použitia

Obchody kľúč - hodnota zvládajú veľkosť dobre a sú dobré pri spracovaní konštantného toku operácií čítania a zápisu s nízkou latenciou. Vďaka tomu sú ideálne preObchody s preferenciami používateľov a profilmi,Najnovšie položky odporúčaní produktov zobrazené na webových stránkach maloobchodníkov, ktoré slúžia ako pomôcka pre budúce odporúčania zákazníkov,Výsledkom reklamných návykov pri nakupovaní zákazníkov sú prispôsobené reklamy, kupóny atď. Pre každého zákazníka v reálnom čase.

Orientované na dokument :

Sleduje rovnaký pár kľúč - hodnota, ale je čiastočne štruktúrovaný ako XML, JSON, BSON. Tieto štruktúry sa považujú za dokumenty.

Dokumentové databázy: Apache CouchDB, Clusterpoint, Couchbase, DocumentDB, HyperDex, IBM Domino, MarkLogic, MongoDB, OrientDB, Qizx, RethinkDB.

Prípad použitia

Pretože dokument podporuje flexibilnú schému, vďaka rýchlemu čítaniu, zápisu a rozdeleniu na oddiely je tento nástroj vhodný na vytváranie databáz používateľov v rôznych službách, ako sú twitter, webové stránky elektronického obchodu atď.

Orientované na stĺpec:

V tejto databáze sú údaje uložené v bunkách zoskupených v stĺpcoch a nie v riadkoch. Stĺpce sú logicky zoskupené do skupín stĺpcov, ktoré je možné vytvoriť buď počas definície schémy, alebo za behu programu.

Tieto typy databáz ukladajú celú bunku zodpovedajúcu stĺpcu ako nepretržitý vstup na disk, čo umožňuje oveľa rýchlejší prístup a vyhľadávanie.

Databázy založené na stĺpcoch: HBase, Accumulo, Cassandra, Druid, Vertica.

Prípad použitia

Podporuje obrovské úložisko a umožňuje rýchlejší prístup na čítanie a zápis. Vďaka tomu sú stĺpcovo orientované databázy vhodné na ukladanie správania zákazníkov na webových stránkach elektronického obchodu, finančných systémoch, ako sú Google Finance a údaje o akciovom trhu, mapy Google atď.

Orientované na graf:

Je to perfektné flexibilné grafické znázornenie, ktoré sa používa na rozdiel od SQL. Tieto typy databáz ľahko riešia problémy so škálovateľnosťou adresy, pretože obsahujú hrany a uzly, ktoré je možné podľa požiadaviek rozširovať.

ponúka metódy triedy skenerov

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

Prípad použitia

Toto sa v zásade používa pri detekcii podvodov, motoroch odporúčaní v reálnom čase (vo väčšine prípadov elektronickom obchode), správe kmeňových údajov (MDM), sieťových a IT operáciách, správe identity a prístupu (IAM) atď.

HBase a Cassandra sú dve známe stĺpcovo orientované databázy. Takže keď to teraz povieme na vyššej úrovni, porovnajme a pochopme architektonické a pracovné rozdiely medzi HBase a Cassandrou.

Výukový program pre HBase: HBase VS Cassandra

  • HBase je modelovaný na BigTable (Google), zatiaľ čo Cassandra je založený na DynamoDB (Amazon) pôvodne vyvinutom spoločnosťou Facebook.
  • HBase využíva infraštruktúru Hadoop (HDFS, ZooKeeper), zatiaľ čo Cassandra sa vyvíjala samostatne, ale môžete kombinovať Hadoop a Cassandra podľa svojich potrieb.
  • HBase má niekoľko komponentov, ktoré spolu komunikujú, ako sú HBase HMaster, ZooKeeper, NameNode, Region Severs. Zatiaľ čo Cassandra je typ s jedným uzlom, v ktorom sú všetky uzly rovnaké a vykonáva všetky funkcie. Koordinátorom môže byť ktorýkoľvek uzol, ktorý odstráni jeden bod zlyhania.
  • HBase je optimalizovaný na čítanie a podporuje jednotlivé zápisy, čo vedie k prísnej konzistencii. HBase podporuje skenovanie na základe rozsahu, vďaka čomu je proces skenovania rýchlejší. Zatiaľ čo Cassandra podporuje čítanie v jednom riadku, ktoré zachováva prípadnú konzistenciu.
  • Cassandra nepodporuje skenovanie riadkov na základe rozsahu, čo spomaľuje proces skenovania v porovnaní s HBase.
  • HBase podporuje usporiadané rozdelenie, v ktorom sú riadky rodiny stĺpcov uložené v poradí RowKey, zatiaľ čo v Casandre je usporiadané rozdelenie výzvou. Vďaka rozdeleniu RowKey je proces skenovania v HBase rýchlejší v porovnaní s Cassandrou.
  • HBase nepodporuje vyrovnávanie zaťaženia na čítanie, jeden server Region slúži na požiadavku na čítanie a repliky sa používajú iba v prípade zlyhania. Zatiaľ čo Cassandra podporuje vyrovnávanie zaťaženia pri čítaní a dokáže načítať rovnaké údaje z rôznych uzlov. To môže narušiť konzistenciu.
  • V CAP (Consistency, Availability & Partition -Tolerance) veta HBase udržuje Consistency and Availability, zatiaľ čo Cassandra sa zameriava na Availability and Partition -Tolerance.


Poďme sa teraz hlboko ponoriť a porozumieť vlastnostiam servera Apache HBase, vďaka ktorému je tak populárny.

Výukový program Apache HBase: Vlastnosti HBase

  • Atómové čítanie a zápis: Na úrovni riadkov poskytuje HBase atómové čítanie a zápis. Dá sa to vysvetliť tak, že počas jedného procesu čítania alebo zápisu nemôžu všetky ostatné procesy vykonávať akékoľvek operácie čítania alebo zápisu.
  • Dôsledne číta a píše: Vďaka vyššie uvedenej funkcii poskytuje HBase konzistentné čítanie a zápis.
  • Lineárna a modulárna škálovateľnosť: Pretože sú dátové súbory distribuované cez HDFS, je lineárne škálovateľný cez rôzne uzly, ako aj modulárne škálovateľný, pretože je rozdelený medzi rôzne uzly.
  • Automatické a konfigurovateľné rozdelenie tabuliek: Tabuľky HBase sú distribuované medzi klastrami a tieto klastre sú distribuované medzi regiónmi. Tieto oblasti a klastre sa rozdeľujú a pri raste údajov sa redistribuujú.
  • Ľahko použiteľné rozhranie Java API pre prístup klienta: Poskytuje ľahko použiteľné rozhranie Java API pre programový prístup.
  • Thrift gateway a REST-ful webové služby: Podporuje tiež Thrift a REST API pre klientske rozhrania iné ako Java.
  • Filtre medzipamäte a Bloom: HBase podporuje Block Cache a Bloom filtre pre optimalizáciu veľkoobjemových dotazov.
  • Automatická podpora porúch: HBase with HDFS provides WAL (Write Ahead Log) across clusters which provides automatic failure support.
  • Zoradené veslové kľúče: Pretože sa vyhľadávanie vykonáva v rozsahu riadkov, HBase ukladá veslové kľúče v lexikografickom poradí. Pomocou týchto zoradených riadkov a časových značiek môžeme vytvoriť optimalizovanú požiadavku.

Teraz v tomto tutoriále HBase napredujem, poviem vám, aké sú prípady použitia a scenáre, kde je možné HBase použiť, a potom porovnám HDFS a HBase.

Rád by som upriamil vašu pozornosť na scenáre, do ktorých sa HBase hodí najlepšie.

Výukový program pre HBase: Kde môžeme použiť HBase?

  • Mali by sme používať HBase, kde máme veľké súbory dát (milióny alebo miliardy alebo riadky a stĺpce) a vyžadujeme rýchly, náhodný a v reálnom čase prístup na čítanie a zápis cez dáta.
  • Súbory údajov sú distribuované do rôznych klastrov a na spracovanie údajov potrebujeme vysokú škálovateľnosť.
  • Údaje sa zhromažďujú z rôznych zdrojov údajov a sú to buď pološtruktúrované alebo neštruktúrované údaje, alebo kombinácia všetkých. Dalo by sa to ľahko zvládnuť pomocou HBase.
  • Chcete uložiť stĺpcovo orientované údaje.
  • Máte veľa verzií súborov údajov a musíte ich všetky uložiť.

Predtým, ako prejdem k prípadovej štúdii Facebook Messenger,poviem ti ake su rozdiely medzi HBase a HDFS.

Výukový program HBase: HBase VS HDFS

HDFS je distribuovaný súborový systém založený na prostredí Java, ktorý vám umožňuje ukladať veľké údaje na viacerých uzloch v klastri Hadoop. HDFS je teda základný úložný systém na ukladanie údajov v distribuovanom prostredí. HDFS je súborový systém, zatiaľ čo HBase je databáza (podobná ako NTFS a MySQL).

Pretože HDFS aj HBase ukladajú akýkoľvek druh údajov (t. J. Štruktúrované, pološtruktúrované a neštruktúrované) v distribuovanom prostredí, pozrime sa na rozdiely medzi súborovým systémom HDFS a HBase, databázou NoSQL.

  • HBase poskytuje prístup s nízkou latenciou k malému množstvu údajov vo veľkých množinách dát, zatiaľ čo HDFS poskytuje operácie s vysokou latenciou.
  • HBase podporuje náhodné čítanie a zápis, zatiaľ čo HDFS podporuje WORM (zápis raz, čítanie mnohokrát alebo viackrát).
  • K HDFS sa v zásade alebo primárne pristupuje prostredníctvom úloh MapReduce, zatiaľ čo k HBase sa pristupuje prostredníctvom príkazov shellu, Java API, REST, Avro alebo Thrift API.

HDFS ukladá veľké dátové súbory v distribuovanom prostredí a na týchto dátach využíva dávkové spracovanie. Napr. pomohlo by to elektronickému obchodu ukladať milióny údajov o zákazníkoch v distribuovanom prostredí, ktoré rástlo počas dlhého časového obdobia (mohlo to byť 4 až 5 rokov alebo viac). Potom využíva dávkové spracovanie nad týmito údajmi a analyzuje správanie, štruktúru, požiadavky zákazníkov. Potom by spoločnosť mohla zistiť, aký typ produktu, nákup zákazníka v ktorých mesiacoch. Pomáha ukladať archivované údaje a vykonávať nad nimi dávkové spracovanie.

Zatiaľ čo HBase ukladá údaje spôsobom orientovaným na stĺpec, kde je každý stĺpec uložený spoločne, takže čítanie je rýchlejšie vďaka spracovaniu v reálnom čase. Napr. v podobnom prostredí elektronického obchodu ukladá milióny údajov o výrobkoch. Ak teda hľadáte produkt medzi miliónmi produktov, optimalizuje sa tým proces vyhľadávania a hľadania a výsledok sa vytvorí okamžite (alebo môžete povedať v reálnom čase). Podrobné Architektonické vysvetlenie HBase , Sa budem venovať vo svojom ďalšom blogu.

Ako vieme, HBase je distribuovaný cez HDFS, takže kombinácia oboch nám dáva skvelú príležitosť využiť výhody oboch v podobe riešenia šitého na mieru, ako uvidíme v nasledujúcej prípadovej štúdii Messenger na Facebooku.

Výukový program HBase: Prípadová štúdia Facebook Messenger

Platforma pre zasielanie správ Facebook sa v novembri 2010 presunul z Apache Cassandra do HBase.

Facebook Messenger kombinuje správy, e-mail, chat a SMS do konverzácie v reálnom čase. Facebook sa pokúšal vybudovať škálovateľnú a robustnú infraštruktúru na zvládnutie súboru týchto služieb.

V tom čase spracovala infraštruktúra správ viac ako 350 miliónov používateľov, ktorí mesačne odosielali viac ako 15 miliárd správ. Chatovacia služba podporuje viac ako 300 miliónov používateľov, ktorí mesačne odosielajú viac ako 120 miliárd správ.

Monitorovaním používania zistili, že sa objavili dva všeobecné vzory údajov:

použite python vo vizuálnom štúdiu
  • Krátky súbor časových údajov, ktoré majú tendenciu byť nestále
  • Neustále rastúci súbor údajov, ku ktorým sa málokedy dostane prístup

Spoločnosť Facebook chcela nájsť riešenie úložiska pre tieto dva vzorce používania a začali vyšetrovať, aby našli náhradu za existujúcu infraštruktúru správ.

Na začiatku roku 2008 používali databázu otvoreného zdroja, tj. Cassandru, čo je obchod s kľúčmi a hodnotami prípadnej konzistencie, ktorý už bol v produkcii slúžiacej na prenos pre službu Inbox Search. Ich tímy mali vynikajúce znalosti v oblasti používania a správy databázy MySQL, takže zmena jednej z týchto technológií bola pre nich vážnym problémom.

Strávili niekoľko týždňov testovaním rôznych rámcov, aby vyhodnotili klastre MySQL, Apache Cassandra, Apache HBase a ďalších systémov. Nakoniec vybrali HBase.

Pretože MySQL nedokázal efektívne spracovať veľké množiny údajov, pretože indexy a množiny údajov narástli, utrpel výkon. Zistili, že Cassandra nie je schopná zvládnuť zložitý vzorec na zosúladenie svojej novej infraštruktúry správ.

Hlavné problémy boli:

  • Ukladajú sa veľké množiny neustále rastúcich údajov z rôznych služieb Facebooku.
  • Vyžaduje databázu, ktorá z nej môže vyťažiť vysoké spracovanie.
  • Na vybavenie miliónov požiadaviek je potrebný vysoký výkon.
  • Udržiavanie konzistencie pri ukladaní a výkone.

Obrázok: Výzvy, ktorým čelí posol Facebooku

Pre všetky tieto problémy prišiel Facebook s riešením, t.j. HBase. Facebook prijal HBase na poskytovanie služieb Facebook Messenger, chat, e-mail atď. Kvôli svojim rôznym funkciám.

HBase prichádza s veľmi dobrou škálovateľnosťou a výkonom pre toto pracovné zaťaženie s jednoduchším modelom konzistencie ako Cassandra. Aj keď považovali HBase za najvhodnejšiu z hľadiska svojich požiadaviek, ako je automatické vyrovnávanie zaťaženia a prepnutie po zlyhaní, podpora kompresie, viacnásobný zlomok na server atď.

HDFS, čo je základný súborový systém používaný HBase, im tiež poskytol niekoľko potrebných funkcií, ako sú napríklad kontrolné súčty end-to-end, replikácia a automatické vyváženie záťaže.

Obrázok: HBase ako riešenie pre Facebook Messenger

Keď prijali HBase, zamerali sa tiež na odovzdanie výsledkov späť samotnej HBase a začali úzko spolupracovať s komunitou Apache.

Keďže správy prijímajú údaje z rôznych zdrojov, ako sú napríklad SMS, chaty a e-maily, napísali aplikačný server, ktorý spracoval všetky rozhodnutia týkajúce sa správy používateľa. Je prepojiteľný s veľkým počtom ďalších služieb. Prílohy sú uložené v kope sena (ktorý funguje na HBase). Napísali tiež službu vyhľadávania používateľov na server Apache ZooKeeper, ktorá hovorí s ostatnými službami infraštruktúry o vzťahoch s priateľmi, overovaní e-mailových účtov, rozhodovaní o doručovaní a rozhodovaní o ochrane osobných údajov.

Tím spoločnosti Facebook strávil veľa času potvrdzovaním, že každá z týchto služieb je robustná, spoľahlivá a poskytuje dobrý výkon pri spracovaní systému správ v reálnom čase.

Dúfam, že tento výukový blog HBase je informačný a páčil sa vám. V tomto blogu ste sa oboznámili so základmi HBase a jeho funkciami.V mojom ďalšom blogu z , Vysvetlím architektúra HBase a práca s HBase, ktorá ho robí obľúbeným pre rýchle a náhodné čítanie / zápis.

Teraz, keď ste pochopili základné informácie o HBase, pozrite sa na autor: Edureka, dôveryhodná online vzdelávacia spoločnosť so sieťou viac ako 250 000 spokojných študentov rozmiestnených po celom svete. Kurz certifikácie Edadoka Big Data Hadoop Certification Training pomáha študentom stať sa odborníkmi v oblasti HDFS, Yarn, MapReduce, Pig, Hive, HBase, Oozie, Flume a Sqoop pomocou prípadov použitia v reálnom čase v oblasti maloobchodu, sociálnych médií, letectva, cestovného ruchu, financií.

Máte na nás otázku? Uveďte to prosím v sekcii komentárov a my sa vám ozveme.