Vadnica za HBase: Uvod v HBase in študija primera na Facebooku



Ta blog o vadnicah HBase vas seznani s tem, kaj je HBase in njegovimi lastnostmi. Obsega tudi študijo primera Facebook Messenger, da bi razumeli prednosti HBase.

Kot smo že omenili v našem blog, HBase je bistveni del našega Hadoop ekosistema. Zdaj bi vas rad popeljal skozi vadnico HBase, kjer vam bom predstavil Apache HBase, nato pa bomo preučili študijo primera Facebook Messenger. V tem blogu vadnic HBase bomo zajeli naslednje teme:

Vadnica za Apache HBase: Zgodovina

Začnimo z zgodovino HBase in vemo, kako se je HBase v določenem obdobju razvijala.





Zgodovina HBase - Vadnica za HBase - Edureka

  • Apache HBase je oblikovan po vzoru Googlove BigTable, ki se uporablja za zbiranje podatkov in vročanje zahtev za različne Googlove storitve, kot so Zemljevidi, Finance, Zemlja itd.
  • Apache HBase se je začel kot projekt podjetja Powerset for Natural Language Search, ki je obdelovalo velike in redke nabore podatkov.
  • Apache HBase je bil prvič izdan februarja 2007. Kasneje januarja 2008 je HBase postal podprojekt Apache Hadoop.
  • Leta 2010 je HBase postal Apachejev projekt najvišje ravni.

Vadnica za HBase | Zbirke podatkov NoSQL | Edureka



Ko bi vedeli o zgodovini Apache HBase, bi vas zanimalo, kaj je Apache HBase? Pojdimo naprej in si oglejmo.

Vadnica za Apache HBase: Uvod v HBase

HBase je odprtokodna, večdimenzionalna, porazdeljena, razširljiva in a Zbirka podatkov NoSQL napisano v Javi. HBase deluje na vrhu HDFS (Hadoop Distributed File System) in ponuja Hadoopu podobne zmogljivosti kot BigTable. Zasnovan je tako, da omogoča odporen način shranjevanja velike zbirke redkih naborov podatkov.

HBase dosega visoko prepustnost in nizko zakasnitev s hitrejšim dostopom za branje / pisanje na ogromnih naborih podatkov. Zato je HBase izbira za aplikacije, ki zahtevajo hiter in naključen dostop do velike količine podatkov.



Zagotavlja stiskanje, operacije v pomnilniku in Bloom-filtre (podatkovna struktura, ki pove, ali je vrednost prisotna v naboru ali ne), da izpolni zahtevo po hitrem in naključnem branju-zapisovanju.

Razumimo na primeru: Mlazni motor generira različne vrste podatkov iz različnih senzorjev, kot so senzor tlaka, temperaturni senzor, senzor hitrosti itd., Kar kaže na zdravje motorja. To je zelo koristno za razumevanje težav in stanja leta. Neprekinjeno delovanje motorja ustvari 500 GB podatkov na let in dnevno je približno 300 tisoč letov. Torej, Engine Analytics, ki se uporablja za take podatke v skoraj realnem času, se lahko uporablja za proaktivno diagnosticiranje težav in zmanjšanje nenačrtovanih zastojev. To zahteva porazdeljeno okolje, s katerim lahko shranjujete veliko količino podatkov hitro naključno branje in pisanje za obdelavo v realnem času. Tukaj prihaja po pomoč HBase. O HBase Read and Write bom podrobno govoril v naslednjem blogu na Arhitektura HBase .

Kot vemo, je HBase baza podatkov NoSQL. Preden razumemo več o HBase, se najprej pogovorimo o podatkovnih bazah NoSQL in njihovih vrstah.

Vadnica za Apache HBase: Baze podatkov NoSQL

NoSQL pomeni Ne samo SQL . Podatkovne baze NoSQL so oblikovane tako, da lahko predstavljajo podatke, ki niso tabelarni formati, neregulirane relacijske baze podatkov. Za predstavitev podatkov v bazah uporablja različne formate, zato obstajajo različne vrste baz podatkov NoSQL, ki temeljijo na njihovi obliki predstavitve. Večina baz podatkov NoSQL izkoristi razpoložljivost in hitrost zaradi doslednosti. Zdaj pa pojdimo naprej in razumemo različne vrste baz podatkov NoSQL in njihove predstavitvene formate.

