Teòiridh agus cleachdadh mu bhith a’ cleachdadh HBase

Feasgar math Is e m ’ainm Danil Lipovoy, thòisich an sgioba againn aig Sbertech a’ cleachdadh HBase mar stòradh airson dàta obrachaidh. Rè a bhith ga sgrùdadh, tha eòlas air cruinneachadh a bha mi airson siostamachadh agus cunntas a thoirt air (tha sinn an dòchas gum bi e feumail dha mòran). Chaidh a h-uile deuchainn gu h-ìosal a dhèanamh le dreachan HBase 1.2.0-cdh5.14.2 agus 2.0.0-cdh6.0.0-beta1.

  1. Ailtireachd coitcheann
  2. A’ sgrìobhadh dàta gu HBASE
  3. A’ leughadh dàta bho HBASE
  4. Tasgadh dàta
  5. Giullachd dàta baidse MultiGet/MultiPut
  6. Ro-innleachd airson bùird a roinn ann an roinnean (sgoltadh)
  7. Fulangas sgàinidhean, dlùthachadh agus sgìre dàta
  8. Suidheachaidhean agus coileanadh
  9. Deuchainn Stress
  10. toraidhean

1. Ailtireachd coitcheann

Teòiridh agus cleachdadh mu bhith a’ cleachdadh HBase
Bidh am Maighstir cùl-taic ag èisteachd ri buille cridhe an neach gnìomhach air nód ZooKeeper agus, ma thèid e à bith, bidh e a’ gabhail thairis gnìomhan a ’mhaighstir.

2. Sgrìobh dàta gu HBASE

An toiseach, leig dhuinn sùil a thoirt air a’ chùis as sìmplidh - a’ sgrìobhadh nì le luach iuchrach gu clàr a’ cleachdadh put (rowkey). Feumaidh an neach-dèiligidh faighinn a-mach an-toiseach far a bheil an Root Region Server (RRS), a bhios a’ stòradh clàr hbase: meta, suidhichte. Tha e a’ faighinn an fhiosrachaidh seo bho ZooKeeper. Às deidh sin bidh e a’ faighinn cothrom air RRS agus a’ leughadh an clàr hbase:meta, às am bi e a’ toirt a-mach fiosrachadh mu dè an RegionServer (RS) a tha an urra ri bhith a’ stòradh dàta airson iuchair iomraidh sònraichte sa chlàr ùidh. Airson a chleachdadh san àm ri teachd, tha an clàr meta air a thasgadh leis an neach-dèiligidh agus mar sin bidh fiosan às deidh sin a’ dol nas luaithe, gu dìreach gu RS.

An ath rud, bidh RS, às deidh dha iarrtas fhaighinn, an toiseach ga sgrìobhadh gu WriteAheadLog (WAL), a tha riatanach airson faighinn seachad air ma thachras tubaist. An uairsin sàbhailidh e an dàta gu MemStore. Is e bufair cuimhne a tha seo anns a bheil seata iuchraichean airson roinn shònraichte. Faodar clàr a roinn ann an roinnean (pàirtean), agus tha seata iuchraichean neo-cheangailte anns gach fear dhiubh. Leigidh seo leat roinnean a chuir air diofar luchd-frithealaidh gus coileanadh nas àirde a choileanadh. Ach, a dh'aindeoin cho follaiseach 'sa tha an aithris seo, chì sinn nas fhaide air adhart nach obraich seo anns a h-uile cùis.

Às deidh dhut inntrigeadh a chuir a-steach don MemStore, thèid freagairt a thilleadh chun neach-dèiligidh gun deach an inntrig a shàbhaladh gu soirbheachail. Ach, ann an da-rìribh tha e air a stòradh a-mhàin ann am bufair agus a 'faighinn chun an diosg a-mhàin an dèidh ùine shònraichte air a dhol seachad no nuair a tha e air a lìonadh le dàta ùr.

Teòiridh agus cleachdadh mu bhith a’ cleachdadh HBase
Nuair a bhios tu a’ coileanadh na h-obrach “Sguab às”, chan eil dàta air a dhubhadh às gu corporra. Tha iad dìreach air an comharrachadh mar a chaidh an sguabadh às, agus tha an sgrios fhèin a’ tachairt aig an àm a bhithear a’ gairm a’ phrìomh ghnìomh toinnte, a tha air a mhìneachadh nas mionaidiche ann am paragraf 7.

Bidh faidhlichean ann an cruth HFile air an cruinneachadh ann an HDFS agus bho àm gu àm thèid am pròiseas beag teann a chuir air bhog, a tha dìreach a’ ceangal fhaidhlichean beaga ri feadhainn nas motha gun a bhith a’ cuir às do rud sam bith. Thar ùine, bidh seo a’ tionndadh gu bhith na dhuilgheadas nach nochd ach nuair a bhios sinn a’ leughadh dàta (thig sinn air ais thuige beagan nas fhaide air adhart).

