HBase-opetusohjelma: HBase-esittely ja Facebook-tapaustutkimus



Tämä HBase-opetusblogi esittelee sinulle, mikä on HBase ja sen ominaisuudet. Se kattaa myös Facebook Messenger -tapaustutkimuksen HBasen hyötyjen ymmärtämiseksi.

Kuten mainitsimme blogi, HBase on olennainen osa Hadoop-ekosysteemiä. Joten nyt haluaisin viedä sinut läpi HBase-opetusohjelman, jossa esitän sinulle Apache HBasen, ja sitten käymme läpi Facebook Messenger -tutkimuksen. Aiomme käsitellä seuraavia aiheita tässä HBase-opetusblogissa:

Apache HBase -opetusohjelma: Historia

Aloitetaan HBasen historiasta ja tiedetään, kuinka HBase on kehittynyt ajan kuluessa.





HBasen historia - HBase-opetusohjelma - Edureka

erot html: n ja xml: n välillä
  • Apache HBase on mallinnettu Googlen BigTable-mallin mukaan, jota käytetään tietojen keräämiseen ja pyyntöjen tarjoamiseen erilaisille Google-palveluille, kuten Maps, Finance, Earth jne.
  • Apache HBase aloitti Powerset for Natural Language Search -yrityksen projektina, joka käsitteli massiivisia ja harvinaisia ​​tietojoukkoja.
  • Apache HBase julkaistiin ensimmäisen kerran helmikuussa 2007. Myöhemmin tammikuussa 2008 HBasesta tuli Apache Hadoopin aliprojekti.
  • Vuonna 2010 HBasesta tuli Apachen huipputason projekti.

HBase-opetusohjelma NoSQL-tietokannat | Edureka



Kun tiedät Apache HBasen historiasta, olisit utelias tietämään, mikä on Apache HBase? Siirrytään eteenpäin ja katsotaanpa.

Apache HBase -opetusohjelma: Johdanto HBaseen

HBase on avoimen lähdekoodin, moniulotteinen, hajautettu, skaalautuva ja a NoSQL-tietokanta kirjoitettu Java-kielellä. HBase toimii päälle HDFS (Hadoop Distributed File System) ja tarjoaa BigTable-tyyppisiä ominaisuuksia Hadoopille. Se on suunniteltu tarjoamaan vikasietoinen tapa tallentaa suuri joukko harvoja tietojoukkoja.

Koska HBase saavuttaa korkean suorituskyvyn ja matalan viiveen tarjoamalla nopeamman luku- / kirjoitusoikeuden valtaville tietojoukoille. Siksi HBase on valinta sovelluksille, jotka edellyttävät nopeaa ja satunnaista pääsyä suurelle määrälle dataa.



Se tarjoaa pakkauksen, muistin sisäiset operaatiot ja Bloom-suodattimet (tietorakenne, joka kertoo, onko arvossa joukko arvo vai ei) nopean ja satunnaisen luku- ja kirjoitusvaatimuksen täyttämiseksi.

Ymmärretään se esimerkin avulla: Suihkumoottori tuottaa erityyppisiä tietoja erilaisista antureista, kuten paineanturista, lämpötila-anturista, nopeusanturista jne., Mikä osoittaa moottorin kunnon. Tämä on erittäin hyödyllistä lennon ongelmien ja tilan ymmärtämiseksi. Moottorin jatkuvatoiminnot tuottavat 500 Gt tietoa lentoa kohden, ja päivässä on noin 300 tuhatta lentoa. Joten tällaiseen dataan lähes reaaliajassa sovellettua Engine Analyticsia voidaan käyttää ongelmien ennakoivaan diagnosointiin ja vähentämään suunnittelemattomia seisokkeja. Tämä edellyttää hajautettua ympäristöä, johon voidaan tallentaa suuri määrä tietoja nopea satunnainen lukee ja kirjoittaa reaaliaikaiseen käsittelyyn. Täällä HBase tulee pelastamaan. Puhun HBasen lukemisesta ja kirjoittamisesta yksityiskohtaisesti seuraavassa blogissani HBase-arkkitehtuuri .

