Vodič za HBase: Uvod o HBase i Facebook studija slučaja



Ovaj HBase tutorial blog upoznaje vas s HBase-om i njezinim značajkama. Također obuhvaća studiju slučaja Facebook Messenger kako bi se razumjele prednosti HBase-a.

Kao što smo spomenuli u našem blog, HBase je važan dio našeg Hadoop ekosustava. Dakle, sada bih vas želio provesti kroz HBase tutorial, gdje ću vam predstaviti Apache HBase, a zatim ćemo proći kroz studiju slučaja Facebook Messenger. Obratit ćemo sljedeće teme na ovom blogu tutorijala HBase:

Vodič za Apache HBase: Povijest

Krenimo od povijesti HBase i znajmo kako se HBase razvijao tijekom određenog vremenskog razdoblja.





Povijest HBase - Vodič za HBase - Edureka

  • Apache HBase oblikovan je prema Googleovom BigTableu, koji se koristi za prikupljanje podataka i posluživanje zahtjeva za razne Googleove usluge kao što su Maps, Finance, Earth itd.
  • Apache HBase započeo je kao projekt tvrtke Powerset za pretraživanje prirodnih jezika koja se bavila masivnim i rijetkim skupovima podataka.
  • Apache HBase prvi je put objavljen u veljači 2007. Kasnije u siječnju 2008. HBase je postao podprojekt Apache Hadoop-a.
  • 2010. HBase je postao Apacheov projekt najviše razine.

Vodič za HBase | NoSQL baze podataka | Edureka



Nakon što saznate više o povijesti Apache HBase, bilo bi vas znatiželjno znati što je Apache HBase? Krenimo dalje i pogledajte.

Vodič za Apache HBase: Uvod u HBase

HBase je otvoreni izvor, višedimenzionalni, distribuirani, skalabilni i NoSQL baza podataka napisan na Javi. HBase radi na vrhu HDFS (Hadoop Distributed File System) i pruža mogućnosti poput BigTablea Hadoopu. Dizajniran je kako bi pružio otporan način čuvanja velike kolekcije rijetkih skupova podataka.

Budući da HBase postiže veliku propusnost i malu latenciju pružajući brži pristup za čitanje / pisanje na ogromnim skupovima podataka. Stoga je HBase izbor za programe koji zahtijevaju brzi i nasumični pristup velikoj količini podataka.



što je sučelje markera u javi

Pruža kompresiju, operacije u memoriji i Bloom filtre (struktura podataka koja govori da li je vrijednost prisutna u skupu ili ne) kako bi se ispunili zahtjevi za brzim i nasumičnim čitanjem-upisivanjem.

Razumijemo to na primjeru: Mlazni motor generira različite vrste podataka iz različitih senzora poput osjetnika tlaka, temperaturnog senzora, osjetnika brzine itd., Što ukazuje na zdravstveno stanje motora. Ovo je vrlo korisno za razumijevanje problema i statusa leta. Kontinuirani rad motora generira 500 GB podataka po letu, a dnevno ima otprilike 300 tisuća letova. Dakle, Engine Analytics primijenjen na takve podatke u gotovo stvarnom vremenu može se koristiti za proaktivno dijagnosticiranje problema i smanjenje neplaniranog zastoja. To zahtijeva distribuirano okruženje za pohranu velike količine podataka brzo slučajno čitanje i pisanje za obradu u stvarnom vremenu. Evo, HBase dolazi po spas. O HBase Read and Write detaljno ću govoriti u svom sljedećem blogu na Arhitektura HBase .

Kao što znamo, HBase je NoSQL baza podataka. Dakle, prije nego što razumijemo više o HBaseu, dopustimo prvo razgovarati o NoSQL bazama podataka i njihovim vrstama.

Vodič za Apache HBase: NoSQL baze podataka

NoSQL znači Ne samo SQL . NoSQL baze podataka modelirane su na način da mogu predstavljati podatke koji nisu tablični formati, unkile relacijske baze podataka. Koristi različite formate za predstavljanje podataka u bazama podataka, pa prema tome postoje različite vrste NoSQL baza podataka na temelju njihovog formata predstavljanja. Većina NoSQL baza podataka koristi dostupnost i brzinu u odnosu na dosljednost. Krenimo sada i razumijejmo različite vrste NoSQL baza podataka i njihove formate predstavljanja.