A bharrachd air a 'phròiseas luachaidh a tha air a mhìneachadh gu h-àrd, tha dòigh-obrach mòran nas èifeachdaiche ann, agus is dòcha gur e an taobh as làidire den stòr-dàta seo - BulkLoad. Tha e na laighe anns an fhìrinn gu bheil sinn gu neo-eisimeileach a’ cruthachadh HFiles agus gan cur air diosc, a leigeas leinn sgèile gu foirfe agus astaran fìor mhath a choileanadh. Gu dearbh, chan e HBase an cuingealachadh an seo, ach comasan a’ bhathar-chruaidh. Gu h-ìosal tha na toraidhean bròg air brabhsair anns a bheil 16 RegionServers agus 16 NodeManager YARN (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 snàithlean), dreach HBase 1.2.0-cdh5.14.2.

Teòiridh agus cleachdadh mu bhith a’ cleachdadh HBase

An seo chì thu le bhith ag àrdachadh an àireamh de sgaradh (roinnean) sa chlàr, a bharrachd air luchd-tiomnaidh Spark, gum faigh sinn àrdachadh ann an astar luchdachadh sìos. Cuideachd, tha an astar an urra ris an ìre clàraidh. Bheir blocaichean mòra àrdachadh ann am MB/diog, blocaichean beaga anns an àireamh de chlàran a chaidh a chuir a-steach gach aonad ùine, a h-uile càil eile co-ionann.

Faodaidh tu cuideachd tòiseachadh air luchdachadh a-steach do dhà chlàr aig an aon àm agus faighinn dà uair air an astar. Gu h-ìosal chì thu gu bheil sgrìobhadh blocaichean 10 KB gu dà chlàr aig an aon àm a’ tachairt aig astar timcheall air 600 MB / diog anns gach fear (1275 MB / diog gu h-iomlan), a tha aig an aon àm ri astar sgrìobhaidh gu aon chlàr 623 MB / diog (faic Àir. 11 gu h-àrd)

Teòiridh agus cleachdadh mu bhith a’ cleachdadh HBase
Ach tha an dàrna ruith le clàran de 50 KB a ’sealltainn gu bheil an astar luchdachadh sìos a’ fàs beagan, a tha a ’nochdadh gu bheil e a’ tighinn faisg air na luachan crìche. Aig an aon àm, feumaidh tu cuimhneachadh nach eil cha mhòr eallach air a chruthachadh air HBASE fhèin, chan eil agad ach dàta a thoirt seachad bho hbase:meta an-toiseach, agus an dèidh a bhith a’ lìnigeadh HFiles, ath-shuidhich an dàta BlockCache agus sàbhail an Bufair MemStore gu diosc, mura h-eil e falamh.

3. Leughadh dàta bho HBASE

Ma ghabhas sinn ris gu bheil am fiosrachadh gu lèir aig an neach-dèiligidh mu thràth bho hbase:meta (faic puing 2), thèid an t-iarrtas gu dìreach chun RS far a bheil an iuchair riatanach air a stòradh. An toiseach, thèid an sgrùdadh a dhèanamh ann am MemCache. Ge bith a bheil dàta ann no nach eil, tha an rannsachadh cuideachd air a dhèanamh ann am bufair BlockCache agus, ma tha sin riatanach, ann an HFiles. Ma chaidh dàta a lorg san fhaidhle, thèid a chuir ann am BlockCache agus thèid a thilleadh nas luaithe air an ath iarrtas. Tha rannsachadh ann an HFile gu math luath le taing do bhith a’ cleachdadh sìoltachan Bloom, i.e. às deidh beagan dàta a leughadh, bidh e a’ dearbhadh sa bhad a bheil an iuchair a tha a dhìth san fhaidhle seo agus mura h-eil, gluaisidh e air adhart chun ath fhear.

Teòiridh agus cleachdadh mu bhith a’ cleachdadh HBase
An dèidh dàta fhaighinn bho na trì stòran sin, bidh RS a’ gineadh freagairt. Gu sònraichte, faodaidh e grunn dhreachan lorg de nì a ghluasad aig an aon àm ma dh’ iarr an neach-dèiligidh dreach.

4. Tasgadh Dàta

