Chiphunzitso ndi machitidwe ogwiritsira ntchito HBase

Masana abwino Dzina langa ndi Danil Lipovoy, gulu lathu ku Sbertech linayamba kugwiritsa ntchito HBase monga yosungirako deta yogwira ntchito. M'kupita kwanthawi yophunzira, zokumana nazo zawonjezeka zomwe ndimafuna kulinganiza ndikulongosola (tikukhulupirira kuti zikhala zothandiza kwa ambiri). Zoyesera zonse pansipa zidachitidwa ndi mitundu ya HBase 1.2.0-cdh5.14.2 ndi 2.0.0-cdh6.0.0-beta1.

  1. General zomangamanga
  2. Kulembera deta ku HBASE
  3. Kuwerenga deta kuchokera ku HBASE
  4. Data Caching
  5. Kusintha kwa data ya batch MultiGet/MultiPut
  6. Njira yogawa matebulo kukhala zigawo (kugawikana)
  7. Kulekerera zolakwika, kuphatikizika ndi malo a data
  8. Zokonda ndi machitidwe
  9. Kuyesa Kupanikizika
  10. anapezazo

1. Kamangidwe kake

Chiphunzitso ndi machitidwe ogwiritsira ntchito HBase
Master Backup imamvera kugunda kwa mtima kwa yemwe akugwira ntchito pa ZooKeeper node ndipo, zikasowa, amatenga ntchito za mbuye.

2. Lembani deta ku HBASE

Choyamba, tiyeni tiwone vuto losavuta - kulemba chinthu chamtengo wapatali patebulo pogwiritsa ntchito put(rowkey). Wofuna chithandizo ayenera choyamba kudziwa kumene Root Region Server (RRS), yomwe imasungira hbase:meta table, ilipo. Amalandila izi kuchokera ku ZooKeeper. Pambuyo pake imapeza RRS ndikuwerenga hbase:meta table, momwe imachotsamo zambiri za RegionServer (RS) yomwe ili ndi udindo wosunga deta ya rowkey yopatsidwa pa tebulo lachidwi. Kuti mugwiritse ntchito mtsogolo, tebulo la meta limasungidwa ndi kasitomala ndipo chifukwa chake mafoni otsatira amapita mwachangu, mwachindunji ku RS.

Chotsatira, RS, atalandira pempho, choyamba amalembera kwa WriteAheadLog (WAL), yomwe ndi yofunikira kuti mubwezeretsedwe pakagwa ngozi. Kenako amasunga deta ku MemStore. Ichi ndi buffer mu kukumbukira yomwe ili ndi makiyi osanjidwa a chigawo china. Gome litha kugawidwa m'magawo (magawo), omwe ali ndi makiyi osagwirizana. Izi zimakupatsani mwayi woyika zigawo pamaseva osiyanasiyana kuti mukwaniritse magwiridwe antchito apamwamba. Komabe, ngakhale kuti mawuwa akuwonekera, tidzawona pambuyo pake kuti izi sizikugwira ntchito muzochitika zonse.

Pambuyo poyika cholowera mu MemStore, yankho limabwezeredwa kwa kasitomala kuti kulowa kwake kudasungidwa bwino. Komabe, zenizeni zimangosungidwa mu buffer ndipo zimafika pa diski pakapita nthawi inayake kapena ikadzazidwa ndi deta yatsopano.

Chiphunzitso ndi machitidwe ogwiritsira ntchito HBase
Pamene akuchita "Chotsani" ntchito, deta si thupi zichotsedwa. Amangolembedwa kuti achotsedwa, ndipo chiwonongeko chokha chimachitika panthawi yoyitanitsa ntchito yayikulu, yomwe ikufotokozedwa mwatsatanetsatane mundime 7.

Mafayilo amtundu wa HFile amasonkhanitsidwa mu HDFS ndipo nthawi ndi nthawi njira yaying'ono yaying'ono imayambika, yomwe imangophatikiza mafayilo ang'onoang'ono kukhala akuluakulu osachotsa chilichonse. M'kupita kwa nthawi, izi zimasanduka vuto lomwe limangowonekera powerenga deta (tidzabweranso ku izi posachedwa).