Trgovine Key-Value:

To je baza podataka bez sheme koja sadrži ključeve i vrijednosti. Svaki ključ, usmjeren na vrijednost koja je niz bajtova, može biti niz, BLOB, XML itd., Na pr. Lamborghini je ključ i može ukazati na vrijednost Gallardo, Aventador, Murciélago, Reventón, Diablo, Huracán, Veneno, Centenario itd.

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

Slučaj upotrebe

Pohrane ključeva i vrijednosti dobro se nose s veličinom i dobre su u obradi stalnog toka operacija čitanja / pisanja s malom kašnjenjem. To ih čini savršenima zaKorisničke postavke i pohrane profila,Preporuke proizvoda najnovije stavke pregledane na web mjestu prodavača za usmjeravanje budućih preporuka proizvoda kupaca,Kupovne navike servisiranja oglasa rezultiraju prilagođenim oglasima, kuponima itd. Za svakog kupca u stvarnom vremenu.

Orijentirano na dokument :

Slijedi isti par vrijednosti ključ, ali je polustrukturiran poput XML, JSON, BSON. Te se strukture smatraju dokumentima.

Baze podataka zasnovane na dokumentima: Apache CouchDB, Clusterpoint, Couchbase, DocumentDB, HyperDex, IBM Domino, MarkLogic, MongoDB, OrientDB, Qizx, RethinkDB.

Slučaj upotrebe

Kako dokument podržava fleksibilnu shemu, brzo čitanje i pisanje particija čine ga prikladnim za stvaranje korisničkih baza podataka u raznim uslugama poput twittera, web stranica e-trgovine itd.

Stupac orijentiran:

U ovoj bazi podataka podaci se pohranjuju u ćeliju grupiranu u stupac, a ne u retke. Stupci su logično grupirani u obitelji stupaca koji se mogu stvoriti ili tijekom definiranja sheme ili tijekom izvođenja.

Ove vrste baza podataka pohranjuju sve ćelije koje odgovaraju stupcu kao kontinuirani unos diska, čineći tako pristup i pretraživanje mnogo bržim.

Baze podataka na temelju stupaca: HBase, Accumulo, Cassandra, Druid, Vertica.

Slučaj upotrebe

Podržava ogromnu pohranu i omogućuje brži pristup čitanju i pisanju preko nje. To baze podataka orijentirane na stupce čini prikladnima za pohranu ponašanja kupaca na web mjestu e-trgovine, financijskim sustavima poput Google Financea i podataka o burzi, Google mapama itd.

Grafički orijentirano:

To je savršen fleksibilan grafički prikaz, koji se koristi za razliku od SQL-a. Ove vrste baza podataka lako rješavaju probleme skalabilnosti adresa jer sadrže rubove i čvor koji se mogu proširiti prema zahtjevima.

Grafičke baze podataka: AllegroGraph, ArangoDB, InfiniteGraph, Apache Giraph, MarkLogic, Neo4J, OrientDB, Virtuoso, Stardog.

razlika između xml i html

Slučaj upotrebe

To se u osnovi koristi u otkrivanju prijevara, mehanizmima za preporuke u stvarnom vremenu (u većini slučajeva e-trgovini), upravljanju glavnim podacima (MDM), mrežnim i IT operacijama, upravljanju identitetom i pristupom (IAM) itd.

HBase i Cassandra dvije su poznate baze podataka orijentirane na stupce. Dakle, sada razgovarajući o tome na višoj razini, usporedimo i shvatimo arhitektonske i radne razlike između HBase i Cassandre.

