Ny teoria sy ny fampiharana ny fampiasana HBase

Salama Danil Lipovoy no anarako, ny ekipanay ao amin'ny Sbertech dia nanomboka nampiasa HBase ho fitahirizana angon-drakitra miasa. Nandritra ny fandalinana azy dia niangona ny traikefa izay tiako halamina sy hazavaina (manantena izahay fa hahasoa ny maro). Ny fanandramana rehetra etsy ambany dia natao tamin'ny HBase version 1.2.0-cdh5.14.2 sy 2.0.0-cdh6.0.0-beta1.

  1. Architecture ankapobeny
  2. Manoratra angona amin'ny HBASE
  3. Famakiana angona avy amin'ny HBASE
  4. Data cache
  5. Fanodinana angon-drakitra maromaro MultiGet/MultiPut
  6. Tetika fizarana latabatra ho faritra (fizarana)
  7. Fandeferana fault, compactification ary toerana misy angona
  8. Fikirana sy fampisehoana
  9. Fitsapana adin-tsaina
  10. hitany

1. Architecture ankapobeny

Ny teoria sy ny fampiharana ny fampiasana HBase
Ny Master backup dia mihaino ny fitepon'ny fon'ilay mavitrika ao amin'ny node ZooKeeper ary, raha sendra nanjavona, dia mandray ny asan'ny tompony.

2. Soraty amin'ny HBASE ny angona

Voalohany, andeha hojerentsika ny tranga tsotra indrindra - manoratra zavatra manan-danja amin'ny latabatra amin'ny fampiasana put(rowkey). Ny mpanjifa dia tsy maintsy mahita aloha hoe aiza no misy ny Root Region Server (RRS), izay mitahiry ny hbase: meta table. Nahazo izany vaovao izany avy amin'ny ZooKeeper izy. Aorian'izay dia miditra amin'ny RRS izy ary mamaky ny tabilao hbase:meta, izay mamoaka vaovao momba izay RegionServer (RS) no tompon'andraikitra amin'ny fitehirizana angona ho an'ny rowkey nomena ao amin'ny tabilao mahaliana. Ho an'ny fampiasana amin'ny ho avy, ny latabatra meta dia voasakana ny mpanjifa ary noho izany dia mandeha haingana kokoa ny antso manaraka, mivantana mankany amin'ny RS.

Manaraka, RS, rehefa nahazo fangatahana, voalohany indrindra dia manoratra izany amin'ny WriteAheadLog (WAL), izay ilaina amin'ny fanarenana raha misy fianjerana. Avy eo dia tehirizo ao amin'ny MemStore ny angona. Ity dia buffer amin'ny fitadidiana izay misy andiana fanalahidy voafantina ho an'ny faritra iray. Ny latabatra iray dia azo zaraina ho faritra (fizarana), izay samy misy fanalahidin'ny disjoint. Izany dia ahafahanao mametraka faritra amin'ny mpizara samihafa mba hahazoana fahombiazana ambony kokoa. Na izany aza, na dia eo aza ny miharihary amin'ity fanambarana ity dia ho hitantsika any aoriana fa tsy mandeha amin'ny tranga rehetra izany.

Aorian'ny fametrahana fidirana ao amin'ny MemStore dia misy valiny averina amin'ny mpanjifa fa voavonjy soa aman-tsara ilay fidirana. Na izany aza, raha ny marina dia voatahiry ao anaty buffer fotsiny izy io ary tonga any amin'ny kapila raha tsy aorian'ny fe-potoana voafaritra na rehefa feno angon-drakitra vaovao.

Ny teoria sy ny fampiharana ny fampiasana HBase
Rehefa manao ny hetsika "Delete", dia tsy voafafa ara-batana ny data. Voamarika tsotra izao ho voafafa izy ireo, ary ny fandringanana dia mitranga amin'ny fotoana fiantsoana ny asa lehibe compact, izay voafaritra amin'ny antsipiriany ao amin'ny paragrafy 7.

Ny rakitra amin'ny endrika HFile dia voaangona ao amin'ny HDFS ary tsindraindray dia atomboka ny fizotran'ny compact kely, izay manambatra ireo rakitra kely ho lehibe kokoa nefa tsy mamafa na inona na inona. Rehefa mandeha ny fotoana, dia lasa olana izay miseho rehefa mamaky angon-drakitra fotsiny izany (hiverina eto aoriana kely izahay).