Kuphatikiza pa kutsitsa komwe tafotokoza pamwambapa, pali njira yothandiza kwambiri, yomwe mwina ndi mbali yamphamvu kwambiri ya database iyi - BulkLoad. Zili m'chakuti timapanga ma HFiles paokha ndikuyika pa disk, zomwe zimatilola kuti tizitha kuchita bwino kwambiri ndikukwaniritsa liwiro labwino kwambiri. M'malo mwake, malire pano si HBase, koma kuthekera kwa hardware. Pansipa pali zotsatira za boot pamagulu opangidwa ndi 16 RegionServers ndi 16 NodeManager YARN (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 threads), HBase version 1.2.0-cdh5.14.2.

Chiphunzitso ndi machitidwe ogwiritsira ntchito HBase

Apa mutha kuwona kuti powonjezera kuchuluka kwa magawo (zigawo) patebulo, komanso opha Spark, timapeza liwiro lotsitsa. Komanso liwiro limadalira voliyumu yojambulira. Mipiringidzo yayikulu imapereka kuchuluka kwa MB/sec, midadada yaying'ono mu kuchuluka kwa zolemba zomwe zayikidwa pagawo la nthawi, zinthu zina zonse kukhala zofanana.

Mukhozanso kuyamba Kutsitsa mu matebulo awiri nthawi imodzi ndikupeza liwiro lowirikiza. Pansipa mutha kuwona kuti kulemba midadada ya 10 KB kumatebulo awiri nthawi imodzi kumachitika pa liwiro la 600 MB/mphindi iliyonse (okwana 1275 MB/sec), zomwe zimagwirizana ndi liwiro lolemba patebulo limodzi 623 MB/mphindi (onani No. 11 pamwambapa)

Chiphunzitso ndi machitidwe ogwiritsira ntchito HBase
Koma kuthamanga kwachiwiri ndi zolemba za 50 KB kumasonyeza kuti liwiro lotsitsa likukula pang'ono, zomwe zimasonyeza kuti zikuyandikira malire. Panthawi imodzimodziyo, muyenera kukumbukira kuti palibe katundu wopangidwa pa HBASE palokha, zomwe zimafunika kuti mupereke deta kuchokera ku hbase:meta, ndipo mutatha kupanga HFiles, yambitsaninso deta ya BlockCache ndikusunga MemStore buffer ku disk, ngati ilibe kanthu.

3. Kuwerenga deta kuchokera ku HBASE

Ngati tikuganiza kuti kasitomala ali kale ndi chidziwitso chonse kuchokera ku hbase: meta (onani mfundo 2), ndiye pempholo likupita mwachindunji ku RS kumene fungulo lofunikira limasungidwa. Choyamba, kusaka kumachitika mu MemCache. Mosasamala kanthu kuti pali deta pamenepo kapena ayi, kufufuza kumachitidwanso mu BlockCache buffer ndipo, ngati kuli kofunikira, mu HFiles. Ngati deta inapezeka mu fayilo, imayikidwa mu BlockCache ndipo idzabwezeredwa mofulumira pa pempho lotsatira. Kusaka mu HFile ndikofulumira chifukwa chogwiritsa ntchito fyuluta ya Bloom, i.e. atawerenga pang'ono deta, nthawi yomweyo amazindikira ngati fayilo ili ndi fungulo lofunikira ndipo ngati sichoncho, ndikusunthira ku yotsatira.

Chiphunzitso ndi machitidwe ogwiritsira ntchito HBase
Atalandira deta kuchokera kuzinthu zitatuzi, RS imapanga yankho. Makamaka, akhoza kusamutsa angapo anapeza Mabaibulo chinthu kamodzi ngati kasitomala anapempha Mabaibulo.

4. Kusunga deta

