„HBase“ mokymo programa: „HBase“ įvadas ir „Facebook“ atvejų analizė

Šis „HBase“ mokymo tinklaraštis supažindina jus su „HBase“ ir jo funkcijomis. Tai taip pat apima „Facebook Messenger“ atvejų analizę, siekiant suprasti „HBase“ pranašumus.

Kaip minėjome mūsų tinklaraštyje, HBase yra esminė mūsų Hadoop ekosistemos dalis. Taigi dabar norėčiau jus apžiūrėti „HBase“ pamoką, kur supažindinsiu jus su „Apache HBase“, tada atliksime „Facebook Messenger“ atvejo tyrimą. Šiame HBase mokymo tinklaraštyje aptarsime šias temas:

Apache HBase mokymo programa: istorija

Pradėkime nuo HBase istorijos ir žinokime, kaip HBase vystėsi per tam tikrą laiką.



„HBase“ istorija - „HBase“ pamoka - „Edureka“

  • „Apache HBase“ yra sukurtas pagal „Google BigTable“, kuris naudojamas duomenims rinkti ir įvairioms „Google“ paslaugoms, tokioms kaip „Maps“, „Finance“, „Earth“ ir kt., Teikti.
  • „Apache HBase“ prasidėjo kaip natūralios kalbos paieškos bendrovės „Powerset“, kuri tvarkė didžiulius ir retus duomenų rinkinius, projektas.
  • „Apache HBase“ pirmą kartą buvo išleista 2007 m. Vasario mėn. Vėliau, 2008 m. Sausio mėn., „HBase“ tapo „Apache Hadoop“ antriniu projektu.
  • 2010 m. „HBase“ tapo aukščiausio lygio „Apache“ projektu.

„HBase“ mokymo programa „NoSQL“ duomenų bazės Edureka



Sužinoję apie „Apache HBase“ istoriją, norėtumėte sužinoti, kas yra „Apache HBase“? Pažvelkime toliau.

Apache HBase mokymo programa: HBase įvadas

„HBase“ yra atviras šaltinis, daugialypis, paskirstytas, keičiamo dydžio ir a „NoSQL“ duomenų bazė parašyta Java kalba. „HBase“ veikia virš HDFS („Hadoop Distributed File System“) ir suteikia „BigTable“ panašias galimybes „Hadoop“. Jis sukurtas taip, kad būtų užtikrintas atsparus triktims būdas saugoti didelius retų duomenų rinkinių rinkinius.

Nuo to laiko „HBase“ pasiekia didelį pralaidumą ir mažą vėlavimą teikdama greitesnę skaitymo / rašymo prieigą didžiuliuose duomenų rinkiniuose. Todėl „HBase“ yra pasirinkimas programoms, kurioms reikalinga greita ir atsitiktinė prieiga prie didelio duomenų kiekio.



Tai užtikrina suspaudimą, atminties operacijas ir „Bloom“ filtrus (duomenų struktūra, nurodanti, ar rinkinyje yra vertė, ar ne), kad būtų įvykdytas greito ir atsitiktinio skaitymo-rašymo reikalavimas.

Supraskime tai pavyzdžiu: Reaktyvinis variklis generuoja įvairių tipų duomenis iš skirtingų jutiklių, tokių kaip slėgio jutiklis, temperatūros jutiklis, greičio jutiklis ir kt., O tai rodo variklio būklę. Tai labai naudinga norint suprasti skrydžio problemas ir būseną. Nuolatinės variklio operacijos generuoja 500 GB duomenų apie skrydį ir maždaug 300 tūkst. Skrydžių per dieną. Taigi „Engine Analytics“, pritaikyta tokiems duomenims beveik realiu laiku, gali būti naudojama aktyviai diagnozuoti problemas ir sumažinti neplanuotą prastovą. Tam reikalinga paskirstyta aplinka, kurioje saugomas didelis duomenų kiekis greitai atsitiktinai skaito ir rašo realiuoju laiku apdoroti. Čia HBase ateina į pagalbą. Apie „HBase“ skaityti ir rašyti išsamiai kalbėsiu kitame savo tinklaraštyje „HBase“ architektūra .