Bidh na bufairean MemStore agus BlockCache a’ gabhail thairis suas ri 80% den chuimhne RS air-chrann a chaidh a riarachadh (tha an còrr glèidhte airson gnìomhan seirbheis RS). Ma tha am modh cleachdaidh àbhaisteach mar sin gu bheil pròiseasan a’ sgrìobhadh agus a’ leughadh an aon dàta sa bhad, tha e ciallach BlockCache a lughdachadh agus MemStore àrdachadh, oir Nuair nach tèid dàta a sgrìobhadh a-steach don tasgadan airson a leughadh, cha tèid BlockCache a chleachdadh cho tric. Tha dà phàirt ann am bufair BlockCache: LruBlockCache (an-còmhnaidh air-chrann) agus BucketCache (mar as trice far-chrann no air SSD). Bu chòir BucketCache a chleachdadh nuair a tha tòrr iarrtasan leughaidh ann agus nach eil iad a’ freagairt air LruBlockCache, a tha a’ leantainn gu obair ghnìomhach Garbage Collector. Aig an aon àm, cha bu chòir dùil a bhith agad ri àrdachadh mòr ann an coileanadh bho bhith a’ cleachdadh an tasgadan leughaidh, ach tillidh sinn gu seo ann am paragraf 8

Teòiridh agus cleachdadh mu bhith a’ cleachdadh HBase
Tha aon BlockCache ann airson an RS gu lèir, agus tha aon MemStore ann airson gach clàr (aon airson gach Teaghlach Colbh).

Ciamar air a mhìneachadh ann an teòiridh, nuair a thathar a’ sgrìobhadh, chan eil dàta a’ dol a-steach don tasgadan agus gu dearbh, tha na paramadairean sin CACHE_DATA_ON_WRITE airson a’ bhùird agus “Cache DATA on Write” airson RS air an suidheachadh gu bhith meallta. Ach, ann an cleachdadh, ma sgrìobhas sinn dàta gu MemStore, an uairsin sruthadh e gu diosc (mar sin ga ghlanadh), an uairsin cuir às don fhaidhle a thig às, an uairsin le bhith a’ cur an gnìomh iarrtas faighinn gheibh sinn an dàta gu soirbheachail. A bharrachd air an sin, eadhon ged a chuireas tu dheth BlockCache gu tur agus gun lìon thu am bòrd le dàta ùr, an uairsin ath-shuidhich am MemStore gu diosc, cuir às dhaibh agus iarr iad bho sheisean eile, bidh iad fhathast air an toirt air ais bho àiteigin. Mar sin bidh HBase a’ stòradh chan e a-mhàin dàta, ach cuideachd dìomhaireachdan dìomhair.

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

Tha am paramadair “Cache DATA on Read” air a shuidheachadh gu meallta. Ma tha beachdan sam bith agad, tha fàilte oirbh bruidhinn mu dheidhinn anns na beachdan.

5. Giullachd dàta baidse MultiGet/MultiPut

Is e obair gu math daor a th’ ann a bhith a’ giullachd iarrtasan singilte (Faigh/Cuir/Sguab às), mar sin ma ghabhas e dèanamh, bu chòir dhut an cur còmhla ann an Liosta no Liosta, a leigeas leat àrdachadh coileanaidh mòr fhaighinn. Tha seo gu sònraichte fìor airson obrachadh sgrìobhaidh, ach nuair a thathar a’ leughadh tha na duilgheadasan a leanas ann. Tha an graf gu h-ìosal a’ sealltainn an ùine airson 50 clàr a leughadh bho MemStore. Chaidh an leughadh a dhèanamh ann an aon snàithlean agus tha an axis chòmhnard a’ sealltainn àireamh nan iuchraichean san iarrtas. An seo chì thu nuair a thèid àrdachadh gu mìle iuchraichean ann an aon iarrtas, gu bheil an ùine cur gu bàs a’ tuiteam, i.e. luaths ag àrdachadh. Ach, le modh MSLAB air a chomasachadh gu bunaiteach, às deidh na stairsnich seo tòisichidh tuiteam mòr ann an coileanadh, agus mar as motha an ìre de dhàta sa chlàr, is ann as fhaide an ùine obrachaidh.

Teòiridh agus cleachdadh mu bhith a’ cleachdadh HBase

Chaidh deuchainnean a dhèanamh air inneal brìgheil, 8 cores, dreach HBase 2.0.0-cdh6.0.0-beta1.