Ma buffers a MemStore ndi BlockCache amakhala mpaka 80% ya kukumbukira kwa RS komwe kumaperekedwa (zotsalazo zimasungidwa ntchito za RS). Ngati njira yogwiritsira ntchito ndiyomwe imalemba ndikuwerenga zomwezo nthawi yomweyo, ndiye kuti ndizomveka kuchepetsa BlockCache ndikuwonjezera MemStore, chifukwa. Kulemba deta sikulowa mu cache kuti muwerenge, BlockCache idzagwiritsidwa ntchito kawirikawiri. Buffer ya BlockCache ili ndi magawo awiri: LruBlockCache (nthawi zonse pa-mulu) ndi BucketCache (nthawi zambiri imachoka mulu kapena pa SSD). BucketCache iyenera kugwiritsidwa ntchito ngati pali zopempha zambiri zowerengera ndipo sizikugwirizana ndi LruBlockCache, zomwe zimatsogolera ku ntchito yogwira ntchito ya Osonkhanitsa Zinyalala. Nthawi yomweyo, simuyenera kuyembekezera kuwonjezeka kwakukulu kwa magwiridwe antchito pogwiritsa ntchito cache yowerengera, koma tibwerera ku izi mu ndime 8.

Chiphunzitso ndi machitidwe ogwiritsira ntchito HBase
Pali BlockCache imodzi ya RS yonse, ndipo pali MemStore imodzi pa tebulo lililonse (limodzi pa Gulu lililonse la Banja).

Kodi anafotokoza mwachidziwitso, polemba, deta siyilowa mu cache ndipo ndithudi, magawo oterowo CACHE_DATA_ON_WRITE patebulo ndi "Cache DATA pa Kulemba" kwa RS ayikidwa kukhala zabodza. Komabe, m'machitidwe, ngati tilembera deta ku MemStore, kenako ndikuyiyika pa disk (potero kuichotsa), ndiyeno chotsani fayilo yomwe mwapeza, ndiye pochita pempho tidzalandila bwino detayo. Komanso, ngakhale mutayimitsa BlockCache ndikudzaza tebulo ndi deta yatsopano, kenaka yambitsaninso MemStore ku disk, kuwachotsa ndikuwapempha ku gawo lina, adzabwezedwa kwinakwake. Chifukwa chake HBase imasunga osati zidziwitso zokha, komanso zinsinsi zachinsinsi.

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

Magawo a "Cache DATA on Read" asinthidwa kukhala zabodza. Ngati muli ndi malingaliro, olandiridwa kuti mukambirane mu ndemanga.

5. Kusintha kwa data ya batch MultiGet/MultiPut

Kukonza zopempha kamodzi (Pezani / Ikani / Chotsani) ndi ntchito yodula kwambiri, kotero ngati n'kotheka, muyenera kuwaphatikiza kukhala List kapena List, zomwe zimakupatsani mwayi wopititsa patsogolo ntchito. Izi ndi zoona makamaka pa ntchito yolemba, koma powerenga pali zovuta zotsatirazi. Chithunzi chomwe chili pansipa chikuwonetsa nthawi yowerengera zolemba za 50 kuchokera ku MemStore. Kuwerenga kunachitika mu ulusi umodzi ndipo nsonga yopingasa imasonyeza chiwerengero cha makiyi mu pempho. Apa mutha kuwona kuti pakuwonjezeka mpaka makiyi chikwi mu pempho limodzi, nthawi yakupha imatsika, i.e. liwiro limawonjezeka. Komabe, ndi mawonekedwe a MSLAB omwe amathandizidwa mwachisawawa, pambuyo pa gawoli kutsika kwakukulu kwa ntchito kumayamba, ndipo kuchuluka kwa deta muzolemba, kumatenga nthawi yayitali.

Chiphunzitso ndi machitidwe ogwiritsira ntchito HBase

Mayesero anachitidwa pa makina enieni, 8 cores, version HBase 2.0.0-cdh6.0.0-beta1.

Njira ya MSLAB idapangidwa kuti ichepetse kugawika kwa milu, komwe kumachitika chifukwa cha kusakanikirana kwa data ya m'badwo watsopano ndi wakale. Monga njira yogwirira ntchito, MSLAB ikayatsidwa, deta imayikidwa m'maselo ang'onoang'ono (chunks) ndikusinthidwa mu chunks. Chotsatira chake, pamene voliyumu mu paketi ya deta yofunsidwa iposa kukula kwake, ntchito imatsika kwambiri. Kumbali ina, kuzimitsa izi sikoyeneranso, chifukwa kumapangitsa kuyimitsidwa chifukwa cha GC panthawi yakukonza kwambiri deta. Yankho labwino ndikuwonjezera kuchuluka kwa cell polemba mwachangu kudzera pakuyika nthawi yomweyo kuwerenga. Ndizofunikira kudziwa kuti vutoli silichitika ngati, mutatha kujambula, muthamangitsa lamulo la flush, lomwe limabwezeretsanso MemStore ku disk, kapena ngati mutsegula pogwiritsa ntchito BulkLoad. Gome ili m'munsiyi likuwonetsa kuti mafunso ochokera ku MemStore pa data yayikulu (komanso yofanana) imabweretsa kuchepa. Komabe, powonjezera chunksize timabwezeretsa nthawi yokonza kuti ikhale yabwinobwino.