Kaip žinome, „HBase“ yra „NoSQL“ duomenų bazė. Taigi, prieš pradėdami daugiau sužinoti apie „HBase“, pirmiausia aptarkite „NoSQL“ duomenų bazes ir jų tipus.

„Apache HBase“ mokymo programa: „NoSQL“ duomenų bazės

„NoSQL“ reiškia Ne tik SQL . „NoSQL“ duomenų bazės yra modeliuojamos taip, kad jose būtų pateikiami kiti duomenys, išskyrus lentelių formatus, nesąžiningos reliacinės duomenų bazės. Duomenims duomenų bazėse atspindėti naudojami skirtingi formatai, todėl yra įvairių tipų NoSQL duomenų bazių, atsižvelgiant į jų atstovavimo formatą. Dauguma NoSQL duomenų bazių naudoja prieinamumą ir greitį, palyginti su nuoseklumu. Dabar paženkime į priekį ir supraskime apie įvairius „NoSQL“ duomenų bazių tipus ir jų reprezentavimo formatus.

Pagrindinės vertės parduotuvės:

Tai be schemų duomenų bazė, kurioje yra raktai ir reikšmės. Kiekvienas raktas nurodo reikšmę, kuri yra baitų masyvas, gali būti eilutė, BLOB, XML ir kt., Pvz. „Lamborghini“ yra raktas ir gali nurodyti vertę Gallardo, Aventador, Murciélago, Reventón, Diablo, Huracán, Veneno, Centenario ir kt.

eilutės pastoviame telkinyje nebus dviejų to paties turinio eilutės objektų.

„Key-Value“ saugo duomenų bazes: „Aerospike“, „Couchbase“, „Dynamo“, „FairCom c-treeACE“, „FoundationDB“, „HyperDex“, „MemcacheDB“, „MUMPS“, „Oracle NoSQL“ duomenų bazes, „OrientDB“, „Redis“, „Riak“, „Berkeley DB“.

Naudojimo atvejis

Pagrindinės vertės saugyklos gerai tvarko dydį ir gerai apdoroja nuolatinį skaitymo / rašymo operacijų srautą su mažu vėlavimu. Dėl to jie puikiai tinkaVartotojo nuostatų ir profilių parduotuvės,Produktų rekomendacijos, naujausios prekės, peržiūrėtos mažmenininko svetainėje, siekiant paskatinti būsimų klientų produktų rekomendacijas,Skelbimų aptarnavimo klientų apsipirkimo įpročiai kiekvienam klientui realiuoju laiku sukuria pritaikytus skelbimus, kuponus ir pan.

Orientuotas į dokumentą :

Tai seka ta pačia pagrindinių verčių pora, tačiau ji yra pusiau struktūrizuota kaip XML, JSON, BSON. Šios struktūros laikomos dokumentais.

Dokumentais pagrįstos duomenų bazės: Apache CouchDB, Clusterpoint, Couchbase, DocumentDB, HyperDex, IBM Domino, MarkLogic, MongoDB, OrientDB, Qizx, RethinkDB.

Naudojimo atvejis

Kadangi dokumentas palaiko lanksčią schemą, greitai perskaitytas rašymas ir skaidymas leidžia kurti vartotojų duomenų bazes įvairiose tarnybose, tokiose kaip „Twitter“, elektroninės prekybos svetainės ir kt.

Skiltis orientuota:

Šioje duomenų bazėje duomenys saugomi langeliuose, sugrupuotuose stulpeliuose, o ne eilutėse. Stulpeliai logiškai sugrupuoti į stulpelių šeimas, kurias galima sukurti apibrėžiant schemą arba vykdymo metu.

Šio tipo duomenų bazėse visos stulpelį atitinkančios ląstelės saugomos kaip nuolatinis disko įrašas, todėl prieiga ir paieška yra daug greitesnė.

Stulpelinės duomenų bazės: HBase, Accumulo, Cassandra, Druid, Vertica.

Naudojimo atvejis