Tha am modh MSLAB air a dhealbhadh gus briseadh sìos cruachan a lughdachadh, a thachras mar thoradh air measgachadh dàta ginealach ùr is sean. Mar dhòigh-obrach, nuair a tha MSLAB air a chomasachadh, tha an dàta air a chuir ann an ceallan an ìre mhath beag (pìosan) agus air a phròiseasadh ann am pìosan. Mar thoradh air an sin, nuair a tha an tomhas-lìonaidh sa phasgan dàta a chaidh iarraidh nas àirde na a ’mheud ainmichte, bidh coileanadh a’ tuiteam gu mòr. Air an làimh eile, chan eilear a ’moladh am modh seo a chuir dheth, oir leanaidh e gu stadan mar thoradh air GC aig amannan de dhian giollachd dàta. Is e fuasgladh math meud na cealla àrdachadh ann an cùis sgrìobhadh gnìomhach tro chuir aig an aon àm ri leughadh. Is fhiach a bhith mothachail nach tachair an duilgheadas ma tha thu, às deidh dhut clàradh, a ’ruith an àithne flush, a dh’ ath-shuidhicheas am MemStore gu diosc, no ma luchdaicheas tu a ’cleachdadh BulkLoad. Tha an clàr gu h-ìosal a’ sealltainn gu bheil ceistean bhon MemStore airson dàta nas motha (agus an aon uiread) a’ leantainn gu slaodachadh. Ach, le bhith ag àrdachadh na pìosan bidh sinn a’ tilleadh an ùine giollachd gu àbhaisteach.

Teòiridh agus cleachdadh mu bhith a’ cleachdadh HBase
A bharrachd air a bhith ag àrdachadh meudan, bidh sgoltadh dàta a rèir sgìre a’ cuideachadh, i.e. sgoltadh bùird. Mar thoradh air seo bidh nas lugha de dh’ iarrtasan a’ tighinn gu gach sgìre agus ma thèid iad a-steach do chill, tha am freagairt fhathast math.

6. Ro-innleachd airson bùird a roinn ann an roinnean (sgaradh)

Leis gu bheil HBase na phrìomh luach stòraidh agus roinneadh air a dhèanamh le iuchair, tha e air leth cudromach an dàta a roinn gu cothromach thar gach sgìre. Mar eisimpleir, le bhith a’ roinn clàr mar seo ann an trì pàirtean, thèid an dàta a roinn ann an trì roinnean:

Teòiridh agus cleachdadh mu bhith a’ cleachdadh HBase
Tha e a 'tachairt gu bheil seo a' leantainn gu slaodachadh geur ma tha coltas ann gu bheil an dàta a thèid a luchdachadh nas fhaide air adhart, mar eisimpleir, luachan fada, a 'mhòr-chuid dhiubh a' tòiseachadh leis an aon fhigear, mar eisimpleir:

1000001
1000002
...
1100003

Leis gu bheil na h-iuchraichean air an stòradh mar raon byte, tòisichidh iad uile mar an ceudna agus buinidh iad don aon roinn #1 a’ stòradh an raon iuchraichean seo. Tha grunn ro-innleachdan roinneadh ann:

HexStringSplit - Tionndaidh an iuchair gu sreang còdaichte heicsidheach san raon "00000000" => "FFFFFFFF" agus pleadhag air an taobh chlì le neamhan.

UniformSplit - Tionndaidh an iuchair gu raon byte le còdachadh hexadecimal anns an raon "00" => "FF" agus pleadhag air an taobh cheart le neamhan.

A bharrachd air an sin, faodaidh tu raon no seata iuchraichean sam bith a shònrachadh airson sgoltadh agus rèiteachadh fèin-sgoltadh. Ach, is e aon de na dòighean-obrach as sìmplidh agus as èifeachdaiche UniformSplit agus cleachdadh concatenation hash, mar eisimpleir am paidhir bytes as cudromaiche bho bhith a’ ruith an iuchair tron ​​​​ghnìomh CRC32 (rowkey) agus an rowkey fhèin:

hash + rowkey

An uairsin thèid an dàta gu lèir a sgaoileadh gu cothromach thar roinnean. Nuair a bhios tu a 'leughadh, tha a' chiad dà byte dìreach air an toirt air falbh agus tha an iuchair thùsail fhathast. Bidh RS cuideachd a’ cumail smachd air na tha de dhàta agus iuchraichean san roinn agus, ma thèid iad thairis air na crìochan, bidh e gu fèin-obrachail ga bhriseadh ann am pàirtean.

7. Fulangas sgàinidhean agus sgìre dàta

Leis nach eil ach aon roinn an urra ri gach seata iuchraichean, is e am fuasgladh do dhuilgheadasan co-cheangailte ri tubaistean RS no dì-choimiseanadh a h-uile dàta riatanach a stòradh ann an HDFS. Nuair a thuiteas RS, bidh am maighstir a’ lorg seo às aonais buille cridhe air nód an ZooKeeper. An uairsin bidh e a’ sònrachadh na sgìre seirbheisichte gu RS eile agus leis gu bheil na HFiles air an stòradh ann an siostam faidhle sgaoilte, bidh an sealbhadair ùr gan leughadh agus a’ leantainn air adhart a’ frithealadh an dàta. Ach, leis gum faodadh cuid den dàta a bhith anns a ’MemStore agus nach robh ùine aige faighinn a-steach do HFiles, tha WAL, a tha cuideachd air a stòradh ann an HDFS, air a chleachdadh gus eachdraidh gnìomhachd a thoirt air ais. Às deidh na h-atharrachaidhean a bhith air an cur an sàs, bidh RS comasach air freagairt a thoirt do iarrtasan, ach tha an gluasad a ’leantainn gu bheil cuid den dàta agus na pròiseasan a tha gan seirbheiseachadh a’ tighinn gu crìch air diofar nodan, i.e. sgìre a’ dol sìos.