Vodič za HBase: HBase protiv Cassandre

  • HBase je napravljen po uzoru na BigTable (Google), dok se Cassandra temelji na DynamoDB (Amazon) koji je u početku razvio Facebook.
  • HBase koristi Hadoop infrastrukturu (HDFS, ZooKeeper) dok se Cassandra razvijala odvojeno, ali možete kombinirati Hadoop i Cassandru prema svojim potrebama.
  • HBase ima nekoliko komponenata koje međusobno komuniciraju poput HBase HMaster, ZooKeeper, NameNode, Region Severs. Dok je Cassandra jedan tip čvora, u kojem su svi čvorovi jednaki i izvršava sve funkcije. Bilo koji čvor može biti koordinator kojim se uklanja jedna točka kvara.
  • HBase je optimiziran za čitanje i podržava pojedinačno upisivanje, što dovodi do stroge dosljednosti. HBase podržava skeniranje na temelju raspona, što ubrzava postupak skeniranja. Dok Cassandra podržava čitanje u jednom retku što zadržava konačnu dosljednost.
  • Cassandra ne podržava skeniranje redova na temelju dometa, što usporava postupak skeniranja u usporedbi s HBaseom.
  • HBase podržava uređenu particiju, u kojoj se redovi obitelji stupaca pohranjuju u redoslijedu RowKey, dok je u Casandri naručena particija izazov. Zbog particioniranja RowKey proces skeniranja je brži u HBaseu u usporedbi s Cassandrom.
  • HBase ne podržava uravnoteženje učitavanja čitanja, jedan Regijski poslužitelj služi zahtjevu za čitanje, a replike se koriste samo u slučaju kvara. Iako Cassandra podržava čitanje uravnoteženja opterećenja i može čitati iste podatke s različitih čvorova. To može ugroziti dosljednost.
  • U CAP (dosljednost, dostupnost i particija-tolerancija) teorem HBase održava dosljednost i dostupnost, dok se Cassandra usredotočuje na dostupnost i particiju-toleranciju.


Sada duboko zaronimo i shvatimo značajke Apache HBase što ga čini tako popularnim.

Vodič za Apache HBase: Značajke HBase

  • Atomsko čitanje i pisanje: Na razini reda, HBase omogućuje atomsko čitanje i pisanje. To se može objasniti jer su tijekom jednog postupka čitanja ili pisanja svim ostalim procesima onemogućeni izvođenje bilo kakvih operacija čitanja ili pisanja.
  • Dosljedno čita i piše: HBase omogućuje dosljedno čitanje i pisanje zbog gore navedene značajke.
  • Linearna i modularna skalabilnost: Kako se skupovi podataka distribuiraju preko HDFS-a, on je linearno skalabilan na različitim čvorovima, kao i modularno skalabilan, jer je podijeljen na različite čvorove.
  • Automatsko i podesivo oštrenje tablica: Tablice HBase raspoređene su po klasterima i te su klastere raspodijeljene po regijama. Ta se područja i nakupine dijele i redistribuiraju kako podaci rastu.
  • Jednostavan za korištenje Java API-ja za pristup klijentu: Pruža jednostavan za korištenje Java API za programski pristup.
  • Štedljivi pristupnik i REST-full web usluge: Također podržava Thrift i REST API za frontove koji nisu Java.
  • Blokiraj predmemoriju i Bloom filtre: HBase podržava Block Cache i Bloom Filters za veliku količinu optimizacije upita.
  • Automatska podrška za kvarove: HBase s HDFS-om pruža WAL (Write Ahead Log) na klasterima što pruža automatsku podršku za kvarove.
  • Poredani redovi: Kako se pretraga vrši na nizu redaka, HBase sprema ključeve redova u leksikografskom redoslijedu. Korištenjem ovih razvrstanih ključeva redova i vremenske oznake možemo stvoriti optimizirani zahtjev.

Krenimo sada u ovom vodiču za HBase, dopustite mi da vam kažem koji su slučajevi upotrebe i scenariji u kojima se HBase može koristiti, a zatim ću usporediti HDFS i HBase.

Želio bih vam skrenuti pažnju na scenarije u kojima HBase najbolje odgovara.

Vodič za HBase: Gdje možemo koristiti HBase?

  • Trebali bismo koristiti HBase tamo gdje imamo velike skupove podataka (milijune ili milijarde ili retke i stupce) i potreban nam je brz, nasumičan i stvarni pristup, pristup čitanju i pisanju podataka.
  • Skupovi podataka raspoređeni su u razne klastere i potrebna nam je velika skalabilnost za obradu podataka.
  • Podaci se prikupljaju iz različitih izvora podataka i to su ili polustrukturirani ili nestrukturirani podaci ili kombinacija svih. Lako se može nositi s HBaseom.
  • Želite pohraniti podatke orijentirane na stupce.
  • Imate puno verzija skupova podataka i sve ih morate pohraniti.

