HBase'i õpetus: HBase'i sissejuhatus ja Facebooki juhtumiuuring

See HBase'i õpetusblogi tutvustab teile, mis on HBase ja selle funktsioonid. See hõlmab ka Facebook Messengeri juhtumiuuringut, et mõista HBase'i eeliseid.

Nagu me mainisime oma blogi, HBase on oluline osa meie Hadoopi ökosüsteemist. Nüüd tahaksin teid läbi viia HBase'i õpetuse, kus tutvustan teile Apache HBase'i ja seejärel tutvume Facebook Messengeri juhtumiuuringuga. Käsitleme selles HBase'i õpetuse ajaveebis järgmisi teemasid:



Apache HBase'i õpetus: ajalugu

Alustame HBase'i ajaloost ja teame, kuidas HBase on teatud aja jooksul arenenud.



HBase

  • Apache HBase on loodud Google'i BigTable'i järgi, mida kasutatakse andmete kogumiseks ja erinevate Google'i teenuste (nt Maps, Finance, Earth jne) taotluste esitamiseks.
  • Apache HBase sai alguse ettevõtte Powerset for Natural Language Search projektist, mis käsitles massiivseid ja hõredaid andmekogumeid.
  • Apache HBase ilmus esmakordselt veebruaris 2007. Hiljem jaanuaris 2008 sai HBase'ist Apache Hadoopi alamprojekt.
  • 2010. aastal sai HBase Apache'i tipptasemel projektiks.

HBase'i õpetus | NoSQL andmebaasid | Edureka



Olles teadnud Apache HBase'i ajalugu, oleksite uudishimulik teada, mis on Apache HBase? Liigume edasi ja heidame pilgu.

Apache HBase'i õpetus: HBase'i sissejuhatus

HBase on avatud lähtekoodiga, mitmemõõtmeline, hajutatud, skaleeritav ja a NoSQL andmebaas kirjutatud Java keeles. HBase töötab peal HDFS (Hadoopi hajutatud failisüsteem) ja pakub Hadoopile BigTable'i sarnaseid võimalusi. See on loodud selleks, et pakkuda rikketaluvat viisi hõredate andmekogumite suure hulga salvestamiseks.

Kuna HBase saavutab suure läbilaskevõime ja madala latentsuse, pakkudes tohutute andmekogumite jaoks kiiremat lugemis- / kirjutusjuurdepääsu. Seetõttu on HBase valik rakenduste jaoks, mis vajavad kiiret ja juhuslikku juurdepääsu suurele hulgale andmetele.



See pakub tihendamist, mälus toiminguid ja Bloom-filtreid (andmestruktuur, mis annab teada, kas väärtus on komplektis olemas või mitte), et täita kiire ja juhusliku lugemise-kirjutamise nõue.

Mõistame seda näite abil: Reaktiivmootor genereerib erinevat tüüpi anduritelt, näiteks rõhuandurilt, temperatuuriandurilt, kiiruseandurilt jne, erinevat tüüpi andmeid, mis näitavad mootori tervislikku seisundit. See on väga kasulik lennu probleemide ja oleku mõistmiseks. Mootori pidev töötamine genereerib lennu kohta 500 GB andmeid ja päevas on umbes 300 tuhat lendu. Niisiis saab sellistele andmetele peaaegu reaalajas rakendatud Engine Analyticsit kasutada ennetavalt probleemide diagnoosimiseks ja planeerimata seisaku vähendamiseks. Selleks on vaja hajutatud keskkonda suure hulga andmete salvestamiseks kiire juhuslik loeb ja kirjutab reaalajas töötlemiseks. Siin tuleb HBase appi. HBase'i lugemisest ja kirjutamisest räägin üksikasjalikult oma järgmises ajaveebis HBase'i arhitektuur .

Nagu me teame, on HBase NoSQL-i andmebaas. Nii et enne HBase'i kohta lisateavet saate kõigepealt arutada NoSQL-i andmebaaside ja nende tüüpide üle.

Apache HBase'i õpetus: NoSQL-i andmebaasid

NoSQL tähendab Mitte ainult SQL . NoSQL-i andmebaasid on modelleeritud nii, et need võivad esindada muid andmeid kui tabelivorminguid, unkile relatsioonilisi andmebaase. Andmebaasides andmete esitamiseks kasutatakse erinevaid vorminguid ja seega on olemas erinevad tüübid NoSQL-i andmebaase nende esitamisvormingu põhjal. Enamik NoSQL-i andmebaasidest suurendab järjepidevuse olemasolu ja kiirust. Nüüd liikugem edasi ja mõistkem erinevat tüüpi NoSQL-i andmebaase ja nende esitusvorminguid.