Is e teannachadh mòr am fuasgladh don duilgheadas - bidh am modh-obrach seo a ’gluasad faidhlichean gu na nodan sin a tha cunntachail dhaibh (far a bheil na roinnean aca suidhichte), agus mar thoradh air an sin rè a’ mhodh-obrach seo bidh an luchd air an lìonra agus na diosgan ag àrdachadh gu mòr. Ach, san àm ri teachd, tha cothrom air dàta air a luathachadh gu mòr. A bharrachd air an sin, bidh major_compaction a’ coileanadh a h-uile HFiles a thoirt còmhla ann an aon fhaidhle taobh a-staigh sgìre, agus cuideachd a’ glanadh dàta a rèir roghainnean a’ bhùird. Mar eisimpleir, faodaidh tu an àireamh de dhreachan de nì a dh’ fheumar a chumail a shònrachadh no an ùine às deidh sin thèid an nì a dhubhadh às gu corporra.

Faodaidh buaidh fìor mhath a bhith aig a’ mhodh-obrach seo air gnìomhachd HBase. Tha an dealbh gu h-ìosal a’ sealltainn mar a chaidh coileanadh sìos mar thoradh air clàradh dàta gnìomhach. An seo chì thu mar a sgrìobh 40 snàithlean gu aon chlàr agus 40 snàithleanan a’ leughadh dàta aig an aon àm. Bidh snàithleanan sgrìobhaidh a’ gineadh barrachd is barrachd HFiles, a tha air an leughadh le snàithleanan eile. Mar thoradh air an sin, feumar barrachd is barrachd dàta a thoirt air falbh bhon chuimhne agus mu dheireadh tòisichidh an GC ag obair, a tha gu practaigeach a’ toirt pairilis air a h-uile obair. Mar thoradh air teannachadh mòr a chuir air bhog chaidh an sprùilleach a thàinig às a sin a ghlanadh agus cinneasachd ath-nuadhachadh.

Teòiridh agus cleachdadh mu bhith a’ cleachdadh HBase
Chaidh an deuchainn a dhèanamh air 3 DataNodes agus 4 RS (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 snàithlean). Tionndadh HBase 1.2.0-cdh5.14.2

Is fhiach a bhith mothachail gun deach teannachadh mòr a chuir air bhog air clàr “beò”, anns an deach dàta a sgrìobhadh agus a leughadh gu gnìomhach. Chaidh aithris air-loidhne gum faodadh seo leantainn gu freagairt ceàrr nuair a bhathas a’ leughadh dàta. Gus sgrùdadh a dhèanamh, chaidh pròiseas a chuir air bhog a chruthaich dàta ùr agus a sgrìobh e gu clàr. Às deidh sin leugh mi sa bhad agus rinn mi sgrùdadh an robh an luach a thàinig às a sin aig an aon àm ris na chaidh a sgrìobhadh sìos. Fhad ‘s a bha am pròiseas seo a’ dol, chaidh teannachadh mòr a ruith timcheall air 200 uair agus cha deach aon fhàiligeadh a chlàradh. Is dòcha gur ann ainneamh a tha an duilgheadas a’ nochdadh agus dìreach aig àm luchdan àrd, agus mar sin tha e nas sàbhailte stad a chuir air na pròiseasan sgrìobhaidh is leughaidh mar a bhathar an dùil agus glanadh a dhèanamh gus casg a chuir air tarraing sìos GC.

Cuideachd, chan eil teannachadh mòr a’ toirt buaidh air staid a’ MemStore; gus a shruthladh gu diosc agus a choimeasgadh, feumaidh tu flush a chleachdadh (connection.getAdmin().flush(TableName.valueOf(tblName))).

8. Settings agus coileanadh