Jis palaiko didžiulę saugyklą ir suteikia galimybę greičiau skaityti ir skaityti. Dėl to į stulpelius orientuotos duomenų bazės yra tinkamos klientų elgsenai saugoti el. Prekybos svetainėje, finansinėse sistemose, tokiose kaip „Google Finance“ ir vertybinių popierių rinkos duomenys, „Google maps“ ir kt.

Orientuotas į grafiką:

Tai puikus lankstus grafinis atvaizdavimas, naudojamas kitaip nei SQL. Tokio tipo duomenų bazės lengvai išsprendžia adresų mastelio problemas, nes jose yra briaunų ir mazgų, kuriuos galima išplėsti pagal reikalavimus.

Grafiku pagrįstos duomenų bazės: AllegroGraph, ArangoDB, InfiniteGraph, Apache Giraph, MarkLogic, Neo4J, OrientDB, Virtuoso, Stardog.

Naudojimo atvejis

Tai iš esmės naudojama sukčiavimo aptikimui, realaus laiko rekomendacijų varikliams (daugeliu atvejų el. Prekybai), pagrindinių duomenų valdymui (MDM), tinklo ir IT operacijoms, tapatybės ir prieigos valdymui (IAM) ir kt.

„HBase“ ir „Cassandra“ yra dvi garsios stulpelių orientuotos duomenų bazės. Taigi, dabar kalbėdami apie tai aukštesniu lygiu, palyginkime ir supraskime architektūrinius ir darbinius HBase ir Cassandra skirtumus.

„HBase“ pamoka: „HBase VS Cassandra“

  • „HBase“ yra „BigTable“ („Google“) modelis, o „Cassandra“ - „DynamoDB“ („Amazon“), kurį iš pradžių sukūrė „Facebook“.
  • „HBase“ naudoja „Hadoop“ infrastruktūrą (HDFS, „ZooKeeper“), o „Cassandra“ vystėsi atskirai, tačiau galite derinti „Hadoop“ ir „Cassandra“ pagal savo poreikius.
  • „HBase“ turi keletą komponentų, kurie bendrauja, pvz., „HBase HMaster“, „ZooKeeper“, „NameNode“, „Region Severs“. „Cassandra“ yra vieno tipo mazgas, kuriame visi mazgai yra lygūs ir atlieka visas funkcijas. Bet kuris mazgas gali būti koordinatorius, kuris pašalina vieną gedimo tašką.
  • „HBase“ yra optimizuota skaitymui ir palaiko pavienius įrašus, o tai lemia griežtą nuoseklumą. „HBase“ palaiko nuskaitymą pagal diapazoną, todėl nuskaitymo procesas yra greitesnis. „Cassandra“ palaiko vienos eilutės nuskaitymus, kurie palaiko pastovų nuoseklumą.
  • „Cassandra“ nepalaiko diapazonų pagrįstų eilių nuskaitymų, o tai sulėtina skenavimo procesą, palyginti su „HBase“.
  • „HBase“ palaiko užsakytą skaidymą, kuriame stulpelių šeimos eilutės saugomos „RowKey“ tvarka, o „Casandra“ užsakytas skaidymas yra iššūkis. Dėl „RowKey“ skaidymo skenavimo procesas „HBase“ yra greitesnis, palyginti su „Cassandra“.
  • „HBase“ nepalaiko skaitymo apkrovos balansavimo, vienas regiono serveris aptarnauja skaitymo užklausą, o kopijos naudojamos tik sugedus. „Cassandra“ palaiko skaitymo apkrovos balansavimą ir gali skaityti tuos pačius duomenis iš įvairių mazgų. Tai gali pakenkti nuoseklumui.
  • Pagal BŽŪP (nuoseklumo, prieinamumo ir skaidymo tolerancijos) teoriją HBase palaiko nuoseklumą ir prieinamumą, o „Cassandra“ - prieinamumą ir pasiskirstymo toleranciją.


Dabar panardinkime giliai ir supraskime „Apache HBase“ ypatybes, dėl kurių jis yra toks populiarus.