Kuten tiedämme, HBase on NoSQL-tietokanta. Joten, ennen kuin ymmärrät enemmän HBasesta, anna ensin keskustella NoSQL-tietokannoista ja sen tyypeistä.

Apache HBase -opetusohjelma: NoSQL-tietokannat

NoSQL tarkoittaa Ei vain SQL . NoSQL-tietokannat on mallinnettu siten, että ne voivat edustaa muuta tietoa kuin taulukkomuotoja, unkile relaatiotietokantoja. Se käyttää erilaisia ​​muotoja edustamaan tietoja tietokannoissa, ja siten on olemassa erityyppisiä NoSQL-tietokantoja niiden esitysmuodon perusteella. Suurin osa NoSQL-tietokannoista hyödyntää saatavuutta ja nopeutta yhdenmukaisuuden suhteen. Siirrytään nyt eteenpäin ja ymmärretään erityyppiset NoSQL-tietokannat ja niiden esitysmuodot.

Key-Value-myymälät:

Se on skeematon tietokanta, joka sisältää avaimet ja arvot. Jokainen avain osoittaa arvoon, joka on tavujoukko, voi olla merkkijono, BLOB, XML jne. Lamborghini on avain ja voi osoittaa arvon Gallardo, Aventador, Murciélago, Reventón, Diablo, Huracán, Veneno, Centenario jne.

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

Käyttötapa

Avainarvon myymälät käsittelevät koon hyvin ja pystyvät käsittelemään vakaa luku- / kirjoitusoperaation virta pienellä viiveellä. Tämä tekee niistä täydellisetKäyttäjäasetukset ja profiilikaupat,Tuotesuositukset - viimeisimmät vähittäiskauppiassivustolla tarkastellut tuotteet tulevaisuuden asiakastuotesuosituksia vartenMainospalvelun asiakasostotottumukset johtavat räätälöityihin mainoksiin, kuponkeihin jne. Jokaiselle asiakkaalle reaaliajassa.

Asiakirjakohtainen :

Se seuraa samaa avainarvoparia, mutta se on osittain strukturoitu kuten XML, JSON, BSON. Näitä rakenteita pidetään asiakirjoina.

Asiakirjapohjaiset tietokannat: Apache CouchDB, Clusterpoint, Couchbase, DocumentDB, HyperDex, IBM Domino, MarkLogic, MongoDB, OrientDB, Qizx, RethinkDB.

Use-Case

Koska asiakirja tukee joustavaa kaavaa, nopea lukeminen ja kirjoitus ja osiointi tekevät siitä sopivan käyttäjätietokantojen luomiseen erilaisissa palveluissa, kuten twitterissä, verkkokaupan verkkosivustoissa jne.

Sarakekohtainen:

Tässä tietokannassa tiedot tallennetaan soluihin ryhmiteltyinä solujen sijaan riveihin. Sarakkeet on ryhmitelty loogisesti sarakeperheisiin, jotka voidaan luoda joko kaavan määrittelyn aikana tai ajon aikana.

Tämäntyyppiset tietokannat tallentavat kaikki saraketta vastaavat solut jatkuvaksi levymerkinnäksi, mikä tekee pääsystä ja hausta paljon nopeampaa.

Sarakepohjaiset tietokannat: HBase, Accumulo, Cassandra, Druid, Vertica.

Use-Case

Se tukee valtavaa tallennustilaa ja mahdollistaa nopeamman kirjoitusoikeuden siihen. Tämä tekee sarakekohtaisista tietokannoista sopivia asiakaskäyttäytymisen tallentamiseen verkkokaupan verkkosivustoille, rahoitusjärjestelmiin, kuten Google Finance, osakemarkkinoiden tiedot, Google maps jne.

Kaavio suuntautunut:

Se on täydellinen joustava graafinen esitys, jota käytetään toisin kuin SQL. Tämäntyyppiset tietokannat ratkaisevat helposti osoitteen skaalautuvuusongelmat, koska ne sisältävät reunoja ja solmua, joita voidaan laajentaa vaatimusten mukaisesti.