Põhiväärtusega kauplused:

See on skeemivaba andmebaas, mis sisaldab võtmeid ja väärtusi. Iga võti osutab väärtusele, mis on baitide massiiv, võib olla string, BLOB, XML jne. Lamborghini on võti ja võib osutada väärtusele Gallardo, Aventador, Murciélago, Reventón, Diablo, Huracán, Veneno, Centenario jne.

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

Kasutusjuhtum

Võtmeväärtusega kauplused saavad suurusega hästi hakkama ja suudavad hästi töödelda pidevat madala latentsusega lugemis- / kirjutamistoimingute voogu. See muudab need ideaalseksKasutaja eelistused ja profiilipoed,Tootesoovitused - uusimad tooted, mida jaemüüja veebisaidil vaadatakse, et anda tulevastele klienditoodete soovitusteleReklaamiteeninduse klientide ostuharjumuste tulemuseks on reaalajas iga kliendi jaoks kohandatud reklaamid, kupongid jms.

Dokumendile orienteeritud :

See järgib sama põhiväärtuste paari, kuid on poolstruktureeritud nagu XML, JSON, BSON. Neid struktuure peetakse dokumentideks.

Dokumendipõhised andmebaasid: Apache CouchDB, Clusterpoint, Couchbase, DocumentDB, HyperDex, IBM Domino, MarkLogic, MongoDB, OrientDB, Qizx, RethinkDB.

Kasutusjuhtum

Kuna dokument toetab paindlikku skeemi, muudab kiire lugemise kirjutamine ja jaotamine selle sobivaks kasutajate andmebaaside loomiseks erinevates teenustes, näiteks twitteris, e-kaubanduse veebisaitidel jne.

Veerg orienteeritud:

Selles andmebaasis salvestatakse andmed lahtritesse, mis on rühmitatud pigem veergudesse kui ridadesse. Veerud on loogiliselt rühmitatud veergude perekondadesse, mida saab luua kas skeemi määratlemise ajal või käitusajal.

Seda tüüpi andmebaasid salvestavad kogu veerule vastava lahtri ketta pideva sisestusena, muutes juurdepääsu ja otsingu palju kiiremaks.

Veerupõhised andmebaasid: HBase, Accumulo, Cassandra, Druid, Vertica.

Kasutusjuhtum

See toetab tohutut salvestusruumi ja võimaldab selle üle kiiremini kirjutusjuurdepääsu. See muudab veerukesksed andmebaasid sobivaks klientide käitumise salvestamiseks e-kaubanduse veebisaidil, finantssüsteemides nagu Google Finance ja aktsiaturgude andmed, Google Maps jne.

Graafile orienteeritud:

See on ideaalne paindlik graafiline esitus, mida kasutatakse erinevalt SQL-ist. Seda tüüpi andmebaasid lahendavad hõlpsalt aadressi mastaapsuse probleemid, kuna need sisaldavad servi ja sõlme, mida saab vastavalt nõuetele laiendada.

Graafikul põhinevad andmebaasid: AllegroGraph, ArangoDB, InfiniteGraph, Apache Giraph, MarkLogic, Neo4J, OrientDB, Virtuoso, Stardog.

Kasutusjuhtum

Põhimõtteliselt kasutatakse seda pettuste tuvastamisel, reaalajas soovitusmootorites (enamikul juhtudel e-kaubandus), põhiandmete halduses (MDM), võrgu- ja IT-operatsioonides, identiteedi ja juurdepääsu halduses (IAM) jne.

HBase ja Cassandra on kaks kuulsat veergudele suunatud andmebaasi. Niisiis, rääkides nüüd kõrgemal tasemel, võrrelgem ja mõistkem HBase'i ja Cassandra arhitektuurilisi ja tööalaseid erinevusi.

