HBase apmācība: HBase ievads un Facebook gadījumu izpēte



Šis HBase apmācības emuārs iepazīstina jūs ar to, kas ir HBase un tā funkcijas. Tas aptver arī Facebook Messenger gadījumu izpēti, lai izprastu HBase priekšrocības.

Kā mēs minējām mūsu emuārā HBase ir būtiska mūsu Hadoop ekosistēmas sastāvdaļa. Tāpēc tagad es gribētu jūs iepazīstināt ar HBase apmācību, kur es jūs iepazīstināšu ar Apache HBase, un pēc tam mēs veiksim Facebook Messenger gadījumu izpēti. Šajā HBase apmācības emuārā mēs apskatīsim šādas tēmas:

Apache HBase apmācība: vēsture

Sāksim ar HBase vēsturi un uzzināsim, kā HBase ir attīstījusies noteiktā laika periodā.





HBase vēsture - HBase apmācība - Edureka

  • Apache HBase ir veidots pēc Google BigTable, kas tiek izmantots, lai apkopotu datus un apkalpotu pieprasījumus dažādiem Google pakalpojumiem, piemēram, Maps, Finance, Earth utt.
  • Apache HBase sākās kā uzņēmuma Powerset for Natural Language Search projekts, kas apstrādāja masīvas un retas datu kopas.
  • Apache HBase pirmo reizi tika izlaists 2007. gada februārī. Vēlāk 2008. gada janvārī HBase kļuva par Apache Hadoop apakšprojektu.
  • 2010. gadā HBase kļuva par Apache augstākā līmeņa projektu.

HBase apmācība | NoSQL datu bāzes | Edureka



Pēc tam, kad esat uzzinājis par Apache HBase vēsturi, jūs vēlētos zināt, kas ir Apache HBase? Ļaujiet mums virzīties tālāk un apskatīt.

Apache HBase apmācība: Ievads HBase

HBase ir atvērts avots, daudzdimensionāls, izplatīts, mērogojams un a NoSQL datu bāze rakstīts Java valodā. HBase darbojas virsū HDFS (Hadoop Distributed File System) un Hadoop nodrošina tādas iespējas kā BigTable. Tas ir paredzēts, lai nodrošinātu kļūdu izturīgu veidu, kā uzglabāt lielu retu datu kopu kolekciju.

Tā kā HBase nodrošina augstu caurlaidspēju un zemu latentumu, nodrošinot ātrāku lasīšanas / rakstīšanas piekļuvi milzīgām datu kopām. Tāpēc HBase ir izvēle lietojumprogrammām, kurām nepieciešama ātra un nejauša piekļuve lielam datu apjomam.



Tas nodrošina saspiešanu, atmiņas darbības un Bloom filtrus (datu struktūra, kas norāda, vai vērtība ir vai nav komplektā), lai izpildītu ātras un nejaušas lasīšanas un rakstīšanas prasību.

Sapratīsim to, izmantojot piemēru: Reaktīvais dzinējs ģenerē dažāda veida datus no dažādiem sensoriem, piemēram, spiediena sensora, temperatūras sensora, ātruma sensora utt., Kas norāda motora veselību. Tas ir ļoti noderīgi, lai izprastu lidojuma problēmas un statusu. Nepārtraukta dzinēja darbība ģenerē 500 GB datus par lidojumu, un dienā ir aptuveni 300 tūkstoši lidojumu. Tātad Engine Analytics, kas šādiem datiem tiek izmantota gandrīz reālā laikā, var izmantot, lai proaktīvi diagnosticētu problēmas un samazinātu neplānotu dīkstāvi. Tam nepieciešama izplatīta vide, kurā glabāt lielu datu apjomu ātri izlases veidā izlasa un raksta reāllaika apstrādei. Šeit HBase nāk glābšanai. Es detalizēti runāšu par HBase lasīšanu un rakstīšanu savā nākamajā emuārā vietnē HBase arhitektūra .