Ho fanampin'ny fizotry ny fampidinana voalaza etsy ambony, dia misy fomba mahomby kokoa, izay angamba ny lafiny matanjaka indrindra amin'ity tahiry ity - BulkLoad. Mipetraka amin'ny hoe mamorona HFiles tsy miankina isika ary mametraka azy ireo amin'ny kapila, izay ahafahantsika mizana tsara sy mahatratra haingana be. Raha ny marina, ny fetra eto dia tsy HBase, fa ny fahafahan'ny fitaovana. Ireto ambany ireto ny valin'ny baotin'ny cluster misy 16 RegionServers sy 16 NodeManager YARN (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 kofehy), HBase version 1.2.0-cdh5.14.2.

Ny teoria sy ny fampiharana ny fampiasana HBase

Eto ianao dia afaka mahita fa amin'ny fampitomboana ny isan'ny fizarazarana (faritra) eo amin'ny latabatra, ary koa ny mpanatanteraka Spark, dia mahazo fitomboan'ny hafainganam-pandehan'ny fampidinana. Ankoatra izany, ny hafainganam-pandeha dia miankina amin'ny habetsahan'ny fandraisam-peo. Ny blocs lehibe dia mampitombo ny MB/sec, ny blocs kely amin'ny isan'ny firaketana an-tsoratra isaky ny fe-potoana, ny zavatra hafa rehetra dia mitovy.

Azonao atao ihany koa ny manomboka mampiditra latabatra roa miaraka ary mahazo avo roa heny ny hafainganam-pandeha. Eto ambany ianao dia afaka mahita fa ny fanoratana bloc 10 KB amin'ny tabilao roa miaraka dia mitranga amin'ny hafainganam-pandeha eo amin'ny 600 MB/sec isaky ny tsirairay (total 1275 MB/sec), izay mifanandrify amin'ny hafainganan'ny fanoratana amin'ny latabatra iray 623 MB/sec (jereo No. 11 etsy ambony)

Ny teoria sy ny fampiharana ny fampiasana HBase
Saingy ny hazakazaka faharoa miaraka amin'ny firaketana 50 KB dia mampiseho fa mitombo kely ny hafainganam-pandehan'ny fampidinana, izay manondro fa manakaiky ny soatoavina fetra. Mandritra izany fotoana izany, mila mitadidy ianao fa saika tsy misy enta-mavesatra noforonina ao amin'ny HBASE mihitsy, ny hany takiana aminy dia ny manome data avy amin'ny hbase:meta aloha, ary aorian'ny fametahana ny HFiles, avereno indray ny angona BlockCache ary tehirizo ny MemStore buffer amin'ny kapila, raha tsy misy.

3. Famakiana angona avy amin'ny HBASE

Raha mihevitra isika fa ny mpanjifa dia efa manana ny fampahalalana rehetra avy amin'ny hbase: meta (jereo ny teboka 2), ny fangatahana dia mandeha mivantana any amin'ny RS izay misy ny fanalahidy ilaina. Voalohany, ny fikarohana dia atao amin'ny MemCache. Na misy angon-drakitra ao na tsia, ny fikarohana dia atao ao amin'ny buffer BlockCache ary, raha ilaina, ao amin'ny HFiles. Raha hita ao anaty rakitra ny angona dia apetraka ao amin'ny BlockCache ary haverina haingana kokoa amin'ny fangatahana manaraka. Ny fikarohana ao amin'ny HFile dia somary haingana noho ny fampiasana ny sivana Bloom, i.e. rehefa mamaky angon-drakitra kely izy dia mamaritra avy hatrany raha misy ny fanalahidy ilaina io rakitra io ary raha tsy izany dia miroso amin'ny manaraka.

Ny teoria sy ny fampiharana ny fampiasana HBase
Rehefa nahazo angon-drakitra avy amin'ireo loharano telo ireo dia miteraka valiny ny RS. Amin'ny ankapobeny dia afaka mamindra dikan-teny maromaro hita indray mandeha izy raha nangataka fanavaozana ny mpanjifa.

4. Data cache