HBase'i õpetus: HBase VS Cassandra

  • HBase'i eeskuju on BigTable (Google), Cassandra aga DynamoDB (Amazon), mille algselt arendas välja Facebook.
  • HBase kasutab Hadoopi infrastruktuuri (HDFS, ZooKeeper), samal ajal kui Cassandra arenes eraldi, kuid saate Hadoopi ja Cassandra kombineerida vastavalt oma vajadustele.
  • HBase'il on mitu omavahel suhtlevat komponenti, näiteks HBase HMaster, ZooKeeper, NameNode, Region Severs. Kui Cassandra on üks sõlmetüüp, milles kõik sõlmed on võrdsed ja täidab kõiki funktsioone. Mis tahes sõlm võib olla koordinaator, mis eemaldab ühe tõrke punkti.
  • HBase on optimeeritud lugemiseks ja toetab üksikuid kirjutusi, mis viib range järjepidevuseni. HBase toetab vahemikupõhiseid skaneeringuid, mis muudab skannimisprotsessi kiiremaks. Cassandra toetab ühes reas lugemist, mis säilitab lõpliku järjepidevuse.
  • Cassandra ei toeta vahemikupõhiseid ridade skaneerimisi, mis aeglustavad skannimisprotsessi võrreldes HBase'iga.
  • HBase toetab tellitud jaotamist, milles veergude perekonna read on salvestatud RowKey järjekorras, samas kui Casandras on tellitud jaotamine väljakutseks. RowKey partitsiooni tõttu on skannimisprotsess HBase'is kiirem kui Cassandra.
  • HBase ei toeta lugemise koormuse tasakaalustamist, üks regiooniserver teenindab lugemispäringut ja koopiaid kasutatakse ainult tõrke korral. Kui Cassandra toetab lugemise koormuse tasakaalustamist ja saab lugeda samu andmeid erinevatest sõlmedest. See võib kahjustada järjepidevust.
  • CAP-i (järjepidevus, kättesaadavus ja jaotustolerants) teoreem säilitab HBase järjepidevuse ja kättesaadavuse, samas kui Cassandra keskendub kättesaadavusele ja jaotustaluvusele.


Nüüd teeme sügava sukeldumise ja mõistame Apache HBase'i funktsioone, mis muudab selle nii populaarseks.

Apache HBase'i õpetus: HBase'i funktsioonid

  • Aatomi lugemine ja kirjutamine: Rea tasemel pakub HBase aatomi lugemist ja kirjutamist. Seda saab seletada, kuna ühe lugemis- või kirjutamisprotsessi ajal takistatakse kõiki muid protsesse lugemis- või kirjutamistoimingute tegemisest.
  • Järjepidev loeb ja kirjutab: HBase pakub ülaltoodud funktsiooni tõttu järjepidevat lugemist ja kirjutamist.
  • Lineaarne ja modulaarne mastaapsus: Kuna andmekogumid on jaotatud HDFS-i kaudu, on see nii lineaarselt skaleeritav erinevate sõlmede vahel kui ka modulaarselt skaleeritav, kuna see on jaotatud erinevate sõlmede vahel.
  • Laudade automaatne ja konfigureeritav killustamine: HBase'i tabelid on jaotatud klastrite vahel ja need klastrid on jaotatud piirkondade vahel. Need piirkonnad ja klastrid jagunevad ja jagunevad andmete kasvades ümber.
  • Kliendi juurdepääsuks hõlpsasti kasutatav Java API: See pakub hõlpsasti kasutatavat Java API-d programmiliseks juurdepääsuks.
  • Säästuvärav ja REST-täis veebiteenused: Samuti toetab see Thrift ja REST API mitte-Java-i esiotstele.
  • Vahemälu ja õitsemisfiltrite blokeerimine: HBase toetab suure hulga päringute optimeerimiseks plokkide vahemälu ja õitsemisfiltreid.
  • Automaatne rikke tugi: HDFS-iga HBase pakub kogu klastrites WAL-i (Write Ahead Log), mis pakub automaatset tõrkeid.
  • Sorteeritud reavõtmed: Kuna otsimine toimub ridade vahemikus, salvestab HBase reavõtmed leksikograafilises järjekorras. Nende sorditud reavõtmete ja ajatempli abil saame koostada optimeeritud päringu.

Nüüd selles HBase'i õpetuses edasi liikudes lubage mul öelda, millised on kasutusjuhud ja stsenaariumid, kus HBase'i saab kasutada, ja seejärel võrdlen HDFS-i ja HBase-i.

Tahaksin juhtida teie tähelepanu stsenaariumidele, kus HBase sobib kõige paremini.