Kā mēs zinām, HBase ir NoSQL datu bāze. Tātad, pirms uzzināt vairāk par HBase, vispirms apspriediet par NoSQL datu bāzēm un to veidiem.

Apache HBase apmācība: NoSQL datu bāzes

NoSQL nozīmē Ne tikai SQL . NoSQL datu bāzes ir modelētas tā, ka tās var attēlot datus, kas nav tabulas formāti, unkile relāciju datu bāzes. Tas izmanto dažādus formātus, lai attēlotu datus datu bāzēs, un tāpēc ir dažādi NoSQL datu bāzu veidi, pamatojoties uz to attēlojuma formātu. Lielākā daļa NoSQL datu bāzu nodrošina pieejamību un ātrumu salīdzinājumā ar konsekvenci. Tagad ļaujiet mums virzīties uz priekšu un saprast, kādi ir dažādi NoSQL datu bāzu veidi un to attēlojuma formāti.

Key-Value veikali:

Tā ir bez shēmas datubāze, kas satur atslēgas un vērtības. Katrs taustiņš norāda uz vērtību, kas ir baitu masīvs, var būt virkne, BLOB, XML utt. Lamborghini ir atslēga, un tā var norādīt uz vērtību Gallardo, Aventador, Murciélago, Reventón, Diablo, Huracán, Veneno, Centenario utt.

Key-Value veikali datu bāzes: Aerospike, Couchbase, Dynamo, FairCom c-treeACE, FoundationDB, HyperDex, MemcacheDB, MUMPS, Oracle NoSQL Database, OrientDB, Redis, Riak, Berkeley DB.

Izmantot gadījumu

Atslēgu vērtību krātuves labi izturas pret izmēru un labi spēj apstrādāt pastāvīgu lasīšanas / rakstīšanas darbību plūsmu ar zemu latentumu. Tas padara tos ideāli piemērotusLietotāju izvēles un profila veikali,Produktu ieteikumu jaunākās preces, kas apskatītas mazumtirgotāja vietnē, lai sniegtu ieteikumus par turpmākajiem klientu produktiem,Reklāmu apkalpošanas klientu iepirkšanās paradumu rezultātā katram klientam reāllaikā tiek pielāgotas reklāmas, kuponi utt.

Orientēts uz dokumentu :

Tas seko tam pašam atslēgas vērtību pārim, taču tas ir daļēji strukturēts kā XML, JSON, BSON. Šīs struktūras tiek uzskatītas par dokumentiem.

Uz dokumentu balstītas datu bāzes: Apache CouchDB, Clusterpoint, Couchbase, DocumentDB, HyperDex, IBM Domino, MarkLogic, MongoDB, OrientDB, Qizx, RethinkDB.

Izmantot gadījumu

Tā kā dokuments atbalsta elastīgu shēmu, ātri lasāma rakstīšana un sadalīšana padara to piemērotu lietotāju datu bāzu izveidei dažādos pakalpojumos, piemēram, twitter, e-komercijas vietnēs utt.

Orientēta uz kolonnu:

Šajā datu bāzē dati tiek glabāti šūnās, kas sagrupētas kolonnās, nevis rindās. Kolonnas ir loģiski grupētas kolonnu grupās, kuras var izveidot shēmas definēšanas laikā vai izpildlaika laikā.

iegūt masīva garumu javascript

Šāda veida datubāzes glabā visu šūnu, kas atbilst kolonnai, kā nepārtrauktu ierakstu diskā, tādējādi padarot piekļuvi un meklēšanu daudz ātrāku.

Kolonnu bāzes datu bāzes: HBase, Accumulo, Cassandra, Druid, Vertica.

Izmantot gadījumu

Tas atbalsta milzīgo krātuvi un ļauj tai ātrāk piekļūt lasīšanas un rakstīšanas piekļuvei. Tas padara kolonnu orientētas datubāzes piemērotas klientu uzvedības glabāšanai e-komercijas vietnē, finanšu sistēmās, piemēram, Google finansēs un akciju tirgus, Google Maps uc

