HBase arhitektuuri ülevaade



Selles postituses käsitletakse HBase'i ja teadmisi HBase'i arhitektuuri kohta. Samuti käsitletakse Hbase'i komponente nagu Master, Region server ja Zoo hoidja ning nende kasutamist.

Tänases postituses arutleme HBase'i arhitektuuri üle. Tehkem oma HBase'i põhitõdesid enne, kui HBase'i arhitektuuri süvitsi uurime.





HBase - põhitõed:

HBase on avatud lähtekoodiga NoSQL-i hajutatud, mitte-relatsiooniline, versioonidega mitmemõõtmeline veergudele orienteeritud pood, mis on modelleeritud HDFS-i peal töötava Google BigTable'i järgi. '' NoSQL 'on lai mõiste, mis tähendab, et andmebaas ei ole RDBMS, mis toetab SQL-i peamise juurdepääsukeelena. Kuid NoSQL-i andmebaase on mitut tüüpi ja Berkeley DB on hea näide kohalikust NoSQL-i andmebaasist, samas kui HBase on väga levitatud andmebaas.

mis on skanneri objekt

HBase pakub kõiki Google BigTable'i funktsioone. See algas Powerseti projektina tohutu hulga andmete töötlemiseks loomuliku keele otsimiseks. See töötati välja Apache'i Hadoop projekti raames ja töötab HDFS-i (Hadoop Distributed File System) peal. See pakub rikketaluvaid viise suure hulga hõredate andmete salvestamiseks. HBase on tegelikult pigem „andmepood” kui „andmebaas”, kuna sellel puuduvad paljud RDBMS-is saadaolevad funktsioonid, näiteks trükitud veerud, sekundaarsed indeksid, päästikud ja täpsemad päringukeeled jne.



Veergudele suunatud andmebaasides salvestatakse andmetabel pigem andmeveerude sektsioonidena kui andmeridadena. Veergude orienteeritud andmebaasi andmemudel koosneb tabeli nimest, rea võtmest, veeruperekonnast, veergudest, ajatemplist. HBase'is tabelite loomisel tuvastatakse read ridade klahvide ja ajatempli abil ainulaadselt. Selles andmemudelis on veerupere staatiline, samas kui veerud on dünaamilised. Vaatame nüüd HBase'i arhitektuuri.

Millal minna HBase'i poole?

HBase on hea võimalus ainult siis, kui ridu on sadu miljoneid või miljardeid. HBase'i saab kasutada ka kohtades, kui kaalutakse üleminekut RDBMS-ilt HBase-le täieliku ümberkujundamisena, mitte porti. Teisisõnu pole HBase'i optimeeritud klassikaliste tehingurakenduste või isegi relatsioonianalüütika jaoks. Samuti ei asenda see suurt HDFS-i, kui teete suurt partii MapReduce'i. Miks peaksite siis minema HBase'i ?? Kui teie rakendusel on muutuja skeem, kus iga rida on veidi erinev, peaksite vaatama HBase'i.

HBase'i arhitektuur:

Järgmine joonis selgitab HBase'i arhitektuuri selgelt.



HBase arhitektuuri ülevaade

HBase'is on kolm peamist komponenti: Peremees, piirkonna server ja loomaaia pidaja . Ülejäänud komponendid on Memstore, HFile ja WAL.

java programmid fibonacci seeria jaoks

Kuna HBase töötab HDFS-i peal, kasutab see põhi-ori arhitektuuri, milles HMaster on põhisõlm ja regiooniserverid on alamsõlmed. Kui klient saadab kirjutamistaotluse, saab HMaster selle päringu ja edastab selle vastavale regiooniserverile.

Piirkonna server:

See on süsteem, mis toimib sarnaselt andmesõlmega. Kui Region Server (RS) saab kirjutamisnõude, suunab ta päringu konkreetsele piirkonnale. Iga piirkond salvestab ridade komplekti. Ridade andmeid saab eraldada mitmes veerus (CF). Konkreetse CF andmed salvestatakse HStore'i, mis koosneb Memstore'ist ja HF-failide komplektist.

Mida Memstore teeb?