HBase'i õpetus: kus saame HBase'i kasutada?

  • Peaksime kasutama HBase'i, kui meil on suured andmekogumid (miljoneid või miljardeid või ridu ja veerge) ning vajame andmete üle kiiret, juhuslikku ja reaalajas juurdepääsu, lugemis- ja kirjutusjuurdepääsu.
  • Andmekogumid on jaotatud erinevate klastrite vahel ja andmete käsitlemiseks vajame suurt mastaapsust.
  • Andmed on kogutud erinevatest andmeallikatest ja need on kas poolstruktureeritud või struktureerimata andmed või kõigi kombinatsioon. HBase'iga sai sellega hõlpsasti hakkama.
  • Soovite salvestada veergudele orienteeritud andmeid.
  • Teil on palju andmekogumite versioone ja peate kõik need salvestama.

Enne kui lähen Facebooki messengeri juhtumiuuringule,lubage mul öelda, mis on HBase'i ja HDFS-i erinevused.

HBase'i õpetus: HBase VS HDFS

HDFS on Java-põhine hajutatud failisüsteem, mis võimaldab teil salvestada suuri andmeid Hadoopi klastri mitme sõlme vahel. Niisiis, HDFS on andmete salvestamise hajutatud keskkonnas alus. HDFS on failisüsteem, HBase aga andmebaas (sarnane NTFS ja MySQL).

Kuna nii HDFS kui ka HBase salvestavad mis tahes liiki andmeid (s.t struktureeritud, poolstruktureeritud ja struktureerimata) hajutatud keskkonda, võimaldab see vaadata erinevusi HDFS-failisüsteemi ja NoSQL-i andmebaasi HBase vahel.

  • HBase pakub väikese latentsusega juurdepääsu väikestele andmehulkadele suurtes andmekogumites, HDFS aga suure latentsusega toiminguid.
  • HBase toetab juhuslikku lugemist ja kirjutamist, samal ajal kui HDFS toetab WORM-i (kirjuta üks kord mitu või mitu korda).
  • HDFS-ile pääseb põhimõtteliselt või peamiselt juurde MapReduce'i töökohtade kaudu, samas kui HBase'ile pääseb juurde shellikäskude, Java API, REST, Avro või Thrift API kaudu.

HDFS salvestab suuri andmekogumeid hajutatud keskkonda ja võimendab nende andmete pakkide töötlemist. Nt see aitaks e-kaubanduse veebisaidil salvestada miljoneid klientide andmeid hajutatud keskkonda, mis kasvas pika aja jooksul (võib olla 4–5 aastat või rohkem). Seejärel kasutab see andmete pakkide töötlemist ja analüüsib klientide käitumist, mustrit, nõudeid. Siis saaks ettevõte teada, mis tüüpi toodet, milliste kuude jooksul klient ostab. See aitab säilitada arhiveeritud andmeid ja teostada nende kohal partii töötlemist.

Kui HBase salvestab andmeid veergudele orienteeritud viisil, kus iga veerg on koos salvestatud, muutub lugemine reaalajas töötlemise kiiremaks. Nt sarnases e-kaubanduse keskkonnas salvestab see miljoneid tooteandmeid. Nii et kui otsite toodet miljonite toodete hulgast, optimeerib see päringu- ja otsimisprotsessi, andes tulemuse kohe (või võite öelda reaalajas). Üksikasjalik HBase'i arhitektuuriline selgitus , Kajastan seda oma järgmises ajaveebis.

Kuna me teame, et HBase on jaotatud HDFS-i kaudu, annab mõlema kombinatsioon meile suurepärase võimaluse kasutada mõlema eeliseid kohandatud lahenduses, nagu näeme allpool toodud Facebooki messengeri juhtumiuuringus.

HBase'i õpetus: Facebook Messengeri juhtumianalüüs

Facebooki sõnumside platvorm kolis Apache Cassandralt HBase-le 2010. aasta novembris.

Facebook Messenger ühendab sõnumid, e-posti, vestluse ja SMS-id reaalajas vestluseks. Facebook üritas nende teenuste haldamiseks luua skaleeritavat ja tugevat infrastruktuuri.

Sel ajal käitus sõnumite infrastruktuur üle 350 miljoni kasutaja, saates kuus üle 15 miljardi inimeselt inimesele sõnumi. Vestlusteenus toetab üle 300 miljoni kasutaja, kes saadab kuus üle 120 miljardi sõnumi.

Kasutamise jälgimisel said nad teada, et ilmnes kaks üldist andmemustrit:

  • Lühike ajaandmete kogum, mis kipub olema kõikuv
  • Pidevalt kasvav andmekogum, millele pääseb juurde harva

Facebook soovis leida nende kahe kasutusmustri jaoks salvestuslahenduse ja nad hakkasid uurima, et leida olemasolevale Messages'i infrastruktuurile asendus.