Orientēts uz diagrammu:

Tas ir ideāls elastīgs grafiskais attēlojums, kas tiek izmantots atšķirībā no SQL. Šāda veida datubāzes viegli atrisina adreses mērogojamības problēmas, jo tās satur malas un mezglus, kurus var paplašināt atbilstoši prasībām.

Uz grafiku balstītas datu bāzes: AllegroGraph, ArangoDB, InfiniteGraph, Apache Giraph, MarkLogic, Neo4J, OrientDB, Virtuoso, Stardog.

Izmantot gadījumu

To pamatā izmanto krāpšanas noteikšanā, reāllaika ieteikumu dzinējos (vairumā gadījumu e-komercijā), galveno datu pārvaldībā (MDM), tīkla un IT operācijās, identitātes un piekļuves pārvaldībā (IAM) utt.

HBase un Cassandra ir divas slavenās kolonnu orientētās datu bāzes. Tātad, tagad runājot par to augstākā līmenī, ļaujiet mums salīdzināt un saprast arhitektūras un darba atšķirības starp HBase un Cassandra.

HBase apmācība: HBase VS Cassandra

  • HBase ir veidots pēc BigTable (Google) modeļa, savukārt Cassandra pamatā ir DynamoDB (Amazon), kuru sākotnēji izstrādāja Facebook.
  • HBase izmanto Hadoop infrastruktūru (HDFS, ZooKeeper), kamēr Cassandra attīstījās atsevišķi, taču jūs varat kombinēt Hadoop un Cassandra atbilstoši savām vajadzībām.
  • HBase ir vairāki komponenti, kas sazinās kopā, piemēram, HBase HMaster, ZooKeeper, NameNode, Region Severs. Kamēr Kasandra ir viena veida mezgls, kurā visi mezgli ir vienādi un veic visas funkcijas. Jebkurš mezgls var būt koordinators, kas noņem vienu kļūmes punktu.
  • HBase ir optimizēta lasīšanai un atbalsta atsevišķus ierakstus, kas nodrošina stingru konsekvenci. HBase atbalsta skenēšanu uz diapazona bāzes, kas padara skenēšanas procesu ātrāku. Kasandra atbalsta vienas rindas lasījumus, kas saglabā konsekvenci.
  • Kasandra neatbalsta virknes skenēšanu pēc diapazona, kas palēnina skenēšanas procesu, salīdzinot ar HBase.
  • HBase atbalsta pasūtīto sadalīšanu, kurā kolonnu saimes rindas tiek glabātas RowKey secībā, savukārt Kasandrā pasūtītais sadalījums ir izaicinājums. Sakarā ar RowKey sadalīšanu skenēšanas process HBase ir ātrāks, salīdzinot ar Kasandru.
  • HBase neatbalsta lasīšanas slodzes līdzsvarošanu, viens reģiona serveris apkalpo lasīšanas pieprasījumu, un kopijas tiek izmantotas tikai neveiksmes gadījumā. Kamēr Kasandra atbalsta nolasīšanas slodzes līdzsvarošanu un var nolasīt tos pašus datus no dažādiem mezgliem. Tas var apdraudēt konsekvenci.
  • CAP (konsekvence, pieejamība un nodalījums - tolerance) teorēma HBase saglabā konsekvenci un pieejamību, savukārt Cassandra koncentrējas uz pieejamību un nodalījuma toleranci.


Tagad veicam dziļu niršanu un saprotam Apache HBase funkcijas, kas padara to tik populāru.