Trgovine Key-Value:

Gre za bazo podatkov brez shem, ki vsebuje ključe in vrednosti. Vsak ključ, ki kaže na vrednost, ki je niz bajtov, je lahko niz, BLOB, XML itd., Npr. Lamborghini je ključ in lahko kaže na vrednost Gallardo, Aventador, Murciélago, Reventón, Diablo, Huracán, Veneno, Centenario itd.

Key-Value shranjuje baze podatkov: Aerospike, Couchbase, Dynamo, FairCom c-treeACE, FoundationDB, HyperDex, MemcacheDB, MUMPS, Oracle NoSQL Database, OrientDB, Redis, Riak, Berkeley DB.

Primer uporabe

Trgovine ključnih vrednosti dobro obvladujejo velikost in dobro obdelujejo stalen tok operacij branja / pisanja z majhno zakasnitvijo. Zaradi tega so kot nalašč zaUporabniške nastavitve in prodajalne profilov,Priporočila za izdelke, najnovejši predmeti, ki so si jih ogledali na spletnem mestu prodajalca, za spodbujanje prihodnjih priporočil za izdelke strankNakupovanje kupčevih navad pri servisiranju oglasov povzroči sprotno prilagajanje oglasov, kuponov itd. Za vsako stranko.

Dokument usmerjen :

Sledi istemu paru ključnih vrednosti, vendar je polstrukturiran, kot so XML, JSON, BSON. Te strukture veljajo za dokumente.

kaj je sqoop v hadoopu

Zbirke podatkov na osnovi dokumentov: Apache CouchDB, Clusterpoint, Couchbase, DocumentDB, HyperDex, IBM Domino, MarkLogic, MongoDB, OrientDB, Qizx, RethinkDB.

Primer uporabe

Ker dokument podpira prilagodljivo shemo, je zaradi hitrega branja in razdeljevanja primeren za ustvarjanje uporabniških baz podatkov v različnih storitvah, kot so twitter, spletna mesta e-trgovine itd.

Usmerjeno v stolpec:

V tej zbirki podatkov so podatki shranjeni v celici, združeni v stolpce in ne v vrstice. Stolpci so logično združeni v družine stolpcev, ki jih je mogoče ustvariti med definiranjem sheme ali med izvajanjem.

Te vrste podatkovnih baz shranijo vso celico, ki ustreza stolpcu, kot neprekinjen vnos na disk, s čimer je dostop in iskanje veliko hitrejši.

Podatkovne baze na podlagi stolpcev: HBase, Accumulo, Cassandra, Druid, Vertica.

Primer uporabe

Podpira ogromen prostor za shranjevanje in omogoča hitrejši dostop do branja preko njega. Zaradi tega so stolpno usmerjene zbirke podatkov primerne za shranjevanje vedenja strank na spletnem mestu e-poslovanja, finančnih sistemih, kot so Google Finance in borzni podatki, Google Maps itd.

Grafično usmerjeno:

Je popolna prilagodljiva grafična predstavitev, ki se uporablja za razliko od SQL. Te vrste baz podatkov zlahka rešujejo težave z razširljivostjo naslova, saj vsebujejo robove in vozlišče, ki ga je mogoče razširiti v skladu z zahtevami.

Grafične zbirke podatkov: AllegroGraph, ArangoDB, InfiniteGraph, Apache Giraph, MarkLogic, Neo4J, OrientDB, Virtuoso, Stardog.

Primer uporabe

To se v bistvu uporablja pri odkrivanju goljufij, mehanizmih za priporočanje v realnem času (v večini primerov e-poslovanju), upravljanju glavnih podatkov (MDM), omrežju in IT, upravljanju identitete in dostopa (IAM) itd.

HBase in Cassandra sta dve znani zbirki podatkov, usmerjeni v stolpce. Zdaj, ko se pogovarjamo na višji ravni, primerjajmo in razumemo arhitekturne in delovne razlike med HBase in Cassandro.