Varem 2008. aastal kasutasid nad avatud lähtekoodiga andmebaasi, st Cassandrat, mis on lõpliku järjepidevusega võtmeväärtuste pood, mis oli juba tootmises ja teenindas postkasti otsingu liiklust. Nende meeskondadel olid suurepärased teadmised MySQL-i andmebaasi kasutamisest ja haldamisest, nii et kummagi tehnoloogia vahetamine oli neile tõsine probleem.

Nad veetsid paar nädalat erinevaid raamistikke, et hinnata MySQL, Apache Cassandra, Apache HBase ja muude süsteemide klastreid. Lõpuks valisid nad HBase'i.

Kuna MySQL ei suutnud suuri andmekogumeid tõhusalt käsitseda, kuna indeksid ja andmekogumid suurenesid, kannatas jõudlus. Nad leidsid, et Cassandra ei suuda oma uue Messages'i infrastruktuuri ühitamiseks keerulist mustrit käsitleda.

Peamised probleemid olid:

  • Suurte pidevalt kasvavate andmete kogum erinevatest Facebooki teenustest.
  • Nõuab andmebaasi, mis suudaks kasutada selle suurt töötlemist.
  • Miljonite taotluste esitamiseks on vaja suurt jõudlust.
  • Säilitamise ja jõudluse järjepidevuse säilitamine.

Joonis: Facebooki sõnumitooja väljakutsed

Kõigi nende probleemide jaoks pakkus Facebook välja lahenduse, st HBase. Facebook võttis oma erinevate funktsioonide tõttu HBase'i kasutusele Facebooki messengeri, vestluse, e-posti jms teenimiseks.

HBase on selle töökoormuse jaoks väga hea mastaapsuse ja jõudlusega, Cassandrast lihtsama järjepidevuse mudeliga. Kuigi nad leidsid, et HBase on nende nõuete, näiteks automaatse koormuse tasakaalustamine ja tõrkeotsing, pakkimistugi, mitu kildu serveri kohta jne, kõige sobivam.

HDFS, mis on HBase'i aluseks olev failisüsteem, pakkus neile ka mitmeid vajalikke funktsioone, nagu otsast lõpuni kontrollsummad, replikatsioon ja automaatne koormuse tasakaalustamine.

Joonis: HBase kui lahendus Facebook Messengerile

HBase'i kasutusele võtmisel keskendusid nad ka tulemuste tagastamisele HBase'ile endale ja hakkasid tegema tihedat koostööd Apache'i kogukonnaga.

Kuna sõnumid aktsepteerivad andmeid erinevatest allikatest, näiteks SMS-idest, vestlustest ja e-kirjadest, kirjutasid nad rakenduse serveri, mis haldab kõiki kasutaja sõnumi otsuseid. See on seotud paljude teiste teenustega. Manused on salvestatud Haystacki (mis töötab HBase'is). Samuti kirjutasid nad Apache ZooKeeperi peale kasutajate avastamise teenuse, mis räägib teiste infrastruktuuriteenustega sõbrasuhete, e-posti konto kinnitamise, kohaletoimetamise otsuste ja privaatsusotsuste kohta.

Facebooki meeskond veetis palju aega, kinnitades, et kõik need teenused on reaalajas sõnumside haldamiseks tugevad, usaldusväärsed ja hea jõudlusega.

brauseriülene testimine seleeni abil

Loodan, et see HBase'i õpetusblogi on informatiivne ja teile meeldis. Selles ajaveebis õppisite tundma HBase'i põhitõdesid ja selle funktsioone.Minu järgmises ajaveebis , Ma selgitan HBase'i arhitektuur ja HBase'i töö, mis muudab selle populaarseks kiireks ja juhuslikuks lugemiseks / kirjutamiseks.

Nüüd, kui olete HBase'i põhitõdedest aru saanud, vaadake järgmist Edureka, usaldusväärne veebiõppeettevõte, mille võrgustik hõlmab üle 250 000 rahuloleva õppija, levinud üle kogu maailma. Edureka Big Data Hadoopi sertifitseerimiskoolitus aitab õppijatel saada HDFS, lõnga, MapReduce, Pig, Hive, HBase, Oozie, Flume ja Sqoop ekspertideks, kasutades reaalajas kasutatavaid juhtumeid jaekaubanduse, sotsiaalmeedia, lennunduse, turismi ja rahanduse valdkonnas.

Kas teil on meile küsimus? Palun mainige seda kommentaaride jaotises ja võtame teiega ühendust.