Apache HBase apmācība: HBase iezīmes

  • Atomu lasīšana un rakstīšana: Rindu līmenī HBase nodrošina atomu lasīšanu un rakstīšanu. To var izskaidrot, jo viena lasīšanas vai rakstīšanas procesa laikā visiem pārējiem procesiem tiek liegta neviena lasīšanas vai rakstīšanas darbība.
  • Konsekventi lasa un raksta: HBase nodrošina konsekventu lasīšanu un rakstīšanu iepriekš minētās funkcijas dēļ.
  • Lineārā un modulārā mērogojamība: Tā kā datu kopas tiek sadalītas pa HDFS, tas ir lineāri mērogojams dažādos mezglos, kā arī modulāri mērogojams, jo ir sadalīts pa dažādiem mezgliem.
  • Automātiska un konfigurējama tabulu šķelšana: HBase tabulas tiek sadalītas pa kopām, un šīs kopas ir sadalītas pa reģioniem. Šie reģioni un kopas sadalās, un, pieaugot datiem, tie tiek pārdalīti.
  • Viegli lietojama Java API klienta piekļuvei: Tas nodrošina viegli lietojamu Java API programmatiskai piekļuvei.
  • Taupības vārteja un REST pilni tīmekļa pakalpojumi: Tas atbalsta arī Thrift un REST API priekšnosacījumiem, kas nav Java.
  • Bloķēt kešatmiņu un ziedēšanas filtrus: HBase atbalsta bloķēšanas kešatmiņu un ziedēšanas filtrus liela apjoma vaicājumu optimizēšanai.
  • Automātisks atteices atbalsts: HBase ar HDFS nodrošina kopu WAL (Write Ahead Log), kas nodrošina automātisku kļūmju atbalstu.
  • Kārtoti rindu taustiņi: Tā kā meklēšana tiek veikta rindu diapazonā, HBase rindu atslēgas glabā leksikogrāfiskā secībā. Izmantojot šos sakārtotos rindu taustiņus un laika zīmogu, mēs varam izveidot optimizētu pieprasījumu.

Tagad virzoties uz priekšu šajā HBase apmācībā, ļaujiet man pastāstīt, kādi ir lietošanas gadījumi un scenāriji, kuros var izmantot HBase, un pēc tam es salīdzināšu HDFS un HBase.

Es vēlos pievērst jūsu uzmanību scenārijiem, kuros HBase ir vislabāk piemērota.

HBase apmācība: kur mēs varam izmantot HBase?

  • Mums jāizmanto HBase, ja mums ir lielas datu kopas (miljoni vai miljardi vai rindas un kolonnas), un mums ir nepieciešama ātra, nejauša un reāla laika, lasīšanas un rakstīšanas piekļuve datiem.
  • Datu kopas ir sadalītas pa dažādām kopām, un mums ir nepieciešama augsta mērogojamība, lai apstrādātu datus.
  • Dati tiek apkopoti no dažādiem datu avotiem, un tie ir vai nu daļēji strukturēti, vai nestrukturēti dati, vai arī visu to kombinācija. To varēja viegli apstrādāt ar HBase.
  • Jūs vēlaties saglabāt uz kolonnām orientētus datus.
  • Jums ir daudz datu kopu versiju, un jums tās visas ir jāsaglabā.

Pirms pārietu uz Facebook Messenger gadījumu izpēti,ļaujiet man pastāstīt, kādas ir atšķirības starp HBase un HDFS.

HBase apmācība: HBase VS HDFS

HDFS ir Java balstīta izplatīta failu sistēma, kas ļauj jums saglabāt lielus datus vairākos mezglos Hadoop klasterī. Tātad, HDFS ir pamatā esoša datu glabāšanas sistēma datu glabāšanai izplatītajā vidē. HDFS ir failu sistēma, turpretī HBase ir datu bāze (līdzīga kā NTFS un MySQL).

Tā kā gan HDFS, gan HBase uzglabā jebkāda veida datus (t.i., strukturētus, daļēji strukturētus un nestrukturētus) izplatītā vidē, ļauj aplūkot atšķirības starp HDFS failu sistēmu un HBase, NoSQL datu bāzi.

  • HBase nodrošina zemas aiztures piekļuvi nelielam datu apjomam lielās datu kopās, savukārt HDFS nodrošina augstas aizkaves operācijas.
  • HBase atbalsta izlases veida lasīšanu un rakstīšanu, bet HDFS atbalsta WORM (Rakstīt vienreiz lasīt daudz vai vairākas reizes).
  • HDFS pamatā vai galvenokārt piekļūst, izmantojot MapReduce darbus, savukārt HBase piekļūst, izmantojot čaulas komandas, Java API, REST, Avro vai Thrift API.