Chiphunzitso ndi machitidwe ogwiritsira ntchito HBase
Kuwonjezera pa kuonjezera chunksize, kugawanitsa deta ndi dera kumathandiza, i.e. kugawanika kwa tebulo. Izi zimapangitsa kuti zopempha zochepa zibwere kudera lililonse ndipo ngati zikwanira mu selo, kuyankha kumakhalabe kwabwino.

6. Njira yogawa matebulo kukhala zigawo (kugawikana)

Popeza HBase ndi malo osungiramo zinthu zofunika kwambiri ndipo kugawa kumayendetsedwa ndi kiyi, ndikofunikira kwambiri kugawa deta mofanana m'madera onse. Mwachitsanzo, kugawa tebulo lotere kukhala magawo atatu kupangitsa kuti deta igawidwe m'magawo atatu:

Chiphunzitso ndi machitidwe ogwiritsira ntchito HBase
Izi zimachitika kuti izi zimabweretsa kutsika kwakukulu ngati zomwe zatsitsidwa pambuyo pake zimawoneka ngati, mwachitsanzo, zikhalidwe zazitali, zambiri zimayambira ndi manambala omwewo, mwachitsanzo:

1000001
1000002
...
1100003

Popeza makiyi amasungidwa ngati gulu laling'ono, onse ayamba chimodzimodzi ndikukhala gawo limodzi #1 kusunga makiyi awa. Pali njira zingapo zogawanitsa:

HexStringSplit - Imatembenuza fungulo kukhala chingwe cha hexadecimal encoded "00000000" => "FFFFFFFF" ndikuyika kumanzere ndi ziro.

UniformSplit - Imatembenuza fungulo kukhala gulu la byte ndi hexadecimal encoding mu "00" => "FF" ndikuyika kumanja ndi ziro.

Kuphatikiza apo, mutha kufotokozera mtundu uliwonse kapena seti ya makiyi ogawa ndikusintha kugawikana kwadzidzidzi. Komabe, imodzi mwa njira zosavuta komanso zogwira mtima kwambiri ndi UniformSplit ndikugwiritsa ntchito hashi concatenation, mwachitsanzo ma byte ofunikira kwambiri poyendetsa kiyi kudzera pa CRC32(rowkey) ntchito ndi rowkey yokha:

hash + rowkey

Kenako deta yonse idzagawidwa mofanana m'madera onse. Powerenga, ma byte awiri oyamba amangotayidwa ndipo kiyi yoyambirira imakhalabe. RS imayang'aniranso kuchuluka kwa deta ndi makiyi m'derali ndipo, ngati malire adutsa, amawaphwanya m'magawo.

7. Kulekerera zolakwika ndi malo a data

Popeza dera limodzi lokha ndilomwe limayang'anira makiyi aliwonse, njira yothetsera mavuto okhudzana ndi kuwonongeka kwa RS kapena kuchotsedwa ntchito ndikusunga zonse zofunika mu HDFS. RS ikagwa, mbuyeyo amazindikira izi chifukwa chosowa kugunda kwa mtima pa ZooKeeper node. Kenako imagawira chigawo chotumizidwa ku RS ​​ena ndipo popeza ma HFiles amasungidwa m'mafayilo ogawidwa, mwiniwakeyo amawawerenga ndikupitilizabe kutumizira deta. Komabe, popeza zina mwazinthuzo zikhoza kukhala mu MemStore ndipo zinalibe nthawi yolowa mu HFiles, WAL, yomwe imasungidwanso mu HDFS, imagwiritsidwa ntchito kubwezeretsa mbiri ya ntchito. Zosinthazo zitagwiritsidwa ntchito, RS imatha kuyankha zopempha, koma kusunthaku kumabweretsa kuti zina mwazinthu zomwe zimawathandizira zimathera pazigawo zosiyanasiyana, i.e. malo akuchepa.