Mar a chaidh ainmeachadh roimhe, tha HBase a’ sealltainn a shoirbheachadh as motha far nach fheum e dad a dhèanamh, nuair a bhios e a’ coileanadh BulkLoad. Ach, tha seo a 'buntainn ris a' mhòr-chuid de shiostaman agus dhaoine. Ach, tha an inneal seo nas freagarraiche airson dàta a stòradh ann am blocaichean mòra, ach ma tha feum air grunn iarrtasan leughaidh is sgrìobhaidh farpaiseach, thèid na h-òrdughan Faigh is Put a tha air am mìneachadh gu h-àrd a chleachdadh. Gus na crìochan as fheàrr a dhearbhadh, chaidh cur air bhog a dhèanamh le measgachadh de pharamadairean bùird agus roghainnean:

  • Chaidh 10 snàithleanan a chuir air bhog aig an aon àm 3 tursan ann an sreath (canaidh sinn seo bloc snàithleanan).
  • Chaidh ùine obrachaidh gach snàithlean ann am bloc a chuibheasachadh agus b’ e sin an toradh deireannach air obrachadh a’ bhloc.
  • Bha na snàithleanan uile ag obair leis an aon chlàr.
  • Ro gach toiseach den bhloc snàithlean, chaidh teannachadh mòr a dhèanamh.
  • Cha do rinn gach bloc ach aon de na h-obraichean a leanas:

—Chuir
—Faigh
- Faigh + cuir

  • Rinn gach bloc 50 tionndadh den obair aige.
  • Is e meud bloc clàr 100 bytes, 1000 bytes no 10000 bytes (air thuaiream).
  • Chaidh blocaichean a chuir air bhog le diofar àireamhan de dh’ iuchraichean a chaidh iarraidh (aon iuchair no 10).
  • Chaidh na blocaichean a ruith fo dhiofar shuidheachaidhean bùird. Paramadairean air an atharrachadh:

— BlockCache = air a thionndadh air no dheth
- BlockSize = 65 KB no 16 KB
— Pàirtean = 1, 5 no 30
— MSLAB = comas no ciorramach

Mar sin tha am bloc a’ coimhead mar seo:

a. Chaidh modh MSLAB a thionndadh air / dheth.
b. Chaidh clàr a chruthachadh airson an deach na paramadairean a leanas a shuidheachadh: BlockCache = fìor/chan eil gin, BlockSize = 65/16 Kb, Partition = 1/5/30.
c. Chaidh teannachadh a shuidheachadh gu GZ.
d. Chaidh 10 snàithnean a chuir air bhog aig an aon àm a’ dèanamh 1/10 put/get/get+ cuir gnìomhachd a-steach don chlàr seo le clàran de 100/1000/10000 bytes, a’ coileanadh 50 ceist ann an sreath (iuchraichean air thuaiream).
e. Chaidh puing d ath-aithris trì tursan.
f. Bha an ùine obrachaidh airson gach snàithlean cuibheasach.

Chaidh deuchainn a dhèanamh air a h-uile measgachadh comasach. Tha e ro-innseach gun tuit an astar mar a bhios meud na h-ìre a’ dol am meud, no gun adhbhraich sin slaodadh air falbh le bhith a’ cur casg air tasgadh. Ach, b 'e an amas a bhith a' tuigsinn ìre agus cudromachd buaidh gach paramadair, agus mar sin chaidh an dàta a chaidh a chruinneachadh a thoirt a-steach do chuir a-steach gnìomh ais-tharraing sreathach, a tha ga dhèanamh comasach measadh a dhèanamh air cudromachd a 'cleachdadh t-staitistig. Gu h-ìosal tha na toraidhean de na blocaichean a 'coileanadh gnìomhan Put. Seata slàn de choimeasgaidhean 2 * 2 * 3 * 2 * 3 = 144 roghainnean + 72 tk. chaidh cuid a dhèanamh dà uair. Mar sin, tha 216 ruith ann uile gu lèir:

Teòiridh agus cleachdadh mu bhith a’ cleachdadh HBase
Chaidh deuchainn a dhèanamh air mion-chruinneachadh anns an robh 3 DataNodes agus 4 RS (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 snàithlean). Tionndadh HBase 1.2.0-cdh5.14.2.

Chaidh an astar cuir a-steach as àirde de 3.7 diogan fhaighinn le modh MSLAB air a chuir dheth, air bòrd le aon sgaradh, le BlockCache air a chomasachadh, BlockSize = 16, clàran de 100 bytes, 10 pìosan gach pacaid.
Chaidh an astar cuir a-steach as ìsle de 82.8 diog fhaighinn le modh MSLAB air a chomasachadh, air clàr le aon sgaradh, le BlockCache air a chomasachadh, BlockSize = 16, clàran de 10000 bytes, 1 gach fear.

A-nis leig dhuinn sùil a thoirt air a 'mhodail. Tha sinn a 'faicinn càileachd math a' mhodail stèidhichte air R2, ach tha e gu tur soilleir gu bheil cur-a-mach mì-chinnteach an seo. Cha bhith fìor ghiùlan an t-siostaim nuair a bhios paramadairean ag atharrachadh sreathach; tha feum air a’ mhodail seo chan ann airson ro-innse, ach airson tuigse fhaighinn air na thachair taobh a-staigh nam paramadairean a chaidh a thoirt seachad. Mar eisimpleir, an seo chì sinn bho shlat-tomhais nan Oileanach nach eil na crìochan BlockSize agus BlockCache gu diofar airson gnìomhachd Put (a tha sa chumantas gu math sùbailte):