Apache HBase pamoka: HBase ypatybės

  • Atominis skaitymas ir rašymas: Eilės lygiu HBase teikia atominį skaitymą ir rašymą. Tai galima paaiškinti tuo, kad vieno skaitymo ar rašymo proceso metu visiems kitiems procesams neleidžiama atlikti jokių skaitymo ar rašymo operacijų.
  • Nuoseklus skaitymas ir rašymas: „HBase“ teikia nuoseklų skaitymą ir rašymą dėl aukščiau nurodytos funkcijos.
  • Linijinis ir modulinis mastelis: Duomenų rinkiniai yra paskirstomi per HDFS, todėl jie yra tiesiškai keičiami įvairiuose mazguose, taip pat moduliškai keičiami, nes yra padalyti į įvairius mazgus.
  • Automatinis ir konfigūruojamas lentelių skaldymas: „HBase“ lentelės yra paskirstytos grupėms, o šios grupės - regionams. Šie regionai ir klasteriai dalijasi ir, augant duomenims, yra perskirstomi.
  • Lengva naudoti „Java“ API kliento prieigai: Tai suteikia lengvai naudojamą „Java“ API programinei prieigai.
  • Taupumo vartai ir „REST“ pilnos interneto paslaugos: Jis taip pat palaiko „Thrift“ ir „REST“ API ne „Java“ sąsajoms.
  • Blokuoti talpyklos ir žydėjimo filtrus: „HBase“ palaiko „Block Cache“ ir „Bloom“ filtrus, kad būtų galima optimizuoti didelės apimties užklausas.
  • Automatinis gedimo palaikymas: „HBase“ su HDFS teikia WAL (Write Ahead Log) visose grupėse, o tai teikia automatinį gedimų palaikymą.
  • Rūšiuoti eilių klavišai: Kadangi paieška atliekama eilių diapazone, „HBase“ raktuose raktus saugo leksikografine tvarka. Naudodami šias išrūšiuotas eilutes ir laiko žymą galime sukurti optimizuotą užklausą.

Dabar eidamas į priekį šioje „HBase“ mokymo programoje, leiskite man pasakyti, kokie yra naudojimo atvejai ir scenarijai, kuriuose galima naudoti „HBase“, tada palyginsiu HDFS ir „HBase“.

Norėčiau atkreipti jūsų dėmesį į scenarijus, kuriuose HBase geriausiai tinka.

„HBase“ mokymo programa: kur galime naudoti „HBase“?

  • Turėtume naudoti „HBase“ ten, kur turime didelius duomenų rinkinius (milijonus ar milijardus arba eilutes ir stulpelius), o mums reikalinga greita, atsitiktinė ir reali laiko, skaitymo ir rašymo prieiga prie duomenų.
  • Duomenų rinkiniai yra paskirstyti įvairioms grupėms, todėl mums reikia didelio mastelio, kad galėtume tvarkyti duomenis.
  • Duomenys renkami iš įvairių duomenų šaltinių ir tai yra pusiau struktūrizuoti arba nestruktūruoti duomenys, arba visų jų derinys. Su „HBase“ tai lengvai galima tvarkyti.
  • Norite saugoti stulpelių duomenis.
  • Turite daugybę duomenų rinkinių versijų ir turite jas visas išsaugoti.

Prieš pereidamas prie „Facebook Messenger“ atvejo analizės,leiskite man pasakyti, kokie yra HBase ir HDFS skirtumai.

„HBase“ mokymo programa: „HBase VS HDFS“

HDFS yra „Java“ pagrindu paskirstyta failų sistema, leidžianti kaupti didelius duomenis keliuose „Hadoop“ grupės mazguose. Taigi, HDFS yra pagrindinė duomenų saugojimo sistema paskirstytoje aplinkoje. HDFS yra failų sistema, o HBase yra duomenų bazė (panaši į NTFS ir MySQL).

Kadangi HDFS ir HBase saugo bet kokius duomenis (t. Y. Struktūrizuotus, pusiau struktūrizuotus ir nestruktūruotus) paskirstytoje aplinkoje, galima pažvelgti į skirtumus tarp HDFS failų sistemos ir HBase, NoSQL duomenų bazės.

  • „HBase“ suteikia nedidelės vėlavimo prieigą prie nedidelio duomenų kiekio dideliuose duomenų rinkiniuose, o HDFS - didelės vėlavimo operacijas.
  • „HBase“ palaiko atsitiktinį skaitymą ir rašymą, o HDFS palaiko WORM (Rašyti vieną kartą, kai skaitoma daug arba kelis kartus).
  • HDFS iš esmės arba pirmiausia pasiekiama per „MapReduce“ užduotis, o „HBase“ pasiekiama per „shell“ komandas, „Java API“, „REST“, „Avro“ arba „Thrift“ API.