Memstore jälgib kõiki selle konkreetse piirkonna serveris tehtud lugemis- ja kirjutamistoimingute logisid. Selle põhjal võime öelda, et see toimib sarnaselt Hadoopi nimesõlmega. Memstore on mälusisene salvestusruum, seetõttu kasutab Memstore logide salvestamiseks iga andmesõlme mälusisest mälumahtu. Kui teatud künnised on täidetud, viiakse Memstore'i andmed HFile.

Memstore'i kasutamise põhieesmärk on vajadus salvestada andmeid reavõtme järgi järjestatud DFS-i. Kuna HDFS on ette nähtud järjestikuste lugemiste / kirjutuste jaoks, ilma failimuudatusteta, ei saa HBase andmeid saabumisel tõhusalt kettale kirjutada: kirjutatud andmeid ei sorteerita (kui sisendit pole sorteeritud), mis tähendab, et neid pole tulevikuks optimeeritud väljavõtmine. Selle probleemi lahendamiseks puhverdab HBase viimati mälus olevad andmed (Memstore'is), 'sorteerib' need enne loputamist ja kirjutab seejärel HDFS-i, kasutades kiireid järjestikke. Seega sisaldab HFile sorteeritud ridade loendit.

Iga kord, kui Memstore'i loputus toimub, on iga CF jaoks loodud üks HFile ja sagedased loputused võivad tekitada tonni HFile. Kuna lugemise ajal peab HBase vaatama paljusid HF-faile, võib lugemiskiirus kannatada. Liiga paljude HF-failide avamise vältimiseks ja lugemisvõime halvenemise vältimiseks kasutatakse HFilesi tihendusprotsessi. HBase tihendab perioodiliselt (kui teatud seadistatavad künnised on täidetud) mitu väiksemat HF-faili suureks. Ilmselt, mida rohkem Memstore'i loodud faile loputatakse, seda rohkem töötab süsteem (lisakoormus). Lisaks sellele, kui tihendusprotsess viiakse tavaliselt läbi paralleelselt teiste taotluste teenindamisega ja kui HBase ei suuda HF-failide tihendamisega sammu pidada (jah, ka sellele on konfigureeritud künnised), blokeerib see uuesti RS-is kirjutamise. Nagu me eespool arutlesime, on see äärmiselt ebasoovitav.

Me ei saa olla kindlad, et andmed on kogu Memstore'is püsivad. Oletame, et konkreetne datanode on maas. Siis lähevad selle andmesõlme mälus olevad andmed kaotsi.

Selle probleemi ületamiseks, kui päring tuleb kaptenilt, kirjutas see ka WAL-ile. WAL pole muud kui Kirjutage ette logid mis asub HDFS-is - püsimälus. Nüüd saame veenduda, et isegi siis, kui andmesõlm on maas, ei lähe andmed kaduma, st. meil on koopia kõigist toimingutest, mida peaksite WAL-is tegema. Kui andmesõlm on üleval, sooritab see kõik toimingud uuesti. Kui operatsioon on lõpule viidud, loputatakse kõik Memstore'ist ja WAL-ist ning kirjutatakse HFile-i, et veenduda, et mälu pole otsas.

Võtame lihtsa näite, et ma tahan lisada rea ​​10, siis see kirjutamisnõue tuleb, ütleb, et see annab kõik metaandmed Memstore'ile ja WAL-ile. Kui see konkreetne rida on HFile sisse kirjutatud, on Memstore'is kõik ja WAL loputatakse.

Loomaaiatalitaja:

HBase on integreeritud loomaaia pidajaga. HBase'i käivitamisel käivitatakse ka loomaaiapidaja eksemplar. Põhjuseks on see, et loomaaia pidaja aitab meil jälgida kõiki HBase jaoks mõeldud piirkonna servereid. Loomaaiapidaja jälgib, kui palju on regiooniservereid, milliseid regiooniservereid millisest andmesõlmest millisele andmesõlmele hoiab. See jälgib väiksemaid andmekogumeid, kus Hadoop puudub. See vähendab üldkulusid Hadoopi peal, mis jälgib enamikku teie metaandmetest. Seega saab HMaster piirkonna serverite üksikasjad, pöördudes loomaaia pidaja poole.

Kas teil on meile küsimus? Mainige neid kommentaaride jaotises ja me võtame teiega ühendust.

ühenda sort c ++ massiiv

Seonduvad postitused:

Kasulikud taru käsud