Kaaviopohjaiset tietokannat: AllegroGraph, ArangoDB, InfiniteGraph, Apache Giraph, MarkLogic, Neo4J, OrientDB, Virtuoso, Stardog.

Käyttötapa

Tätä käytetään periaatteessa petosten havaitsemiseen, reaaliaikaisiin suositusmoottoreihin (useimmissa tapauksissa sähköiseen kaupankäyntiin), perustietojen hallintaan (MDM), verkko- ja IT-operaatioihin, henkilöllisyyden ja pääsyn hallintaan (IAM) jne.

HBase ja Cassandra ovat kaksi tunnettua sarakekeskeistä tietokantaa. Joten, nyt puhumalla siitä korkeammalle tasolle, verrataan ja ymmärretään HBasen ja Cassandran arkkitehtoniset ja työskentelyerot.

HBase-opetusohjelma: HBase VS Cassandra

  • HBase perustuu BigTable-malliin (Google), kun taas Cassandra perustuu DynamoDB: hen (Amazon), jonka alun perin on kehittänyt Facebook.
  • HBase hyödyntää Hadoop-infrastruktuuria (HDFS, ZooKeeper), kun taas Cassandra kehittyi erikseen, mutta voit yhdistää Hadoopin ja Cassandran tarpeidesi mukaan.
  • HBasessa on useita komponentteja, jotka kommunikoivat yhdessä, kuten HBase HMaster, ZooKeeper, NameNode, Region Severs. Vaikka Cassandra on yksi solmutyyppi, jossa kaikki solmut ovat samat ja suorittaa kaikki toiminnot. Mikä tahansa solmu voi olla koordinaattori, joka poistaa yhden vikapisteen.
  • HBase on optimoitu lukemiseen ja tukee yksittäisiä kirjoituksia, mikä johtaa tiukkaan yhdenmukaisuuteen. HBase tukee Range-pohjaisia ​​tarkistuksia, mikä nopeuttaa skannausta. Cassandra tukee yhden rivin lukemia, mikä säilyttää lopullisen johdonmukaisuuden.
  • Cassandra ei tue aluepohjaisia ​​riviskannauksia, mikä hidastaa skannausprosessia verrattuna HBaseen.
  • HBase tukee tilattua osiointia, jossa Sarakeperheen rivit tallennetaan RowKey-järjestyksessä, kun taas Casandrassa tilattu osiointi on haaste. RowKey-osioinnin ansiosta skannausprosessi on nopeampi HBasessa kuin Cassandra.
  • HBase ei tue lukukuormituksen tasapainottamista, yksi aluepalvelin palvelee lukupyyntöä ja kopioita käytetään vain vikatilanteissa. Vaikka Cassandra tukee kuormituksen tasapainottamista ja voi lukea samat tiedot eri solmuista. Tämä voi vaarantaa johdonmukaisuuden.
  • CAP-lauseessa (johdonmukaisuus, saatavuus ja osiotoleranssi) HBase säilyttää johdonmukaisuuden ja käytettävyyden, kun taas Cassandra keskittyy käytettävyyteen ja osiotoleranssiin.


Otetaan nyt syväsukellus ja ymmärretään Apache HBasen ominaisuudet, mikä tekee siitä niin suositun.