Njira yothetsera vutoli ndi kuphatikizika kwakukulu - njirayi imasuntha mafayilo kumalo omwe ali ndi udindo (kumene madera awo ali), chifukwa chake panthawiyi katundu pa intaneti ndi ma disks amawonjezeka kwambiri. Komabe, m'tsogolomu, mwayi wopeza deta ukuwonjezeka kwambiri. Kuphatikiza apo, major_compaction amachita kuphatikiza ma HFiles onse kukhala fayilo imodzi mkati mwa dera, komanso kuyeretsa deta kutengera makonzedwe a tebulo. Mwachitsanzo, mukhoza kufotokoza chiwerengero cha mitundu ya chinthu chomwe chiyenera kusungidwa kapena moyo wonse pambuyo pake chinthucho chidzachotsedwa.

Izi zitha kukhala ndi zotsatira zabwino kwambiri pakugwira ntchito kwa HBase. Chithunzi chili m'munsichi chikuwonetsa momwe magwiridwe antchito adatsikira chifukwa chojambulira deta yogwira ntchito. Apa mutha kuwona momwe ulusi 40 udalembera patebulo limodzi ndi ulusi 40 nthawi imodzi yowerengera deta. Ulusi wolembera umatulutsa ma HFiles ochulukirapo, omwe amawerengedwa ndi ulusi wina. Zotsatira zake, deta yowonjezereka iyenera kuchotsedwa pamtima ndipo pamapeto pake GC imayamba kugwira ntchito, zomwe zimalepheretsa ntchito yonse. Kukhazikitsidwa kwa compaction kwakukulu kunapangitsa kuti zinyalala zomwe zidachitikazo zichotsedwe ndikubwezeretsanso zokolola.

Chiphunzitso ndi machitidwe ogwiritsira ntchito HBase
Kuyesedwa kunachitika pa 3 DataNodes ndi 4 RS (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 ulusi). Mtundu wa HBase 1.2.0-cdh5.14.2

Ndizofunikira kudziwa kuti kuphatikizika kwakukulu kunayambika patebulo la "moyo", momwe deta idalembedwera ndikuwerengedwa mwachangu. Panali mawu pa intaneti kuti izi zingayambitse kuyankha kolakwika powerenga deta. Kuti muwone, njira idakhazikitsidwa yomwe idatulutsa zatsopano ndikuzilemba patebulo. Pambuyo pake ndinawerenga nthawi yomweyo ndikufufuza ngati mtengo wake ukugwirizana ndi zomwe zinalembedwa. Pamene izi zinkachitika, kugwirizanitsa kwakukulu kunayendetsedwa pafupifupi maulendo 200 ndipo palibe kulephera kamodzi komwe kunalembedwa. Mwina vutoli limapezeka kawirikawiri komanso panthawi yolemetsa kwambiri, choncho ndibwino kuti muyimitse kulemba ndi kuwerenga monga momwe munakonzera ndikuchita zoyeretsa kuti muteteze GC drawdowns.

Komanso, kuphatikizika kwakukulu sikukhudza mkhalidwe wa MemStore; kuti muyike ku disk ndikuyiphatikiza, muyenera kugwiritsa ntchito flush (connection.getAdmin().flush(TableName.valueOf(tblName))).

8. Zokonda ndi machitidwe

Monga tanenera kale, HBase ikuwonetsa kupambana kwake kwakukulu komwe sikuyenera kuchita kalikonse, pochita BulkLoad. Komabe, izi zimagwira ntchito kwa machitidwe ambiri ndi anthu. Komabe, chida ichi ndi choyenera kwambiri kusunga deta mochulukira muzitsulo zazikulu, pamene ngati ndondomekoyo ikufuna maulendo angapo opikisana owerengera ndi kulemba, malamulo a Get ndi Put omwe afotokozedwa pamwambapa amagwiritsidwa ntchito. Kuti mudziwe magawo abwino, zoyambitsa zidachitika ndi mitundu yosiyanasiyana ya magawo ndi zoikamo:

  • Ulusi 10 unayambika nthawi imodzi 3 motsatizana (tiyeni titchule izi ngati ulusi).
  • Nthawi yogwiritsira ntchito ulusi uliwonse mu block inali yowerengeka ndipo inali zotsatira zomaliza za ntchito ya block.
  • Ulusi wonse unagwira ntchito ndi tebulo lomwelo.
  • Kusanayambe kuyambika kwa ulusi uliwonse, kugwirizanitsa kwakukulu kunkachitika.
  • Chida chilichonse chimagwira ntchito imodzi yokha mwa izi:

β€”Kuyika
β€”Pezani
-Pezani + Ikani

  • Chida chilichonse chidachita kubwereza 50 kwa ntchito yake.
  • Kukula kwa block ya mbiri ndi 100 byte, 1000 byte kapena 10000 byte (mwachisawawa).
  • Mibuko idakhazikitsidwa ndi manambala osiyanasiyana a makiyi omwe adafunsidwa (kaya kiyi imodzi kapena 10).
  • Ma midadada amayendetsedwa pansi pamitundu yosiyanasiyana ya tebulo. Ma parameter asinthidwa:

- BlockCache = kuyatsa kapena kuzimitsa
- BlockSize = 65 KB kapena 16 KB
- Gawo = 1, 5 kapena 30
- MSLAB = yothandizidwa kapena yolephereka

Chifukwa chake block ikuwoneka motere:

a. MSLAB mode adayatsidwa/kuzimitsa.
b. Gome linapangidwira lomwe magawo otsatirawa adakhazikitsidwa: BlockCache = zoona / palibe, BlockSize = 65/16 Kb, Partition = 1/5/30.
c. Kuponderezedwa kunakhazikitsidwa ku GZ.
d. Ulusi 10 unayambika nthawi imodzi ndikuchita 1/10 put/get/get+ika ntchito patebuloli ndi ma 100/1000/10000 byte, kuchita mafunso 50 motsatizana (makiyi osasintha).
e. Mfundo d inabwerezedwa katatu.
f. Nthawi yogwira ntchito ya ulusi wonse inali pafupifupi.

Zosakaniza zonse zomwe zingatheke zinayesedwa. Ndizodziwikiratu kuti liwiro lidzatsika pamene kukula kwa mbiriyo kukukulirakulira, kapena kuti kuletsa caching kungayambitse kuchepa. Komabe, cholinga chake chinali kumvetsetsa digiri ndi kufunikira kwa chikoka cha parameter iliyonse, kotero deta yosonkhanitsidwa idadyetsedwa muzolowera za mzere wobwerezabwereza, zomwe zimapangitsa kuti athe kuyesa kufunikira pogwiritsa ntchito t-statistics. M'munsimu muli zotsatira za midadada yomwe ikugwira ntchito za Put. Zosakaniza zonse 2 * 2 * 3 * 2 * 3 = 144 zosankha + 72 tk. zina zidachitika kawiri. Chifukwa chake, pali maulendo 216 onse:

Chiphunzitso ndi machitidwe ogwiritsira ntchito HBase
Kuyesa kunachitika pagulu laling'ono lokhala ndi 3 DataNodes ndi 4 RS (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 ulusi). Mtundu wa HBase 1.2.0-cdh5.14.2.

Kuthamanga kwapamwamba kwambiri kwa masekondi a 3.7 kunapezedwa ndi njira ya MSLAB yozimitsidwa, patebulo ndi gawo limodzi, ndi BlockCache yathandizidwa, BlockSize = 16, zolemba za 100 byte, zidutswa za 10 pa paketi.
Kuthamanga kotsika kwambiri kwa 82.8 sec kunapezedwa ndi mawonekedwe a MSLAB, patebulo lokhala ndi gawo limodzi, ndi BlockCache yathandizidwa, BlockSize = 16, zolemba za 10000 byte, 1 iliyonse.

Tsopano tiyeni tione chitsanzo. Tikuwona zabwino zachitsanzo zochokera ku R2, koma zikuwonekeratu kuti extrapolation ndi contraindicated pano. Makhalidwe enieni a dongosolo pamene magawo asintha sadzakhala mzere; chitsanzochi ndichofunika osati kulosera, koma kumvetsetsa zomwe zinachitika mkati mwa magawo omwe aperekedwa. Mwachitsanzo, apa tikuwona kuchokera muyeso la Wophunzira kuti magawo a BlockSize ndi BlockCache alibe kanthu pa ntchito ya Put (yomwe nthawi zambiri imakhala yodziwikiratu):