HDFS saugo didelius duomenų rinkinius paskirstytoje aplinkoje ir skatina tų duomenų paketinį apdorojimą. Pvz. tai padėtų elektroninės prekybos svetainei saugoti milijonus klientų duomenų paskirstytoje aplinkoje, kuri išaugo ilgą laiką (gali būti 4–5 ir daugiau metų). Tada jis naudoja paketinį duomenų apdorojimą ir analizuoja klientų elgseną, modelį, reikalavimus. Tuomet įmonė galėtų sužinoti, kokio tipo produktas, kokiais mėnesiais pirko klientą. Tai padeda saugoti archyvuotus duomenis ir atlikti paketinį jų apdorojimą.

Nors „HBase“ saugo duomenis pagal stulpelius, kur kiekvienas stulpelis saugomas kartu, skaitymas tampa greitesnis, naudojant realaus laiko apdorojimą. Pvz. panašioje elektroninės prekybos aplinkoje jis saugo milijonus produktų duomenų. Taigi, jei ieškote produkto tarp milijonų produktų, jis optimizuoja užklausos ir paieškos procesą, rezultatą iš karto (arba galite pasakyti realiuoju laiku). Išsami HBase architektūrinis paaiškinimas , Aptarsiu savo kitame tinklaraštyje.

Kadangi žinome, kad „HBase“ yra platinama per HDFS, todėl abiejų derinys suteikia mums puikią galimybę panaudoti abiejų pranašumus pritaikytame sprendime, kaip matysime toliau pateiktame „Facebook Messenger“ atvejų tyrime.

„HBase“ pamoka: „Facebook Messenger“ atvejų analizė

„Facebook“ pranešimų platforma 2010 m. lapkričio mėn. iš „Apache Cassandra“ perėjo į „HBase“.

„Facebook Messenger“ sujungia pranešimus, el. Paštą, pokalbius ir SMS į pokalbį realiuoju laiku. „Facebook“ bandė sukurti keičiamą ir tvirtą infrastruktūrą, kad būtų galima tvarkyti šių paslaugų rinkinį.

Tuo metu pranešimų infrastruktūra sudarė daugiau nei 350 milijonų vartotojų, per mėnesį siunčiančių daugiau nei 15 milijardų pranešimų. Pokalbių paslauga palaiko daugiau nei 300 milijonų vartotojų, kurie per mėnesį siunčia daugiau nei 120 milijardų pranešimų.

Stebėdami naudojimą, jie sužinojo, kad atsirado du bendri duomenų modeliai:

maišos žemėlapio ir maišos lentelės skirtumas
  • Trumpas laiko duomenų rinkinys, kuris paprastai būna nepastovus
  • Vis didėjantis duomenų rinkinys, prie kurio retai galima prisijungti

„Facebook“ norėjo rasti šių dviejų naudojimo modelių saugojimo sprendimą ir jie pradėjo tyrinėti, ar rasti esamą „Messages“ infrastruktūrą.

Anksčiau 2008 m. Jie naudojo atvirojo kodo duomenų bazę, t. Y. „Cassandra“, kuri yra galimo nuoseklumo raktų vertės saugykla, kuri jau buvo gaminama, aptarnaujanti srautą „Inbox Search“. Jų komandos turėjo puikių žinių apie „MySQL“ duomenų bazės naudojimą ir valdymą, todėl vienos iš technologijų perjungimas jiems kėlė rimtą rūpestį.

Jie kelias savaites bandė skirtingas sistemas, kad įvertintų „MySQL“, „Apache Cassandra“, „Apache HBase“ ir kitų sistemų klasterius. Galiausiai jie pasirinko „HBase“.