Ny buffers MemStore sy BlockCache dia mitana hatramin'ny 80% amin'ny fahatsiarovana RS natokana ho an'ny heap (ny ambiny dia natokana ho an'ny asa fanompoana RS). Raha ny fomba fampiasa mahazatra dia manoratra sy mamaky avy hatrany ny angon-drakitra mitovy amin'izany, dia misy dikany ny fampihenana ny BlockCache ary hampitombo ny MemStore, satria Rehefa tsy miditra ao amin'ny cache ho an'ny famakiana ny angon-drakitra fanoratana dia tsy hampiasaina matetika ny BlockCache. Ny buffer BlockCache dia misy ampahany roa: LruBlockCache (eo amin'ny amboara foana) sy BucketCache (matetika eny an-tampon-kavoana na amin'ny SSD). Tokony hampiasaina ny BucketCache rehefa be dia be ny fangatahana famakiana ary tsy mifanaraka amin'ny LruBlockCache izy ireo, izay mitarika amin'ny asa mavitrika ataon'ny Mpangona Fako. Amin'izay fotoana izay ihany koa dia tsy tokony hanantena fitomboana mahery vaika amin'ny fampisehoana amin'ny fampiasana ny cache vakina ianao, fa hiverina amin'izany isika ao amin'ny paragrafy 8

Ny teoria sy ny fampiharana ny fampiasana HBase
Misy BlockCache iray ho an'ny RS manontolo, ary misy MemStore iray isaky ny latabatra (iray ho an'ny Fianakaviana Column tsirairay).

Ahoana no voalaza amin'ny teoria, rehefa manoratra dia tsy miditra ao amin'ny cache ny angon-drakitra ary marina tokoa, ny paramètre toy izany CACHE_DATA_ON_WRITE ho an'ny latabatra sy ny "DATA Cache amin'ny fanoratana" ho an'ny RS dia napetraka ho diso. Na izany aza, amin'ny fampiharana, raha manoratra angon-drakitra amin'ny MemStore isika, dia atsipazo amin'ny kapila izany (izay manadio azy), ary esory ny rakitra vokarina, avy eo amin'ny fanatanterahana ny fangatahana get dia hahazo ny angon-drakitra. Ankoatr'izay, na dia esorinao tanteraka aza ny BlockCache ary fenoy angon-drakitra vaovao ny latabatra, dia avereno amin'ny kapila ny MemStore, hamafa azy ireo ary angataho amin'ny fivoriana hafa izy ireo, dia mbola alaina any amin'ny toerana iray. Noho izany, ny HBase dia tsy mitahiry data fotsiny, fa mistery mistery koa.