Apache HBase -opetusohjelma: HBasen ominaisuudet

  • Atomic lukea ja kirjoittaa: Rivitasolla HBase tarjoaa atomien lukemisen ja kirjoittamisen. Se voidaan selittää, koska yhden luku- tai kirjoitusprosessin aikana kaikkia muita prosesseja estetään suorittamasta mitään luku- tai kirjoitusoperaatioita.
  • Johdonmukainen lukee ja kirjoittaa: HBase tarjoaa johdonmukaisia ​​luku- ja kirjoitusominaisuuksia yllä olevan ominaisuuden vuoksi.
  • Lineaarinen ja modulaarinen skaalautuvuus: Kun tietojoukot jaetaan HDFS: n yli, se on siten lineaarisesti skaalautuva eri solmuille sekä modulaarisesti skaalautuva, koska se on jaettu eri solmuille.
  • Automaattinen ja konfiguroitava pöytien sirpale: HBase-taulukot jaetaan klustereille ja nämä klusterit alueille. Nämä alueet ja klusterit jakautuvat ja jakautuvat uudelleen tietojen kasvaessa.
  • Helppokäyttöinen Java-sovellusliittymä asiakaskäyttöön: Se tarjoaa helppokäyttöisen Java-sovellusliittymän ohjelmalliseen käyttöön.
  • Säästöyhdyskäytävä ja REST-ful-verkkopalvelut: Se tukee myös Thrift- ja REST-sovellusliittymiä muille kuin Java-käyttöliittymille.
  • Estä välimuisti ja Bloom-suodattimet: HBase tukee Block Cache- ja Bloom-suodattimia suuren kyselyn optimointiin.
  • Automaattinen vikatuki: HBase ja HDFS tarjoavat WAL (Write Ahead Log) klustereiden yli, mikä tarjoaa automaattisen vikatuen.
  • Lajiteltu riviavaimet: Kun haku tehdään rivialueella, HBase tallentaa rivinäppäimet leksikografisessa järjestyksessä. Näitä lajiteltuja rivinäppäimiä ja aikaleimaa käyttämällä voimme rakentaa optimoidun pyynnön.

Nyt kun etenen tässä HBase-opetusohjelmassa, haluan kertoa sinulle, mitkä ovat käyttötapaukset ja skenaariot, joissa HBasea voidaan käyttää, ja sitten vertaan HDFS: ää ja HBasea.

Haluan kiinnittää huomionne tilanteisiin, joissa HBase sopii parhaiten.

HBase-opetusohjelma: Missä voimme käyttää HBasea?

  • Meidän on käytettävä HBasea, jos meillä on suuria tietojoukkoja (miljoonia tai miljardeja tai rivejä ja sarakkeita) ja tarvitsemme nopean, satunnaisen ja reaaliaikaisen, luku- ja kirjoitusoikeuden tietoihin.
  • Tietojoukot on jaettu eri klustereille, ja tietojen käsittelyyn tarvitaan korkea skaalautuvuus.
  • Tiedot kerätään erilaisista tietolähteistä ja ne ovat joko osittain strukturoituja tai jäsentämättömiä tai kaikkien yhdistelmiä. Se voidaan hoitaa helposti HBasen kanssa.
  • Haluat tallentaa sarakekohtaiset tiedot.
  • Sinulla on paljon versioita tietojoukoista ja sinun on tallennettava ne kaikki.

Ennen kuin siirryn Facebook Messenger -tapaukseen,haluan kertoa sinulle, mitkä ovat erot HBasen ja HDFS: n välillä.

HBase-opetusohjelma: HBase VS HDFS

HDFS on Java-pohjainen hajautettu tiedostojärjestelmä, jonka avulla voit tallentaa suuria tietoja useisiin solmuihin Hadoop-klusterissa. Joten HDFS on taustalla oleva tallennusjärjestelmä tietojen tallentamiseksi hajautettuun ympäristöön. HDFS on tiedostojärjestelmä, kun taas HBase on tietokanta (samanlainen kuin NTFS ja MySQL).

Koska sekä HDFS että HBase tallentavat kaikenlaista tietoa (ts. Strukturoitua, osittain jäsenneltyä ja strukturoimatonta) hajautettuun ympäristöön, voidaan tarkastella HDFS-tiedostojärjestelmän ja NoSQL-tietokannan HBase-eroja.

  • HBase tarjoaa pienen viiveen pienille tietomäärille suurissa tietojoukoissa, kun taas HDFS tarjoaa korkean viiveen operaatiot.
  • HBase tukee satunnaista lukemista ja kirjoittamista, kun taas HDFS tukee WORMia (kirjoita kerran luki useita tai useita kertoja).
  • HDFS: ään pääsee pääsääntöisesti tai ensisijaisesti MapReduce-töiden kautta, kun taas HBaseen päästään komentojen komentojen, Java API: n, REST: n, Avro tai Thrift API: n kautta.