Vadnica za HBase: HBase VS Cassandra

  • HBase je oblikovan po vzoru BigTable (Google), Cassandra pa temelji na DynamoDB (Amazon), ki ga je prvotno razvil Facebook.
  • HBase izkorišča infrastrukturo Hadoop (HDFS, ZooKeeper), medtem ko se je Cassandra razvijala ločeno, vendar lahko Hadoop in Cassandro kombinirate po svojih potrebah.
  • HBase ima več komponent, ki komunicirajo skupaj, kot so HBase HMaster, ZooKeeper, NameNode, Region Severs. Medtem ko je Cassandra en tip vozlišča, pri katerem so vsa vozlišča enaka in opravlja vse funkcije. Vsako vozlišče je lahko koordinator, ki odstrani eno točko okvare.
  • HBase je optimiziran za branje in podpira posamično zapisovanje, kar vodi do doslednosti. HBase podpira optično branje, ki pospeši postopek skeniranja. Medtem ko Cassandra podpira enovrstno branje, ki ohranja morebitno doslednost.
  • Cassandra ne podpira skeniranja vrstic na podlagi dosega, kar upočasni postopek skeniranja v primerjavi s HBase.
  • HBase podpira urejeno particioniranje, v katerem so vrstice družine stolpcev shranjene v vrstnem redu RowKey, medtem ko je v Casandri naročena particija izziv. Zaradi particioniranja RowKey je postopek skeniranja pri HBase hitrejši kot pri Cassandri.
  • HBase ne podpira izravnave obremenitve branja, en regijski strežnik postreže z zahtevo za branje, replike pa se uporabljajo samo v primeru okvare. Medtem ko Cassandra podpira uravnoteženje obremenitve branja in lahko prebere enake podatke iz različnih vozlišč. To lahko ogrozi doslednost.
  • V izreku CAP (doslednost, razpoložljivost in particija-toleranca) HBase ohranja doslednost in razpoložljivost, medtem ko se Cassandra osredotoča na razpoložljivost in particijo-strpnost.


Zdaj pa se poglobimo in razumemo značilnosti Apache HBase, zaradi česar je tako priljubljena.

Vadnica za Apache HBase: Značilnosti HBase

  • Atomsko branje in pisanje: Na ravni vrst HBase omogoča atomsko branje in pisanje. Razložljivo je, da med enim postopkom branja ali pisanja vsem drugim procesom ni dovoljeno izvajati nobenih operacij branja ali pisanja.
  • Dosledno branje in pisanje: HBase zagotavlja dosledno branje in pisanje zaradi zgoraj navedene funkcije.
  • Linearna in modularna razširljivost: Ker so nabori podatkov porazdeljeni prek HDFS, je zato linearno razširljiv po različnih vozliščih in tudi modularno razširljiv, saj je razdeljen na različna vozlišča.
  • Samodejno in nastavljivo ostrenje tabel: Tabele HBase so porazdeljene po grozdih in te grozde po regijah. Te regije in grozdi se razdelijo in se z rastjo podatkov porazdelijo.
  • Enostaven za uporabo Java API za dostop odjemalca: Zagotavlja enostaven za uporabo Java API za programski dostop.
  • Varčen prehod in REST popolne spletne storitve: Podpira tudi Thrift in REST API za front-end, ki niso Java.
  • Blokiraj predpomnilnik in filtre Bloom: HBase podpira Block Cache in Bloom Filters za veliko količino poizvedb.
  • Samodejna podpora za napake: HBase s HDFS zagotavlja WAL (Write Ahead Log) med grozdi, ki zagotavlja samodejno podporo pri okvarah.
  • Razvrščene vrstice: Ko iskanje poteka po vrsti vrstic, HBase shrani ključe v leksikografskem vrstnem redu. S pomočjo teh razvrščenih tipk vrstic in časovnega žiga lahko sestavimo optimizirano zahtevo.

Zdaj grem naprej v tej vadnici za HBase, naj vam povem, kakšni so primeri in scenariji uporabe HBase, nato pa bom primerjal HDFS in HBase.

Rad bi vas opozoril na scenarije, v katerih je HBase najbolj primeren.