hbase(main):001:0> create 'ns:magic', 'cf'
Created table ns:magic
Took 1.1533 seconds
hbase(main):002:0> put 'ns:magic', 'key1', 'cf:c', 'try_to_delete_me'
Took 0.2610 seconds
hbase(main):003:0> flush 'ns:magic'
Took 0.6161 seconds
hdfs dfs -mv /data/hbase/data/ns/magic/* /tmp/trash
hbase(main):002:0> get 'ns:magic', 'key1'
 cf:c      timestamp=1534440690218, value=try_to_delete_me

Ny mari-pamantarana "Cache DATA amin'ny famakiana" dia napetraka ho diso. Raha manana hevitra ianao dia tongasoa eto amin'ny fifanakalozan-kevitra.

5. Fanodinana angon-drakitra maromaro MultiGet/MultiPut

Ny fanodinana fangatahana tokana (Get/Put/Delete) dia asa lafo be, ka raha azo atao dia tokony hanambatra azy ireo ao anaty lisitra na lisitra ianao, izay ahafahanao mahazo fampisondrotana lehibe. Marina indrindra izany ho an'ny asa fanoratana, fa rehefa mamaky dia misy ny fandrika manaraka. Ny tabilao etsy ambany dia mampiseho ny fotoana hamakiana rakitra 50 avy amin'ny MemStore. Ny famakiana dia natao tamin'ny kofehy iray ary ny axis marindrano dia mampiseho ny isan'ny fanalahidy ao amin'ny fangatahana. Eto ianao dia afaka mahita fa rehefa mitombo ny fanalahidy arivo amin'ny fangatahana iray dia mihena ny fotoana famonoana, i.e. mitombo ny hafainganam-pandeha. Na izany aza, miaraka amin'ny maodely MSLAB alefa amin'ny alΓ lan'ny default, aorian'io tokonam-baravarana io dia manomboka ny fihenan'ny zava-bita, ary arakaraka ny haben'ny angona ao amin'ny firaketana no mihalava ny fotoana fiasana.

Ny teoria sy ny fampiharana ny fampiasana HBase

Ny fitsapana dia natao tamin'ny milina virtoaly, 8 cores, version HBase 2.0.0-cdh6.0.0-beta1.

Ny maody MSLAB dia natao hampihenana ny fizarazarana antontam-bato, izay mitranga noho ny fampifangaroana angona vaovao sy tranainy. Amin'ny maha-famoahana azy, rehefa alefa ny MSLAB, dia apetraka ao anaty sela kely (tapa) ny angon-drakitra ary amboarina amin'ny sombiny. Vokatr'izany, rehefa mihoatra ny habe nomena ny habetsaky ny fonosana angona angona, dia mihena be ny fampisehoana. Etsy ankilany, tsy azo atao koa ny mamono an'io fomba io, satria hitarika amin'ny fiatoana noho ny GC mandritra ny fotoana fanodinana angon-drakitra. Ny vahaolana tsara dia ny fampitomboana ny haavon'ny sela amin'ny tranga fanoratana mavitrika amin'ny alΓ lan'ny fametrahana miaraka amin'ny famakiana. Tsara ny manamarika fa tsy mitranga ny olana raha toa ka mihazakazaka ny baiko flush ianao aorian'ny firaketana, izay mamerina ny MemStore amin'ny kapila, na raha mampiasa BulkLoad ianao. Ny tabilao etsy ambany dia mampiseho fa ny fangatahana avy amin'ny MemStore ho an'ny angona lehibe kokoa (sy mitovy isa) dia miteraka fihemorana. Na izany aza, amin'ny fampitomboana ny chunksize dia mamerina ny fotoana fanodinana ho ara-dalΓ na.

Ny teoria sy ny fampiharana ny fampiasana HBase
Ho fanampin'ny fampitomboana ny chunksize, ny fizarana ny angon-drakitra amin'ny faritra dia manampy, i.e. fisarahana latabatra. Lasa vitsy kokoa ny fangatahana tonga any amin'ny faritra tsirairay ary raha tafiditra ao anaty sela izy ireo dia tsara ny valiny.

6. Tetika fizarana latabatra ho faritra (fizarana)

Satria ny HBase dia fitahirizana sanda manan-danja ary ny fizarana dia tanterahana amin'ny alΓ lan'ny fanalahidy, zava-dehibe tokoa ny fizarana ny angon-drakitra amin'ny faritra rehetra. Ohatra, ny fizarana latabatra toy izany ho fizarana telo dia hahatonga ny angona ho zaraina ho faritra telo:

Ny teoria sy ny fampiharana ny fampiasana HBase
Izany dia mitranga fa izany dia mitarika ho amin'ny fihemorana mafy raha toa ny angon-drakitra voarakitra taty aoriana dia toa, ohatra, sanda lava, ny ankamaroany dia manomboka amin'ny isa mitovy, ohatra:

1000001
1000002
...
1100003

Satria ny lakile dia voatahiry ho byte array, izy rehetra dia hanomboka mitovy ary ao amin'ny faritra #1 iray mitahiry an'io karazana fanalahidy io. Misy paikady fisarahana maromaro:

HexStringSplit – Manova ny lakile ho tady misy kaody hexadecimal ao amin'ny laharana "00000000" => "FFFFFFFF" ary padding eo ankavia misy aotra.

UniformSplit – Mamadika ny lakile ho laharan-byte misy encoding hexadecimal ao amin'ny laharana "00" => "FF" ary padding eo ankavanana misy aotra.

Ho fanampin'izany, azonao atao ny mamaritra ny isan-karazany na ny fanalahidin'ny fizarazarana sy ny fanamafisam-peo mandeha ho azy. Na izany aza, ny iray amin'ireo fomba tsotra indrindra sy mahomby indrindra dia ny UniformSplit sy ny fampiasana ny hash concatenation, ohatra ny bitika tena manan-danja indrindra amin'ny fampandehanana ny fanalahidy amin'ny alΓ lan'ny CRC32(rowkey) sy ny rowkey:

hash + rowkey

Dia hozaraina mitovy avokoa ny angon-drakitra rehetra manerana ny faritra. Rehefa mamaky dia ariana tsotra izao ireo bytes roa voalohany ary mijanona ny lakile voalohany. Ny RS ihany koa dia mifehy ny habetsaky ny angona sy ny fanalahidy ao amin'ny faritra ary, raha mihoatra ny fetra, dia manapaka azy ho ampahany.

7. Fandeferana diso sy toerana misy angona

Satria faritra iray ihany no tompon'andraikitra amin'ny andiam-panalahidy tsirairay, ny vahaolana amin'ny olana mifandraika amin'ny fianjeran'ny RS na ny fandroahana dia ny fitahirizana ny angona ilaina rehetra ao amin'ny HDFS. Rehefa mianjera ny RS dia hitan'ny tompony izany amin'ny tsy fisian'ny fitempon'ny fo amin'ny node ZooKeeper. Avy eo dia manendry ny faritra manompo amin'ny RS hafa ary satria ny HFiles dia voatahiry ao amin'ny rafitra fichier zaraina, dia mamaky azy ireo ny tompony vaovao ary manohy manompo ny angon-drakitra. Na izany aza, satria mety ho ao amin'ny MemStore ny sasany amin'ireo angon-drakitra ary tsy nanam-potoana hidirana ao amin'ny HFiles, ny WAL, izay voatahiry ao amin'ny HDFS ihany koa, dia ampiasaina hamerenana ny tantaran'ny asa. Aorian'ny fampiharana ny fanovana dia afaka mamaly ny fangatahana ny RS, fa ny hetsika dia mitarika amin'ny hoe ny sasany amin'ireo angon-drakitra sy ny fizotran'ny serivisy dia miafara amin'ny nodes samihafa, izany hoe. mihena ny toerana misy azy.

Ny vahaolana amin'ny olana dia ny compaction lehibe - ity dingana ity dia mamindra ny rakitra amin'ireo nodes izay tompon'andraikitra amin'izy ireo (izay misy ny faritra misy azy), vokatr'izany dia mitombo be ny enta-mavesatra eo amin'ny tambajotra sy ny disks mandritra ity dingana ity. Na izany aza, amin'ny ho avy, ny fidirana amin'ny angona dia hita fa haingana kokoa. Fanampin'izany, ny major_compaction dia manatanteraka fampifangaroana ny HFiles rehetra ho rakitra iray ao anatin'ny faritra iray, ary manadio ny angona miankina amin'ny firafitry ny latabatra ihany koa. Ohatra, azonao atao ny mamaritra ny isan'ny dikan-teny tsy maintsy tazonina na ny androm-piainana aorian'ny famafana ilay zavatra.

Ity fomba fiasa ity dia mety hisy fiantraikany tsara amin'ny fiasan'ny HBase. Asehon'ny sary etsy ambany fa niharatsy ny fahombiazan'ny fandraketana angona mavitrika. Eto ianao dia afaka mahita ny fomba nanoratana kofehy 40 tamin'ny latabatra iray sy kofehy 40 miaraka namaky angona. Ny fanoratana kofehy dia miteraka HFiles bebe kokoa, izay vakian'ny kofehy hafa. Vokatr'izany dia mihabetsaka ny angon-drakitra mila esorina amin'ny fitadidiana ary amin'ny farany dia manomboka miasa ny GC, izay mandringa ny asa rehetra. Ny fanombohana ny famehezana lehibe dia nitarika ny fanadiovana ny potipoti-javatra aterak'izany ary ny famerenana amin'ny laoniny ny vokatra.

Ny teoria sy ny fampiharana ny fampiasana HBase
Ny fitsapana dia natao tamin'ny 3 DataNodes sy 4 RS (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 kofehy). HBase version 1.2.0-cdh5.14.2

Tsara ny manamarika fa natomboka teo amin'ny latabatra "mivantana" ny fametahana lehibe, izay nanoratana sy namaky ny angon-drakitra. Nisy fanambarana an-tserasera fa mety hitarika valiny diso izany rehefa mamaky angon-drakitra. Mba hanamarinana, nisy dingana natomboka izay niteraka angona vaovao ary nanoratra izany tamin'ny latabatra. Taorian'izay dia namaky sy nanamarina avy hatrany aho raha nifanaraka tamin'ny voasoratra ny sanda azony. Raha mbola nandeha io dingana io, dia natao in-200 teo ho eo ny fametahana lehibe ary tsy nisy tsy fahombiazana na dia iray aza. Angamba ny olana dia miseho mahalana ary mandritra ny enta-mavesatra be ihany, noho izany dia azo antoka kokoa ny manajanona ny fizotran'ny fanoratana sy ny famakiana araka ny nokasaina ary ny fanadiovana mba hisorohana ny fisintonana GC toy izany.

Ary koa, tsy misy fiantraikany amin'ny toetry ny MemStore ny famehezana lehibe; raha te hametaka azy amin'ny kapila sy hanamafisana azy ianao dia mila mampiasa flush (connection.getAdmin().flush(TableName.valueOf(tblName))).

8. Settings sy fampisehoana

Araka ny efa voalaza, ny HBase dia mampiseho ny fahombiazany lehibe indrindra izay tsy mila manao na inona na inona, rehefa manatanteraka BulkLoad. Na izany aza, mihatra amin'ny ankamaroan'ny rafitra sy ny olona izany. Na izany aza, ity fitaovana ity dia mety kokoa amin'ny fitehirizana angon-drakitra betsaka amin'ny sakana lehibe, fa raha toa ka mitaky fangatahana mamaky sy manoratra mifaninana marobe ny dingana, dia ampiasaina ny baiko Get and Put voalaza etsy ambony. Mba hamaritana ny mari-pamantarana tsara indrindra, dia natao ny fandefasana miaraka amin'ny fitambarana isan-karazany amin'ny mari-pamantarana latabatra sy ny toe-javatra:

  • Tady 10 no natomboka in-3 nisesy (aleo atao hoe andian-tady ity).
  • Ny fotoana fiasan'ny kofehy rehetra amin'ny sakana iray dia salanisa ary ny vokatra farany tamin'ny fiasan'ny sakana.
  • Ny kofehy rehetra dia niasa tamin'ny latabatra iray ihany.
  • Alohan'ny hanombohan'ny kofehy kofehy tsirairay, dia nisy famehezana lehibe natao.
  • Ny sakana tsirairay dia tsy nanao afa-tsy iray amin'ireto asa manaraka ireto:

β€” Apetraho
-get
β€”Mahazoa+Mametraka

  • Ny bloc tsirairay dia nanao famerimberenana 50 tamin'ny asany.
  • Ny haben'ny sakana amin'ny rakitra dia 100 bytes, 1000 bytes na 10000 bytes (kisendrasendra).
  • Ny sakana dia natomboka tamin'ny isa samihafa nangatahana fanalahidy (na fanalahidy iray na 10).
  • Natao teo ambanin'ny firafitry ny latabatra samihafa ireo sakana. Niova ny paramΓ¨tre:

β€” BlockCache = mirehitra na maty
β€” BlockSize = 65 Kio na 16 Kio
- Fizarana = 1, 5 na 30
β€” MSLAB = afaka na kilemaina

Dia toy izao ny block:

a. Ny maodely MSLAB dia nandeha/najanona.
b. Noforonina ny latabatra izay nametrahana ireto mason-tsivana manaraka ireto: BlockCache = marina/tsy misy, BlockSize = 65/16 Kb, Fizarana = 1/5/30.
c. Ny famatrarana dia napetraka ho GZ.
d. Lohateny 10 no natomboka niaraka nanao asa 1/10 put/get/get+put tao amin'ity latabatra ity miaraka amin'ny firaketana 100/1000/10000 bytes, manao fanontaniana 50 misesy (kisendrasendra).
e. Naverina in-telo ny teboka d.
f. Ny fotoana fiasan'ny kofehy rehetra dia natao salan'isa.

Nosedraina avokoa ny fitambarana azo atao. Azo vinaniana fa hihena ny hafainganam-pandeha rehefa mitombo ny haben'ny rakitra, na ny fanalana ny caching dia hiteraka fihemorana. Na izany aza, ny tanjona dia ny hahatakatra ny ambaratonga sy ny maha-zava-dehibe ny fiantraikan'ny paramètre tsirairay, noho izany ny angon-drakitra voangona dia nampidirina tao amin'ny fidirana amin'ny asa fanodinana linear, izay ahafahana manombana ny dikany amin'ny fampiasana t-statistika. Ireto ambany ireto ny vokatry ny sakana manao ny asa Put. Feno fitambarana 2*2*3*2*3 = 144 safidy + 72 tk. ny sasany natao indroa. Noho izany, misy 216 ny fitambarany:

Ny teoria sy ny fampiharana ny fampiasana HBase
Ny fitsapana dia natao tamin'ny mini-cluster misy 3 DataNodes sy 4 RS (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 kofehy). HBase version 1.2.0-cdh5.14.2.

Ny hafainganam-pandeha ambony indrindra amin'ny 3.7 segondra dia azo tamin'ny alΓ lan'ny maody MSLAB novonoina, teo amin'ny latabatra misy fizarazarana iray, miaraka amin'ny BlockCache, BlockSize = 16, firaketana 100 bytes, tapa-10 isaky ny fonosana.
Ny hafainganam-pandeha ambany indrindra amin'ny 82.8 sec dia azo tamin'ny alΓ lan'ny MSLAB mode, teo amin'ny latabatra misy fizarazarana iray, miaraka amin'ny BlockCache, BlockSize = 16, firaketana 10000 bytes, 1 tsirairay.

Andeha hojerentsika ny modely. Hitantsika ny kalitao tsara amin'ny modely miorina amin'ny R2, saingy mazava tsara fa ny extrapolation dia contraindicated eto. Ny tena fitondran-tenan'ny rafitra rehefa miova ny masontsivana dia tsy ho linear; ity modely ity dia tsy ilaina amin'ny faminaniany, fa mba hahatakarana ny zava-nitranga tao anatin'ireo mari-pamantarana nomena. Ohatra, eto isika dia mahita avy amin'ny fepetran'ny Mpianatra fa ny masontsivana BlockSize sy BlockCache dia tsy misy dikany amin'ny hetsika Put (izay azo vinavinaina amin'ny ankapobeny):

Ny teoria sy ny fampiharana ny fampiasana HBase
Saingy ny zava-misy fa ny fampitomboana ny isan'ny partitions dia mitarika amin'ny fihenan'ny fampisehoana dia somary tsy nampoizina (efa hitanay ny fiantraikany tsara amin'ny fampitomboana ny isan'ny partitions amin'ny BulkLoad), na dia azo takarina aza. Voalohany, ho an'ny fanodinana dia tsy maintsy mamorona fangatahana any amin'ny faritra 30 ianao fa tsy iray, ary ny habetsaky ny angon-drakitra dia tsy toy izany ka hiteraka tombony izany. Faharoa, ny totalin'ny fotoana fiasana dia voafaritra amin'ny RS miadana indrindra, ary satria ny isan'ny DataNodes dia kely noho ny isan'ny RS, ny faritra sasany dia manana toerana aotra. Eny ary, andeha hojerentsika ny dimy voalohany:

Ny teoria sy ny fampiharana ny fampiasana HBase
Andeha isika handinika ny vokatry ny fanatanterahana ny Get blocks:

Ny teoria sy ny fampiharana ny fampiasana HBase
Ny isan'ny fizarazarana dia very lanjany, izay azo inoana fa hazavaina amin'ny hoe voatahiry tsara ny angon-drakitra ary ny cache vakiana no mari-pamantarana manan-danja indrindra (statistika). Mazava ho azy, ny fampitomboana ny isan'ny hafatra amin'ny fangatahana dia tena ilaina amin'ny fampisehoana. naoty ambony indrindra:

Ny teoria sy ny fampiharana ny fampiasana HBase
Eny ary, farany, andeha hojerentsika ny maodelin'ny sakana izay natao voalohany nahazo ary avy eo apetraka:

Ny teoria sy ny fampiharana ny fampiasana HBase
Ny paramètre rehetra dia manan-danja eto. Ary ny vokatry ny mpitarika:

Ny teoria sy ny fampiharana ny fampiasana HBase

9. Fitsapana entana

Eny, amin'ny farany dia handefa entana mendrika kokoa na latsaka kely izahay, saingy mahaliana kokoa hatrany izany rehefa manana zavatra ampitahaina ianao. Ao amin'ny tranokalan'ny DataStax, ilay mpamorona lehibe an'i Cassandra, dia misy ny vokatra NT amin'ny fitahirizana NoSQL maromaro, anisan'izany ny HBase version 0.98.6-1. Ny fandefasana dia natao tamin'ny kofehy 40, ny haben'ny angona 100 bytes, ny kapila SSD. Ny valin'ny fitsapana ny asa Read-Modify-Write dia naneho ireto valiny manaraka ireto.

Ny teoria sy ny fampiharana ny fampiasana HBase
Raha ny fahazoako azy, ny famakiana dia natao tamin'ny blocs misy rakitsoratra 100 ary ho an'ny 16 HBase nodes, ny fitsapana DataStax dia nampiseho fampandehanana 10 arivo isan-tsegondra.

Soa ihany fa manana nodes 16 ihany koa ny cluster misy antsika, saingy tsy dia "tsara vintana" fa samy manana cores (kofehy) 64 ny tsirairay, fa amin'ny fitsapana DataStax dia misy 4 fotsiny. na mihoatra ny dikan-teny vaovao amin'ny HBase sy ny fampiasana CPU mandritra ny enta-mavesatra dia saika tsy nitombo be (amin'ny fahitana 5-10 isan-jato). Na izany aza, andeha isika hiezaka ny hanomboka hampiasa an'io fanitsiana io. Fikirana latabatra Default, ny famakiana dia atao amin'ny 0 ka hatramin'ny 50 tapitrisa kisendrasendra (izany hoe, vaovao isaky ny mandeha). Ny latabatra dia misy rakitsoratra 50 tapitrisa, mizara ho fizarana 64. Ny lakile dia asiana crc32. Ny firafitry ny latabatra dia default, ny MSLAB dia alefa. Manokatra kofehy 40, ny kofehy tsirairay dia mamaky andiana fanalahidy kisendrasendra 100 ary manoratra avy hatrany ny 100 bytes naverina amin'ireo fanalahidy ireo.

Ny teoria sy ny fampiharana ny fampiasana HBase
Mijoro: 16 DataNode sy 16 RS (CPU Xeon E5-2680 v4 @ 2.40GHz * kofehy 64). HBase version 1.2.0-cdh5.14.2.

Ny vokatra eo ho eo dia manakaiky ny 40 arivo asa isan-tsegondra, izay tsara kokoa noho ny amin'ny fitsapana DataStax. Na izany aza, ho an'ny tanjona andrana, azonao atao ny manova kely ny fepetra. Tsy azo inoana fa amin'ny latabatra iray ihany no hanaovana ny asa rehetra, ary amin'ny fanalahidy tokana ihany koa. Andeha hojerentsika fa misy andiana fanalahidy "mafana" izay miteraka ny entana lehibe. Noho izany, andeha isika hiezaka hamorona enta-mavesatra miaraka amin'ny rakitra lehibe kokoa (10 KB), ary ao anatin'ny andiany 100, amin'ny latabatra 4 samihafa ary mametra ny isan'ireo fanalahidy nangatahana ho 50 arivo. andiana fanalahidy 40 ary avy hatrany dia manoratra kisendrasendra 100 KB amin'ireo fanalahidy ireo.

Ny teoria sy ny fampiharana ny fampiasana HBase
Mijoro: 16 DataNode sy 16 RS (CPU Xeon E5-2680 v4 @ 2.40GHz * kofehy 64). HBase version 1.2.0-cdh5.14.2.

Nandritra ny enta-mavesatra dia natomboka imbetsaka ny famatrarana lehibe, araka ny aseho etsy ambony, raha tsy misy an'io fomba fiasa io, dia hiharatsy tsikelikely ny fahombiazany, na izany aza, misy enta-mavesatra fanampiny mipoitra mandritra ny famonoana. Ny fisintonana dia vokatry ny antony samihafa. Indraindray dia tapitra niasa ny kofehy ary nisy fiatoana teo am-panombohana azy ireo, indraindray ny fampiharana avy amin'ny antoko fahatelo dia namorona enta-mavesatra teo amin'ny cluster.

Ny famakiana sy fanoratana avy hatrany dia iray amin'ireo toe-javatra sarotra indrindra ho an'ny HBase. Raha manao fangatahana kely fotsiny ianao, ohatra 100 bytes, manambatra azy ireo amin'ny fonosana 10-50 arivo, dia afaka mahazo asa an'hetsiny isan-tsegondra ianao, ary mitovy amin'ny fangatahana vakiana fotsiny ny toe-javatra. Tsara ny manamarika fa ny vokatra dia tsara kokoa noho ny azon'ny DataStax, indrindra noho ny fangatahana amin'ny blocs 50 arivo.

Ny teoria sy ny fampiharana ny fampiasana HBase
Mijoro: 16 DataNode sy 16 RS (CPU Xeon E5-2680 v4 @ 2.40GHz * kofehy 64). HBase version 1.2.0-cdh5.14.2.

10. hita

Ity rafitra ity dia azo amboarina mora foana, saingy mbola tsy fantatra ny fiantraikan'ny marika marobe. Ny sasany tamin'izy ireo dia nosedraina, saingy tsy tafiditra tao anatin'ny andrana navoaka. Ohatra, ny andrana savaranonando dia nampiseho tsy dia misy dikany firy amin'ny paramètre toy ny DATA_BLOCK_ENCODING, izay mandika ny fampahalalana amin'ny fampiasana soatoavina avy amin'ny sela mifanolo-bodirindrina, izay azo takarina amin'ny angon-drakitra noforonina kisendrasendra. Raha mampiasa zavatra dika mitovy be dia be ianao, dia mety ho lehibe ny tombony. Amin'ny ankapobeny, azontsika atao ny milaza fa ny HBase dia manome ny fahatsapana ny angon-drakitra matotra sy voahevitra tsara, izay mety hahavokatra be rehefa manao asa miaraka amin'ny angon-drakitra lehibe. Indrindra raha azo atao ny manasaraka ny fomba famakiana sy fanoratana ara-potoana.

Raha misy zavatra tsy ambara loatra araka ny hevitrao dia vonona ny hilaza aminao amin'ny antsipiriany kokoa aho. Manasa anao izahay hizara ny traikefanao na hifanakalo hevitra raha misy zavatra tsy mitovy hevitra aminao.

Source: www.habr.com

Add a comment