HDFS uzglabā lielas datu kopas izplatītā vidē un izmanto šo datu sērijveida apstrādi. Piem., tas palīdzētu e-komercijas vietnei uzglabāt miljoniem klientu datu izplatītā vidē, kas pieauga ilgākā laika posmā (tas varētu būt 4-5 gadi vai vairāk). Tad tas izmanto pakešu apstrādi pār šiem datiem un analizē klientu uzvedību, modeli, prasības. Tad uzņēmums varēja uzzināt, kāda veida produkts, kura mēneša laikā pircējs ir pircējs. Tas palīdz uzglabāt arhivētos datus un veikt pakešu apstrādi.

Kamēr HBase datus glabā uz kolonnām orientētā veidā, kur katra kolonna tiek glabāta kopā tā, ka lasīšana kļūst ātrāka, izmantojot reāllaika apstrādi. Piem., līdzīgā e-komercijas vidē tas glabā miljoniem produktu datu. Tātad, ja meklējat produktu starp miljoniem produktu, tas optimizē pieprasījumu un meklēšanas procesu, nekavējoties (vai arī varat pateikt reāllaikā) rezultātu. Detalizēti HBase arhitektūras skaidrojums , Es apskatīšu savā nākamajā emuārā.

Tā kā mēs zinām, ka HBase tiek izplatīta HDFS, tāpēc abu kombinācija dod mums lielisku iespēju izmantot abu priekšrocības pielāgotā risinājumā, kā mēs to redzēsim zemāk esošajā Facebook Messenger gadījumu izpētē.

HBase apmācība: Facebook Messenger gadījumu izpēte

Facebook ziņojumapmaiņas platforma 2010. gada novembrī no Apache Cassandra pārgāja uz HBase.

Facebook Messenger reāllaika sarunā apvieno ziņojumus, e-pastu, tērzēšanu un īsziņas. Facebook mēģināja izveidot mērogojamu un stabilu infrastruktūru, lai apstrādātu šo pakalpojumu kopumu.

Tajā laikā ziņojumu infrastruktūra apstrādāja vairāk nekā 350 miljonus lietotāju, kuri mēnesī sūtīja vairāk nekā 15 miljardus cilvēku savstarpēju ziņojumu. Tērzēšanas pakalpojums atbalsta vairāk nekā 300 miljonus lietotāju, kuri mēnesī sūta vairāk nekā 120 miljardus ziņojumu.

Uzraugot lietošanu, viņi uzzināja, ka parādījās divi vispārīgi datu modeļi:

  • Īss laika datu kopums, kas mēdz būt nepastāvīgs
  • Pastāvīgi augošs datu kopums, kuram reti piekļūst

Facebook vēlējās atrast krātuves risinājumu šiem diviem lietošanas veidiem, un viņi sāka veikt izmeklēšanu, lai atrastu aizstājēju esošajai Messages infrastruktūrai.

Agrāk 2008. gadā viņi izmantoja atvērtā pirmkoda datu bāzi, t.i., Cassandra, kas ir konsekvences atslēgu vērtību veikals, kas jau tika ražots, apkalpojot trafiku iesūtnes meklēšanai. Viņu komandām bija lieliskas zināšanas par MySQL datu bāzes izmantošanu un pārvaldību, tāpēc jebkuras no tehnoloģijām pārslēgšana viņiem sagādāja nopietnas bažas.

Viņi dažas nedēļas pavadīja dažādu sistēmu pārbaudē, lai novērtētu MySQL, Apache Cassandra, Apache HBase un citu sistēmu kopas. Viņi galu galā izvēlējās HBase.