HDFS tallentaa suuret tietojoukot hajautettuun ympäristöön ja hyödyntää kyseisten tietojen eräkäsittelyä. Esim. se auttaisi verkkokauppasivustoa tallentamaan miljoonia asiakkaan tietoja hajautettuun ympäristöön, joka kasvoi pitkällä aikavälillä (voi olla 4-5 vuotta tai enemmän). Sitten se hyödyntää eräkäsittelyä näiden tietojen yli ja analysoi asiakkaiden käyttäytymistä, mallia ja vaatimuksia. Sitten yritys voisi selvittää minkä tyyppisen tuotteen, asiakkaan osto mihin kuukausiin. Se auttaa tallentamaan arkistoituja tietoja ja suorittamaan sen yli eräkäsittelyn.

Vaikka HBase tallentaa tietoja sarakekohtaisesti, jolloin kukin sarake on tallennettu yhdessä siten, että lukeminen nopeutuu reaaliaikaisen prosessoinnin avulla. Esim. samankaltaisessa verkkokaupan ympäristössä se tallentaa miljoonia tuotetietoja. Joten jos etsit tuotetta miljoonien tuotteiden joukosta, se optimoi pyyntö- ja hakuprosessin tuottamalla tuloksen välittömästi (tai voit sanoa reaaliajassa). Yksityiskohtainen HBasen arkkitehtoninen selitys , Käsittelen seuraavassa blogissani.

Kuten tiedämme, HBase on jaettu HDFS: n yli, joten molempien yhdistelmä antaa meille loistavan mahdollisuuden käyttää molempien etuja räätälöityyn ratkaisuun, kuten näemme alla olevassa Facebook-messenger-tapaustutkimuksessa.

HBase-opetusohjelma: Facebook Messenger -tutkimus

Facebook Messaging Platform siirtyi Apache Cassandrasta HBaseen marraskuussa 2010.

Facebook Messenger yhdistää viestit, sähköpostin, chatin ja tekstiviestit reaaliaikaiseen keskusteluun. Facebook yritti rakentaa skaalautuvan ja vankan infrastruktuurin näiden palvelujen käsittelemiseksi.

Tuolloin viestiinfrastruktuuri käsitteli yli 350 miljoonaa käyttäjää, jotka lähettivät yli 15 miljardia henkilöiden välisiä viestejä kuukaudessa. Chat-palvelu tukee yli 300 miljoonaa käyttäjää, jotka lähettävät yli 120 miljardia viestiä kuukaudessa.

Seuraten käyttöä he huomasivat, että syntyi kaksi yleistä tietomallia:

miten tehdä jframe Java
  • Lyhyt joukko ajallisia tietoja, jotka ovat yleensä epävakaita
  • Yhä kasvava tietojoukko, johon pääsee harvoin

Facebook halusi löytää tallennusratkaisun näille kahdelle käyttötavalle ja he alkoivat tutkia korvaavan nykyisen Messages-infrastruktuurin löytämistä.

Aiemmin vuonna 2008 he käyttivät avoimen lähdekoodin tietokantaa, eli Cassandraa, joka on lopullisen johdonmukaisuuden avainarvosäilö, joka oli jo tuotannossa ja joka palveli liikennettä Saapuneet-hakuun. Heidän tiimeillä oli erinomaiset tiedot MySQL-tietokannan käytöstä ja hallinnasta, joten jommankumman tekniikan vaihtaminen oli heille vakava huolenaihe.

He viettivät muutaman viikon testaten erilaisia ​​kehyksiä arvioidakseen MySQL: n, Apache Cassandran, Apache HBasen ja muiden järjestelmien klustereita. He valitsivat lopulta HBasen.