Teòiridh agus cleachdadh mu bhith a’ cleachdadh HBase
Ach tha an fhìrinn gu bheil àrdachadh anns an àireamh de phàirtean a 'leantainn gu lùghdachadh ann an coileanadh rudeigin ris nach robh dùil (tha sinn mar-thà air a' bhuaidh mhath fhaicinn le bhith a 'meudachadh an àireamh de phàirtean le BulkLoad), ged a tha e furasta a thuigsinn. An toiseach, airson giullachd, feumaidh tu iarrtasan a ghineadh gu 30 roinn an àite aon, agus chan eil meud an dàta cho mòr is gun toir seo buannachd. San dàrna h-àite, tha an ùine obrachaidh iomlan air a dhearbhadh leis an RS as slaodaiche, agus leis gu bheil an àireamh de DataNodes nas lugha na an àireamh de RS, tha sgìre neoni aig cuid de roinnean. Uill, leig dhuinn sùil a thoirt air na còig as àirde:

Teòiridh agus cleachdadh mu bhith a’ cleachdadh HBase
A-nis dèanamaid measadh air na toraidhean bho bhith a’ cur an gnìomh Faigh blocaichean:

Teòiridh agus cleachdadh mu bhith a’ cleachdadh HBase
Tha an àireamh de sgaraidhean air cudromachd a chall, is dòcha a tha air a mhìneachadh leis gu bheil an dàta air a thasgadh gu math agus gur e an tasgadan leughaidh am paramadair as cudromaiche (gu staitistigeil). Nàdarrach, a 'meudachadh an àireamh de theachdaireachdan ann an iarrtas cuideachd glè fheumail airson coileanadh. Sgòr as àirde:

Teòiridh agus cleachdadh mu bhith a’ cleachdadh HBase
Uill, mu dheireadh, leig dhuinn sùil a thoirt air modail a ’bhloc a rinn an toiseach faigh agus an uairsin cuir:

Teòiridh agus cleachdadh mu bhith a’ cleachdadh HBase
Tha na paramadairean uile cudromach an seo. Agus toraidhean nan stiùirichean:

Teòiridh agus cleachdadh mu bhith a’ cleachdadh HBase

9. Deuchainn luchd

Uill, mu dheireadh cuiridh sinn air bhog eallach reusanta, ach tha e an-còmhnaidh nas inntinniche nuair a tha rudeigin agad airson coimeas a dhèanamh ris. Air làrach-lìn DataStax, prìomh leasaiche Cassandra, tha результаты NT de ghrunn stòradh NoSQL, a’ toirt a-steach dreach HBase 0.98.6-1. Chaidh an luchdachadh a dhèanamh le snàithleanan 40, meud dàta 100 bytes, diosgan SSD. Sheall toradh deuchainn air gnìomhachd Read-Modify-Write na toraidhean a leanas.

Teòiridh agus cleachdadh mu bhith a’ cleachdadh HBase
Cho fad ‘s a tha mi a’ tuigsinn, chaidh leughadh a dhèanamh ann am blocaichean de chlàran 100 agus airson nodan 16 HBase, sheall an deuchainn DataStax coileanadh de 10 mìle gnìomhachd gach diog.

Tha e fortanach gu bheil 16 nodan aig a’ bhuidheann againn cuideachd, ach chan eil e gu math “fortanach” gu bheil 64 cores (snàithleanan) aig gach fear, agus anns an deuchainn DataStax chan eil ann ach 4. Air an làimh eile, tha draibhearan SSD aca, fhad ‘s a tha HDDs againn no barrachd cha do dh'àrdaich an dreach ùr de HBase agus cleachdadh CPU rè luchd gu mòr (gu lèir le 5-10 sa cheud). Ach, feuchaidh sinn ri tòiseachadh air an rèiteachadh seo a chleachdadh. Suidhichidhean clàr bunaiteach, thèid leughadh a dhèanamh anns an raon iuchrach bho 0 gu 50 millean air thuaiream (ie, gu ìre mhòr ùr a h-uile turas). Tha 50 millean clàr anns a’ chlàr, air an roinn ann an 64 sgaradh. Tha na h-iuchraichean air am pronnadh le bhith a’ cleachdadh crc32. Tha roghainnean clàr bunaiteach, tha MSLAB air a chomasachadh. Le bhith a’ cur 40 snàithlean air bhog, bidh gach snàithlean a’ leughadh seata de 100 iuchraichean air thuaiream agus sa bhad a’ sgrìobhadh na 100 bytes a chaidh a chruthachadh air ais gu na h-iuchraichean sin.