Chiphunzitso ndi machitidwe ogwiritsira ntchito HBase
Koma kuti kuwonjezera chiwerengero cha magawo kumabweretsa kuchepa kwa ntchito ndizosayembekezereka (tawona kale zotsatira zabwino zowonjezera chiwerengero cha magawo ndi BulkLoad), ngakhale zomveka. Choyamba, pokonza, muyenera kupanga zopempha ku zigawo za 30 m'malo mwa chimodzi, ndipo kuchuluka kwa deta sikutanthauza kuti izi zidzapindula. Kachiwiri, nthawi yonse yogwira ntchito imatsimikiziridwa ndi RS yochedwa kwambiri, ndipo popeza chiwerengero cha DataNodes ndi chocheperapo chiwerengero cha RSs, madera ena ali ndi malo a zero. Chabwino, tiyeni tiwone zisanu zapamwamba:

Chiphunzitso ndi machitidwe ogwiritsira ntchito HBase
Tsopano tiyeni tiwone zotsatira zakuchita Get blocks:

Chiphunzitso ndi machitidwe ogwiritsira ntchito HBase
Chiwerengero cha magawo ataya kufunikira, zomwe mwina zimafotokozedwa ndi mfundo yakuti deta imasungidwa bwino ndipo chosungira chowerengedwa ndicho chofunikira kwambiri (chiwerengero) parameter. Mwachibadwa, kuwonjezera chiwerengero cha mauthenga mu pempho kumathandizanso kwambiri pa ntchito. Zigoli zapamwamba:

Chiphunzitso ndi machitidwe ogwiritsira ntchito HBase
Chabwino, potsiriza, tiyeni tiwone chitsanzo cha chipika chomwe chinayambika choyamba kupeza ndikuyika:

Chiphunzitso ndi machitidwe ogwiritsira ntchito HBase
Ma parameters onse ndi ofunika apa. Ndipo zotsatira za atsogoleri:

Chiphunzitso ndi machitidwe ogwiritsira ntchito HBase

9. Kuyesa kwa katundu

Chabwino, potsiriza tidzayambitsa katundu wabwino kwambiri kapena wocheperako, koma zimakhala zosangalatsa kwambiri mukakhala ndi chinachake choti mufananize nacho. Patsamba la DataStax, wopanga wamkulu wa Cassandra, alipo Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ NT mwa angapo NoSQL storages, kuphatikizapo HBase version 0.98.6-1. Kutsitsa kunkachitika ndi ulusi 40, kukula kwa data 100 byte, ma disks a SSD. Zotsatira za kuyesa ntchito za Read-Modify-Write zinawonetsa zotsatira zotsatirazi.

Chiphunzitso ndi machitidwe ogwiritsira ntchito HBase
Momwe ndikumvera, kuwerenga kunkachitika m'mabuku a zolemba za 100 ndi ma node a 16 HBase, kuyesa kwa DataStax kunasonyeza ntchito za 10 zikwi pa sekondi iliyonse.

Ndibwino kuti gulu lathu limakhalanso ndi mfundo za 16, koma si "mwayi" kwambiri kuti aliyense ali ndi 64 cores (ulusi), pamene muyeso la DataStax pali 4 okha. Komano, ali ndi ma drive a SSD, pamene tili ndi HDDs. kapena kupitilira apo mtundu watsopano wa HBase ndi kugwiritsa ntchito CPU pakunyamula sikunachuluke kwambiri (zowoneka ndi 5-10 peresenti). Komabe, tiyeni tiyese kuyamba kugwiritsa ntchito kasinthidwe. Zokonda patebulo losasinthika, kuwerengera kumachitika pamlingo woyambira 0 mpaka 50 miliyoni mwachisawawa (ie, zatsopano nthawi iliyonse). Gome ili ndi zolemba 50 miliyoni, zogawidwa m'magawo 64. Makiyi amathamangitsidwa pogwiritsa ntchito crc32. Zokonda patebulo ndizokhazikika, MSLAB imayatsidwa. Kuyambitsa ulusi 40, ulusi uliwonse umawerenga makiyi 100 osasintha ndipo nthawi yomweyo amalemba ma byte 100 opangidwa kubwerera ku makiyi awa.