Prije nego što prijeđem na studiju slučaja Facebook messenger,dopustite mi da vam kažem koje su razlike između HBase i HDFS.

Vodič za HBase: HBase VS HDFS

HDFS je distribuirani datotečni sustav zasnovan na Javi koji vam omogućuje pohranu velikih podataka na više čvorova u Hadoop klasteru. Dakle, HDFS je temeljni sustav za pohranu podataka za pohranu u distribuiranom okruženju. HDFS je datotečni sustav, dok je HBase baza podataka (slično kao NTFS i MySQL).

Kako i HDFS i HBase pohranjuju bilo koju vrstu podataka (tj. Strukturirane, polustrukturirane i nestrukturirane) u distribuiranom okruženju, tako možemo pogledati razlike između HDFS datotečnog sustava i HBase, baze podataka NoSQL.

  • HBase omogućuje pristup s malim kašnjenjem malim količinama podataka u velikim skupovima podataka, dok HDFS pruža operacije s velikim kašnjenjem.
  • HBase podržava slučajno čitanje i pisanje, dok HDFS podržava WORM (pisanje jednom pročitati više puta ili više puta).
  • HDFS-u se u osnovi ili primarno pristupa putem poslova MapReduce, dok se HBase-u pristupa putem naredbi ljuske, Java API-ja, REST-a, Avro ili Thrift API-ja.

HDFS pohranjuje velike skupove podataka u distribuiranom okruženju i koristi skupnu obradu tih podataka. Npr. pomoglo bi web mjestu e-trgovine da pohrani milijune podataka kupaca u distribuiranom okruženju koje je raslo tijekom dugog vremenskog razdoblja (može biti 4-5 godina ili više). Zatim koristi grupnu obradu tih podataka i analizira ponašanje, obrazac, zahtjeve kupaca. Tada bi tvrtka mogla saznati koju vrstu proizvoda, kupnju kupca u kojim mjesecima. Pomaže u pohrani arhiviranih podataka i izvršenju skupne obrade nad njima.

Dok HBase podatke pohranjuje na način usmjeren prema stupcu, gdje se svaki stupac pohranjuje zajedno, tako da čitanje postaje brže koristeći obradu u stvarnom vremenu. Npr. u sličnom okruženju e-trgovine pohranjuje milijune podataka o proizvodima. Dakle, ako proizvod tražite među milijunima proizvoda, on optimizira zahtjev i postupak pretraživanja, što rezultira trenutnim rezultatom (ili možete reći u stvarnom vremenu). Detaljno Arhitektonsko objašnjenje HBase , Pokrivat ću na sljedećem blogu.

Kao što znamo da se HBase distribuira preko HDFS-a, tako nam kombinacija obje pruža izvrsnu priliku da koristimo blagodati oba, u prilagođenom rješenju, kao što ćemo vidjeti u donjoj studiji slučaja Facebook messenger-a.

Vodič za HBase: Studija slučaja Facebook Messenger

Facebook platforma za razmjenu poruka prebačen iz Apache Cassandre u HBase u studenom 2010.

Facebook Messenger kombinira Poruke, e-poštu, chat i SMS u razgovor u stvarnom vremenu. Facebook je pokušavao izgraditi skalabilnu i robusnu infrastrukturu za rukovanje nizom ovih usluga.

Tada je infrastruktura za poruke obrađivala preko 350 milijuna korisnika koji mjesečno šalju preko 15 milijardi osobnih poruka. Usluga chata podržava preko 300 milijuna korisnika koji mjesečno pošalju preko 120 milijardi poruka.

Praćenjem upotrebe otkrili su da su se pojavila dva općenita uzorka podataka:

  • Kratki skup vremenskih podataka koji imaju tendenciju biti nestabilni
  • Sve veći broj podataka kojima se rijetko može pristupiti

Facebook je želio pronaći rješenje za pohranu ova dva načina korištenja i započeli su istragu kako bi pronašli zamjenu za postojeću infrastrukturu Messages.