Vadnica za HBase: Kje lahko uporabimo HBase?

  • HBase bi morali uporabiti tam, kjer imamo velike nabore podatkov (milijone ali milijarde ali vrstice in stolpce) in zahtevamo hiter, naključen in sproten čas, dostop do branja in pisanja podatkov.
  • Nabori podatkov so porazdeljeni po različnih grozdih in za obdelavo podatkov potrebujemo veliko razširljivost.
  • Podatki se zbirajo iz različnih virov podatkov in so bodisi polstrukturirani ali nestrukturirani podatki ali kombinacija vseh. Z njim bi bilo enostavno ravnati s HBase.
  • Shraniti želite podatke, usmerjene v stolpce.
  • Na voljo imate veliko različic naborov podatkov, ki jih morate shraniti.

Preden se lotim študije primera Facebook messenger,naj vam povem, kakšne so razlike med HBase in HDFS.

Vadnica za HBase: HBase VS HDFS

HDFS je porazdeljeni datotečni sistem, ki temelji na Javi in ​​vam omogoča shranjevanje velikih podatkov v več vozliščih v gruči Hadoop. Torej, HDFS je osnovni sistem za shranjevanje podatkov v distribuiranem okolju. HDFS je datotečni sistem, medtem ko je HBase baza podatkov (podobno kot NTFS in MySQL).

Tako HDFS kot HBase hranita kakršne koli podatke (tj. Strukturirane, polstrukturirane in nestrukturirane) v porazdeljenem okolju, zato si oglejmo razlike med datotečnim sistemom HDFS in HBase, bazo podatkov NoSQL.

  • HBase omogoča dostop z majhno zakasnitvijo do majhnih količin podatkov v velikih naborih podatkov, medtem ko HDFS zagotavlja visoke zakasnitve.
  • HBase podpira naključno branje in pisanje, medtem ko HDFS podpira WORM (pisanje enkrat prebrano večkrat ali večkrat).
  • Do HDFS v bistvu ali pretežno dostopajo preko opravil MapReduce, medtem ko do HBase dostopajo prek ukazov lupine, Java API, REST, Avro ali Thrift API.

HDFS shrani velike nabore podatkov v porazdeljenem okolju in izkoristi serijsko obdelavo teh podatkov. Npr. spletnemu mestu za e-poslovanje bi pomagalo shraniti milijone podatkov o kupcih v porazdeljenem okolju, ki je raslo v daljšem časovnem obdobju (morda 4-5 let ali več). Nato uporabi serijsko obdelavo teh podatkov in analizira vedenje, vzorec in zahteve kupcev. Potem je podjetje lahko ugotovilo, kakšen izdelek je kupil in kupil v katerem mesecu. Pomaga pri shranjevanju arhiviranih podatkov in izvedbi serijske obdelave nad njimi.

Medtem ko HBase podatke shrani na stolpec, kjer je vsak stolpec shranjen skupaj, tako da branje hitreje izkorišča obdelavo v realnem času. Npr. v podobnem okolju e-poslovanja hrani na milijone podatkov o izdelkih. Če torej iščete izdelek med milijoni izdelkov, optimizira zahtevo in postopek iskanja, tako da rezultat takoj (ali lahko rečete v realnem času). Podrobno Arhitekturna razlaga HBase , Bom pokrival v naslednjem blogu.

Kot vemo, da se HBase distribuira prek HDFS, nam kombinacija obeh daje odlično priložnost, da v prilagojeni rešitvi uporabimo prednosti obeh, kot bomo videli v spodnji študiji primera Facebook messenger.

Vadnica za HBase: študija primera Facebook Messenger

Facebook platforma za sporočanje novembra 2010 prestopil iz Apache Cassandre v HBase.

Facebook Messenger združuje sporočila, e-pošto, klepet in SMS v pogovor v realnem času. Facebook je poskušal zgraditi prilagodljivo in trdno infrastrukturo za upravljanje nabora teh storitev.

Takrat je sporočilna infrastruktura obdelovala več kot 350 milijonov uporabnikov, ki so mesečno pošiljali več kot 15 milijard osebnih sporočil. Storitev klepeta podpira več kot 300 milijonov uporabnikov, ki mesečno pošljejo več kot 120 milijard sporočil.

S spremljanjem uporabe so ugotovili, da sta se pojavila dva splošna vzorca podatkov:

  • Kratek nabor začasnih podatkov, ki so ponavadi nestanovitni
  • Naraščajoči nabor podatkov, do katerih je redko dostopati

