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.
- Ailtireachd coitcheann
- Aâ sgrĂŹobhadh dĂ ta gu HBASE
- Aâ leughadh dĂ ta bho HBASE
- Tasgadh dĂ ta
- Giullachd dĂ ta baidse MultiGet/MultiPut
- Ro-innleachd airson bĂšird a roinn ann an roinnean (sgoltadh)
- Fulangas sgĂ inidhean, dlĂšthachadh agus sgĂŹre dĂ ta
- Suidheachaidhean agus coileanadh
- Deuchainn Stress
- toraidhean
1. Ailtireachd coitcheann

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.

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.

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)

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.

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

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 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.

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.

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:

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.

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:

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):

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:

A-nis dèanamaid measadh air na toraidhean bho bhith aâ cur an gnĂŹomh Faigh blocaichean:

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:

Uill, mu dheireadh, leig dhuinn sĂšil a thoirt air modail a âbhloc a rinn an toiseach faigh agus an uairsin cuir:

Tha na paramadairean uile cudromach an seo. Agus toraidhean nan stiĂširichean:

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.

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.

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.

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.

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