Kadangi „MySQL“ nesugebėjo efektyviai tvarkyti didelių duomenų rinkinių, didėjant rodyklėms ir duomenų rinkiniams, tai nukentėjo. Jie nustatė, kad „Cassandra“ nesugeba susitvarkyti su sunkumais, kad galėtų suderinti savo naująją „Messages“ infrastruktūrą.

Pagrindinės problemos buvo:

  • Didelių nuolat augančių duomenų iš įvairių „Facebook“ paslaugų rinkinių saugojimas.
  • Reikalinga duomenų bazė, kuri gali panaudoti didelį duomenų apdorojimą.
  • Didelio našumo reikia norint patenkinti milijonus užklausų.
  • Išlaikyti nuoseklumą saugant ir našumą.

Paveikslėlis: „Facebook Messenger“ iššūkiai

Dėl visų šių problemų „Facebook“ pasiūlė sprendimą, t. Y. „HBase“. Dėl įvairių savo funkcijų „Facebook“ priėmė „HBase“, skirtą „Facebook Messenger“, pokalbių, el. Pašto ir kt.

„HBase“ pasižymi labai geru šio darbo krūvio masteliu ir našumu su paprastesnio nuoseklumo modeliu nei „Cassandra“. Nors jie nustatė, kad HBase yra tinkamiausia atsižvelgiant į jų reikalavimus, pvz., Automatinį apkrovos balansavimą ir perjungimą, suspaudimo palaikymą, kelis fragmentus kiekvienam serveriui ir kt.

HDFS, kuri yra pagrindinė „HBase“ naudojama failų sistema, taip pat suteikė jiems keletą reikalingų funkcijų, tokių kaip kontrolinės sumos nuo pabaigos iki pabaigos, replikacija ir automatinis apkrovos balansavimas.

Paveikslėlis: „HBase“ kaip „Facebook Messenger“ sprendimas

Priėmę „HBase“, jie taip pat sutelkė dėmesį į rezultatų grąžinimą pačiai „HBase“ ir pradėjo glaudų bendradarbiavimą su „Apache“ bendruomene.

Kadangi pranešimai priima duomenis iš įvairių šaltinių, tokių kaip SMS, pokalbiai ir el. Laiškai, jie parašė programų serverį, kuris tvarkys visus vartotojo pranešimų sprendimus. Jis sąveikauja su daugybe kitų paslaugų. Priedai saugomi „Haystack“ (kuris veikia „HBase“). Jie taip pat parašė vartotojo aptikimo paslaugą „Apache ZooKeeper“ viršuje, kur kalbama su kitomis infrastruktūros tarnybomis dėl santykių su draugais, el. Pašto paskyros patvirtinimo, pristatymo ir privatumo sprendimų.

„Facebook“ komanda praleido daug laiko, patvirtindama, kad kiekviena iš šių paslaugų yra patikima, patikima ir užtikrina gerą našumą, kad galėtų tvarkyti realaus laiko pranešimų sistemą.

Tikiuosi, kad šis „HBase“ mokymo tinklaraštis yra informatyvus ir jis jums patiko. Šiame tinklaraštyje susipažinote su „HBase“ pagrindais ir jo funkcijomis.Kitame mano tinklaraštyje , Aš paaiškinsiu HBase architektūra ir „HBase“ veikimas, todėl populiarus greitas ir atsitiktinis skaitymas / rašymas.

Dabar, kai supratote „HBase“ pagrindus, patikrinkite sukūrė „Edureka“ - patikima internetinė mokymosi įmonė, turinti daugiau nei 250 000 patenkintų besimokančiųjų tinklą. „Edureka Big Data Hadoop“ sertifikavimo mokymo kursai padeda besimokantiesiems tapti HDFS, verpalų, „MapReduce“, „Pig“, „Hive“, „HBase“, „Oozie“, „Flume“ ir „Sqoop“ ekspertais, naudojant realaus laiko naudojimo atvejus mažmeninės prekybos, socialinės žiniasklaidos, aviacijos, turizmo, finansų srityse.

Turite mums klausimą? Prašau paminėti tai komentarų skiltyje ir mes su jumis susisieksime.