Facebook je želel najti rešitev za shranjevanje teh dveh vzorcev uporabe in začeli so preiskovati, da bi našli zamenjavo za obstoječo infrastrukturo Messages.

V začetku leta 2008 so uporabljali odprtokodno bazo podatkov, tj. Cassandro, ki je shramba ključ-vrednost morebitne skladnosti, ki je že bila v produkciji in je obiskovala promet za Inbox Search. Njihove ekipe so odlično poznale uporabo in upravljanje zbirke podatkov MySQL, zato jih je zamenjava katere koli tehnologije resno skrbela.

Nekaj ​​tednov so preizkušali različne okvire za ocenjevanje grozdov MySQL, Apache Cassandra, Apache HBase in drugih sistemov. Na koncu so izbrali HBase.

Ker MySQL ni uspel učinkovito obvladovati velikih naborov podatkov, saj so indeksi in nabori podatkov naraščali, je trpela zmogljivost. Ugotovili so, da Cassandra ni mogla obvladati težkih vzorcev, da bi uskladila svojo novo infrastrukturo Messages.

Glavne težave so bile:

  • Shranjevanje velikih naborov nenehno rastočih podatkov iz različnih Facebook storitev.
  • Zahteva bazo podatkov, ki lahko izkoristi visoko obdelavo.
  • Visoka zmogljivost, potrebna za izpolnjevanje milijonov zahtev.
  • Ohranjanje doslednosti pri shranjevanju in delovanju.

Slika: Izzivi, s katerimi se sooča Facebook messenger

Za vse te težave je Facebook našel rešitev, to je HBase. Facebook je zaradi različnih funkcij sprejel HBase za storitve Facebook messengerja, klepeta, e-pošte itd.

HBase ima zelo dobro razširljivost in zmogljivost za to delovno obremenitev s preprostejšim modelom skladnosti kot Cassandra. Medtem ko so ugotovili, da je HBase najprimernejši glede na njihove zahteve, kot so samodejno uravnoteženje obremenitve in preusmeritev, podpora za stiskanje, več drobcev na strežnik itd.

HDFS, ki je osnovni datotečni sistem, ki ga uporablja HBase, jim je zagotovil tudi nekaj potrebnih funkcij, kot so kontrolne vsote od konca do konca, kopiranje in samodejno ponovno uravnoteženje obremenitve.

Slika: HBase kot rešitev za Facebook messenger

Ko so sprejeli HBase, so se osredotočili tudi na to, da rezultate sporočijo sami HBase in začeli tesno sodelovati s skupnostjo Apache.

Ker sporočila sprejemajo podatke iz različnih virov, kot so SMS, klepeti in e-poštna sporočila, so napisali aplikacijski strežnik, ki ureja vse odločitve o uporabnikovem sporočilu. Vmesnik je z velikim številom drugih storitev. Priloge so shranjene v kozolcu (ki deluje na HBase). Na vrh Apache ZooKeeper so napisali tudi storitev za odkrivanje uporabnikov, ki se pogovarja z drugimi infrastrukturnimi storitvami za prijateljske odnose, preverjanje e-poštnega računa, odločitve o dostavi in ​​odločitve o zasebnosti.

Ekipa Facebooka je veliko časa namenila potrditvi, da je vsaka od teh storitev robustna, zanesljiva in zagotavlja dobro delovanje za sporočanje v realnem času.

Upam, da je ta blok z vadnicami HBase informativen in vam je bil všeč. V tem blogu ste spoznali osnove HBase in njegove značilnosti.V mojem naslednjem blogu , Razložil bom arhitektura HBase in delovanje HBase, zaradi česar je priljubljen za hitro in naključno branje / pisanje.

Zdaj, ko ste razumeli osnove HBase, si oglejte Edureka, zaupanja vredno podjetje za spletno učenje z mrežo več kot 250.000 zadovoljnih učencev, razširjenih po vsem svetu. Tečaj Edureka Big Data Hadoop Certification Training pomaga učencem, da postanejo strokovnjaki za HDFS, prejo, MapReduce, Pig, Hive, HBase, Oozie, Flume in Sqoop z uporabo primerov uporabe v realnem času na področju maloprodaje, družbenih medijev, letalstva, turizma, financ

Imate vprašanje za nas? Prosimo, omenite to v oddelku za komentarje in se vam bomo javili.