Teòiridh agus cleachdadh mu bhith a’ cleachdadh HBase
Seas: 16 DataNode agus 16 RS (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 snàithlean). Tionndadh HBase 1.2.0-cdh5.14.2.

Tha an toradh cuibheasach nas fhaisge air 40 mìle gnìomhachd gach diog, a tha gu math nas fheàrr na ann an deuchainn DataStax. Ach, airson adhbharan deuchainneach, faodaidh tu na suidheachaidhean atharrachadh beagan. Tha e gu math eu-coltach gun tèid a h-uile obair a dhèanamh a-mhàin air aon bhòrd, agus cuideachd a-mhàin air iuchraichean sònraichte. Gabhamaid ris gu bheil seata iuchraichean “teth” sònraichte ann a ghineas am prìomh luchd. Mar sin, feuchaidh sinn ri luchd a chruthachadh le clàran nas motha (10 KB), cuideachd ann an baidsean de 100, ann an 4 clàran eadar-dhealaichte agus a’ cuingealachadh raon nan iuchraichean a chaidh iarraidh gu 50 mìle. seata de iuchraichean 40 agus sa bhad a’ sgrìobhadh 100 KB air thuaiream air na h-iuchraichean sin air ais.

Teòiridh agus cleachdadh mu bhith a’ cleachdadh HBase
Seas: 16 DataNode agus 16 RS (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 snàithlean). Tionndadh HBase 1.2.0-cdh5.14.2.

Rè an luchd, chaidh teannachadh mòr a chuir air bhog grunn thursan, mar a chithear gu h-àrd, às aonais a ’mhodh-obrach seo, bidh coileanadh a’ dol sìos mean air mhean, ge-tà, bidh luchd a bharrachd ag èirigh cuideachd aig àm cur gu bàs. Tha diofar adhbharan air adhbhrachadh le tarraing sìos. Aig amannan chrìochnaich na snàithleanan ag obair agus bha stad ann fhad ‘s a chaidh an ath-thòiseachadh, uaireannan chruthaich tagraidhean treas-phàrtaidh luchd air a’ bhuidheann.

Is e leughadh agus sgrìobhadh sa bhad aon de na suidheachaidhean obrach as duilghe airson HBase. Mura dèan thu ach iarrtasan beaga, mar eisimpleir 100 bytes, gan cur còmhla ann am pasganan de 10-50 mìle pìos, gheibh thu ceudan de mhìltean de ghnìomhachd gach diog, agus tha an suidheachadh coltach ri iarrtasan leughaidh a-mhàin. Is fhiach a bhith mothachail gu bheil na toraidhean gu math nas fheàrr na an fheadhainn a fhuair DataStax, gu ìre mhòr air sgàth iarrtasan ann am blocaichean de 50 mìle.

Teòiridh agus cleachdadh mu bhith a’ cleachdadh HBase
Seas: 16 DataNode agus 16 RS (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 snàithlean). Tionndadh HBase 1.2.0-cdh5.14.2.

10. Co-dhùnaidhean

Tha an siostam seo air a rèiteachadh gu math sùbailte, ach tha buaidh àireamh mhòr de pharamadairean fhathast neo-aithnichte. Chaidh cuid dhiubh a dhearbhadh, ach cha deach an toirt a-steach don t-seata deuchainn a thàinig às. Mar eisimpleir, sheall deuchainnean tòiseachaidh nach robh mòran cudromachd ann am paramadair mar DATA_BLOCK_ENCODING, a bhios a’ còdachadh fiosrachadh a’ cleachdadh luachan bho cheallan faisg air làimh, a tha furasta a thuigsinn airson dàta air a chruthachadh air thuaiream. Ma chleachdas tu àireamh mhòr de nithean dùblaichte, faodaidh am buannachd a bhith cudromach. San fharsaingeachd, faodaidh sinn a ràdh gu bheil HBase a’ toirt sealladh air stòr-dàta a tha gu math dona agus air a dheagh smaoineachadh, a dh’ fhaodadh a bhith gu math cinneasach nuair a bhios tu a’ coileanadh gnìomhachd le blocaichean mòra dàta. Gu sònraichte ma tha e comasach na pròiseasan leughaidh is sgrìobhaidh a sgaradh ann an ùine.

Ma tha rudeigin nad bheachd-sa nach eil air fhoillseachadh gu leòr, tha mi deiseil airson innse dhut nas mionaidiche. Tha sinn a’ toirt cuireadh dhut d’ eòlas a cho-roinn no bruidhinn mura h-eil thu ag aontachadh ri rudeigin.

Source: www.habr.com

Cuir beachd ann