Ranije 2008. koristili su bazu podataka otvorenog koda, tj. Cassandru, koja je skladište ključeva / vrijednosti ključa / vrijednosti eventualne dosljednosti koje je već bilo u proizvodnji i posluživalo promet za Inbox Search. Njihovi su timovi imali veliko znanje u korištenju i upravljanju MySQL bazom podataka, pa im je promjena bilo koje tehnologije bila ozbiljna briga.

Proveli su nekoliko tjedana testirajući različite okvire za procjenu klastera MySQL, Apache Cassandra, Apache HBase i drugih sustava. U konačnici su odabrali HBase.

Kako MySQL nije uspio učinkovito rukovati velikim skupovima podataka, kako su indeksi i skupovi podataka rasli, trpjela je izvedba. Otkrili su da Cassandra nije u stanju riješiti teški obrazac za pomirenje svoje nove infrastrukture poruka.

Glavni problemi bili su:

  • Pohranjivanje velikog broja kontinuirano rastućih podataka s raznih Facebook usluga.
  • Zahtijeva bazu podataka koja na njoj može imati visoku obradu.
  • Visoke performanse potrebne za zadovoljavanje milijuna zahtjeva.
  • Održavanje dosljednosti u pohrani i performansama.

Slika: Izazovi s kojima se suočava Facebook messenger

Za sve ove probleme Facebook je smislio rješenje tj. HBase. Facebook je usvojio HBase za usluživanje Facebook messengera, chata, e-pošte itd. Zbog njegovih različitih značajki.

HBase dolazi s vrlo dobrom skalabilnošću i performansama za ovo opterećenje jednostavnijim modelom konzistentnosti od Cassandre. Iako su smatrali da je HBase najprikladniji u smislu njihovih zahtjeva kao što su automatsko uravnoteženje opterećenja i preusmjeravanje, podrška za kompresiju, više krhotina po poslužitelju itd.

HDFS, koji je temeljni datotečni sustav koji koristi HBase, također im je pružio nekoliko potrebnih značajki kao što su kontrolne sume od kraja do kraja, replikacija i automatsko ponovno uravnoteženje opterećenja.

Slika: HBase kao rješenje za Facebook messenger

Dok su usvajali HBase, također su se usredotočili na predavanje rezultata samoj HBase i započeli usku suradnju sa zajednicom Apachea.

Budući da poruke prihvaćaju podatke iz različitih izvora, kao što su SMS, chat i e-pošta, napisali su poslužitelj aplikacija koji će se nositi sa svim odlukama za korisnikovu poruku. Sučelje je s velikim brojem drugih usluga. Prilozi su pohranjeni u plastu sijena (koji radi na HBaseu). Također su napisali uslugu otkrivanja korisnika na vrhu Apache ZooKeeper koja razgovara s drugim infrastrukturnim uslugama za odnose s prijateljima, provjeru računa e-pošte, odluke o isporuci i odluke o privatnosti.

Facebook tim proveo je puno vremena potvrđujući da je svaka od ovih usluga robusna, pouzdana i pruža dobre performanse za rukovanje sustavom razmjene poruka u stvarnom vremenu.

Nadam se da je ovaj HBase tutorial blog informativan i da vam se svidio. Na ovom blogu upoznali ste osnove HBase i njegove značajke.U mom sljedećem blogu od , Objasnit ću arhitektura HBase i rad HBase što ga čini popularnim za brzo i nasumično čitanje / pisanje.

unakrsno ispitivanje preglednika u selenu

Sad kad ste shvatili osnove HBase, pogledajte Edureka, pouzdane tvrtke za internetsko učenje s mrežom od više od 250 000 zadovoljnih učenika raširenih širom svijeta. Edureka tečaj obuke za certificiranje velikih podataka Hadoop pomaže učenicima da postanu stručnjaci za HDFS, pređu, MapReduce, svinju, košnicu, HBase, Oozie, Flume i Sqoop koristeći slučajeve upotrebe u stvarnom vremenu na maloprodaji, društvenim mrežama, zrakoplovstvu, turizmu i financijama.

Imate pitanje za nas? Molimo spomenite to u odjeljku za komentare i javit ćemo vam se.