Koska MySQL ei kyennyt käsittelemään suuria tietojoukkoja tehokkaasti, kun indeksit ja tietojoukot kasvoivat suuriksi, suorituskyky kärsi. He havaitsivat Cassandran olevan kykenemätön käsittelemään vaikeaa mallia sovittamaan uuden Messages-infrastruktuurinsa.

Suurimmat ongelmat olivat:

  • Suurten jatkuvasti kasvavien tietojen joukko eri Facebook-palveluista.
  • Vaatii tietokannan, joka voi hyödyntää sen korkeaa käsittelyä.
  • Suuri suorituskyky tarvitaan miljoonien pyyntöjen palvelemiseen.
  • Säilyttäminen säilytyksessä ja suorituskyvyssä.

Kuva: Facebook Messengerin kohtaamat haasteet

Kaikkiin näihin ongelmiin Facebook ehdotti ratkaisua eli HBase. Facebook hyväksyi HBasen Facebook Messengerin, chatin, sähköpostin jne. Palvelemiseen sen eri ominaisuuksien vuoksi.

HBasessa on erittäin hyvä skaalautuvuus ja suorituskyky tälle työmäärälle yksinkertaisemmalla konsistenssimallilla kuin Cassandra. Vaikka he pitivät HBasea sopivimpana vaatimustensa suhteen, kuten automaattinen kuormituksen tasaus ja vikasietoisuus, pakkaustuki, useita sirpaleita palvelinta kohti jne.

HDFS, joka on HBasen käyttämä tiedostojärjestelmä, tarjosi heille myös useita tarvittavia ominaisuuksia, kuten end-to-end-tarkistussummat, replikaation ja automaattisen kuormituksen uudelleen tasapainottamisen.

Kuva: HBase ratkaisuna Facebook Messengeriin

Kun he ottivat käyttöön HBasen, he keskittyivät myös tulosten palauttamiseen itse HBaseen ja aloittivat läheisen yhteistyön Apache-yhteisön kanssa.

Koska viestit hyväksyvät tietoja eri lähteistä, kuten tekstiviesteistä, chatista ja sähköposteista, he kirjoittivat sovelluspalvelimen käsittelemään kaiken käyttäjän viestin päätöksenteon. Se on yhteydessä moniin muihin palveluihin. Liitteet tallennetaan heinäsuovaan (joka toimii HBasella). He kirjoittivat myös Apache ZooKeeperin päälle käyttäjien löytämispalvelun, joka keskustelee muiden infrastruktuuripalvelujen kanssa ystäväsuhteista, sähköpostitilin vahvistamisesta, toimituspäätöksistä ja tietosuojapäätöksistä.

Facebook-tiimi käytti paljon aikaa vahvistaakseen, että jokainen näistä palveluista on vankkaa, luotettavaa ja tarjoaa hyvää suorituskykyä reaaliaikaisen viestijärjestelmän käsittelemiseksi.

Toivon, että tämä HBase-opetusblogi on informatiivinen ja pidit siitä. Tässä blogissa tutustut HBasen perusteisiin ja sen ominaisuuksiin.Seuraavassa blogissani , Selitän HBasen arkkitehtuuri ja HBasen toiminta, mikä tekee siitä suositun nopealle ja satunnaiselle lukemiselle / kirjoittamiselle.

Nyt kun olet ymmärtänyt HBasen perusteet, tutustu Edureka, luotettava verkko-oppimisyritys, jolla on yli 250 000 tyytyväisen oppijan verkosto, joka levisi ympäri maailmaa. Edureka Big Data Hadoop -sertifiointikoulutus auttaa oppijoita tulemaan HDFS-, Lanka-, MapReduce-, Pig-, Hive-, HBase-, Oozie-, Flume- ja Sqoop-asiantuntijoiksi käyttämällä reaaliaikaisia ​​käyttötapauksia vähittäiskaupan, sosiaalisen median, ilmailun, matkailun ja rahoituksen verkkotunnuksissa.

Onko sinulla kysymys meille? Mainitse se kommenttiosassa ja palaamme sinuun.