Tā kā MySQL neizdevās efektīvi rīkoties ar lielajām datu kopām, jo ​​indeksi un datu kopas pieauga, veiktspēja cieta. Viņi atklāja, ka Kasandra nespēj tikt galā ar sarežģītu modeli, lai saskaņotu savu jauno Messages infrastruktūru.

Galvenās problēmas bija:

  • Lielu nepārtraukti pieaugošu datu kopu uzglabāšana no dažādiem Facebook pakalpojumiem.
  • Nepieciešama datu bāze, kas var piesaistīt lielu tās apstrādi.
  • Augsta veiktspēja nepieciešama miljoniem pieprasījumu apkalpošanai.
  • Uzturēšanas un veiktspējas konsekvences saglabāšana.

Attēls: Facebook Messenger izaicinājumi

Visām šīm problēmām Facebook nāca klajā ar risinājumu, t.i., HBase. Facebook dažādu funkciju dēļ pieņēma HBase pakalpojuma Facebook Messenger, tērzēšanas, e-pasta utt. Apkalpošanai.

HBase nodrošina ļoti labu mērogojamību un veiktspēju šai slodzei ar vienkāršāku konsistences modeli nekā Kasandra. Lai gan viņi uzskatīja, ka HBase ir vispiemērotākā to prasību ziņā, piemēram, automātiska slodzes līdzsvarošana un atteice, saspiešanas atbalsts, vairākas lauskas katram serverim utt.

HDFS, kas ir pamata faila sistēma, kuru izmanto HBase, nodrošināja arī vairākas nepieciešamās funkcijas, piemēram, gala līdz galam pārbaudes summas, replikāciju un automātisku slodzes līdzsvarošanu.

Attēls: HBase kā risinājums Facebook Messenger

Pieņemot HBase, viņi arī koncentrējās uz rezultātu nodošanu atpakaļ pašai HBase un sāka cieši sadarboties ar Apache kopienu.

Tā kā ziņojumi pieņem datus no dažādiem avotiem, piemēram, īsziņām, tērzēšanas sarunām un e-pastiem, viņi uzrakstīja lietojumprogrammu serveri, lai veiktu visu lēmumu pieņemšanu par lietotāja ziņojumu. Tas mijiedarbojas ar lielu skaitu citu pakalpojumu. Pielikumi tiek glabāti siena kaudzē (kas darbojas HBase). Viņi arī uzrakstīja lietotāju atklāšanas pakalpojumu virs Apache ZooKeeper, kas runā ar citiem infrastruktūras pakalpojumiem, lai iegūtu attiecības ar draugiem, e-pasta konta pārbaudi, piegādes lēmumus un lēmumus par privātumu.

Facebook komanda pavadīja daudz laika, apstiprinot, ka katrs no šiem pakalpojumiem ir izturīgs, uzticams un nodrošina labu sniegumu, lai apstrādātu reāllaika ziņojumapmaiņas sistēmu.

Es ceru, ka šis HBase apmācības emuārs ir informatīvs, un jums tas patika. Šajā emuārā jūs uzzinājāt HBase pamatus un tā iespējas.Manā nākamajā blogā , Es paskaidrošu HBase arhitektūra un HBase darbība, kas padara to populāru ātrai un nejaušai lasīšanai / rakstīšanai.

Tagad, kad esat sapratis HBase pamatus, pārbaudiet Autors: Edureka, uzticams tiešsaistes mācību uzņēmums ar vairāk nekā 250 000 apmierinātu izglītojamo tīklu visā pasaulē. Edureka Big Data Hadoop sertifikācijas apmācības kurss palīdz izglītojamajiem kļūt par HDFS, dzijas, MapReduce, Pig, Hive, HBase, Oozie, Flume un Sqoop ekspertiem, izmantojot reāllaika lietošanas gadījumus mazumtirdzniecības, sociālo mediju, aviācijas, tūrisma, finanšu jomā.

Vai mums ir jautājums? Lūdzu, pieminējiet to komentāru sadaļā, un mēs ar jums sazināsimies.