Chiphunzitso ndi machitidwe ogwiritsira ntchito HBase
Imani: 16 DataNode ndi 16 RS (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 ulusi). Mtundu wa HBase 1.2.0-cdh5.14.2.

Zotsatira zapakati zili pafupi ndi ntchito za 40 zikwi pamphindi, zomwe ziri bwino kwambiri kusiyana ndi kuyesa kwa DataStax. Komabe, pazolinga zoyeserera, mutha kusintha pang'ono mikhalidwe. Ndizokayikitsa kuti ntchito zonse zizichitika patebulo limodzi, komanso pamakiyi apadera. Tiyerekeze kuti pali makiyi "otentha" omwe amapanga katundu wamkulu. Choncho, tiyeni tiyese kupanga katundu ndi zolemba zazikulu (10 KB), komanso mu magulu a 100, mu 4 matebulo osiyanasiyana ndi kuchepetsa osiyanasiyana makiyi anapempha 50 zikwi. makiyi 40 ndipo nthawi yomweyo amalemba 100 KB mwachisawawa pamakiyi awa kumbuyo.

Chiphunzitso ndi machitidwe ogwiritsira ntchito HBase
Imani: 16 DataNode ndi 16 RS (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 ulusi). Mtundu wa HBase 1.2.0-cdh5.14.2.

Panthawi yonyamula katunduyo, kuphatikizika kwakukulu kunayambika kangapo, monga momwe tawonetsera pamwambapa, popanda ndondomekoyi, ntchitoyo idzawonongeka pang'onopang'ono, komabe, katundu wowonjezera amawonekeranso panthawi ya kuphedwa. Matendawa amayamba chifukwa cha zifukwa zosiyanasiyana. Nthawi zina ulusiwo udatha kugwira ntchito ndipo pamakhala kuyimitsa pomwe adayambiranso, nthawi zina mapulogalamu a chipani chachitatu amapanga katundu pagulu.

Kuwerenga ndi kulemba nthawi yomweyo ndi imodzi mwazinthu zovuta kwambiri pantchito ya HBase. Ngati mungopanga zopempha zazing'ono, mwachitsanzo ma byte 100, kuwaphatikiza m'mapaketi a zidutswa za 10-50, mukhoza kupeza mazana a ntchito pa sekondi imodzi, ndipo momwemo ndi zofanana ndi zopempha zowerengera zokha. Ndizofunikira kudziwa kuti zotsatira zake ndizabwino kwambiri kuposa zomwe zidapezedwa ndi DataStax, koposa zonse chifukwa cha zopempha mu midadada ya 50 zikwi.

Chiphunzitso ndi machitidwe ogwiritsira ntchito HBase
Imani: 16 DataNode ndi 16 RS (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 ulusi). Mtundu wa HBase 1.2.0-cdh5.14.2.

10. Mapeto

Dongosololi limakonzedwa mosinthika, koma chikoka cha magawo ambiri sichikudziwikabe. Ena a iwo adayesedwa, koma sanaphatikizidwe mu zotsatira zoyeserera. Mwachitsanzo, zoyeserera zoyambira zidawonetsa kufunikira kocheperako kwa magawo monga DATA_BLOCK_ENCODING, omwe amasunga zidziwitso pogwiritsa ntchito ma cell oyandikana nawo, zomwe zimamveka ndi data yopangidwa mwachisawawa. Ngati mugwiritsa ntchito zinthu zambiri zobwerezabwereza, phindu lingakhale lalikulu. Kawirikawiri, tikhoza kunena kuti HBase imapereka chithunzithunzi cha malo osungirako zinthu zakale komanso oganiza bwino, omwe angakhale opindulitsa kwambiri pochita ntchito ndi midadada yayikulu. Makamaka ngati kuli kotheka kulekanitsa njira zowerengera ndi kulemba munthawi yake.

Ngati pali chinachake m'malingaliro anu chomwe sichinaululidwe mokwanira, ndine wokonzeka kukuuzani mwatsatanetsatane. Tikukupemphani kuti mufotokoze zomwe mwakumana nazo kapena kukambirana ngati simukugwirizana nazo.

Source: www.habr.com

Kuwonjezera ndemanga