Tiori na omume nke iji HBase

Ehihie ọma Aha m bụ Danil Lipovoy, ndị otu anyị na Sbertech malitere iji HBase dịka nchekwa maka data arụmọrụ. Na usoro nke na-amụ ya, ahụmahụ achịkọbara na m chọrọ systematize na-akọwa (anyị na-atụ anya na ọ ga-abara ọtụtụ ndị). Emere nnwale niile dị n'okpuru na ụdị HBase 1.2.0-cdh5.14.2 na 2.0.0-cdh6.0.0-beta1.

  1. General ije
  2. Na-ede data na HBASE
  3. Ọgụgụ data sitere na HBASE
  4. Nchekwa data
  5. Nhazi data ogbe MultiGet/MultiPut
  6. Atụmatụ maka ikewa tebụl n'ime mpaghara (nkewa)
  7. Nkwenye mmejọ, mkpọkọ na mpaghara data
  8. Ntọala na arụmọrụ
  9. Nnwale nrụgide
  10. Nchoputa

1. General architecture

Tiori na omume nke iji HBase
Nna-ukwu ndabere na-ege ntị n'obi nke onye na-arụ ọrụ na oghere ZooKeeper na, ọ bụrụ na ọ ga-apụ n'anya, na-eweghara ọrụ nke nna ukwu.

2. Dee data na HBASE

Nke mbụ, ka anyị leba anya n'okwu kacha mfe - iji put(rowkey) dee ihe dị mkpa na tebụl. Onye ahịa ga-ebu ụzọ chọpụta ebe Root Region Server (RRS), nke na-echekwa hbase: meta table, dị. Ọ na-enweta ozi a n'aka ZooKeeper. Mgbe nke ahụ gasịrị, ọ na-abanye na RRS wee gụọ hbase: meta table, nke ọ na-ewepụta ozi gbasara nke RegionServer (RS) na-ahụ maka ịchekwa data maka rowkey nyere na tebụl mmasị. Maka iji ya mee ihe n'ọdịnihu, onye ahịa na-echekwa tebụl meta ya mere oku na-esote na-aga ngwa ngwa, na RS ozugbo.

Na-esote, RS, ebe ọ natara arịrịọ, nke mbụ na-ede ya na WriteAheadLog (WAL), nke dị mkpa maka mgbake ma ọ bụrụ na mberede. Wee chekwaa data na MemStore. Nke a bụ ihe nchekwa na ebe nchekwa nwere usoro igodo ahaziri ahazi maka mpaghara enyere. Enwere ike kewaa tebụl n'ime mpaghara (nkebi), nke ọ bụla n'ime ha nwere igodo dị iche iche. Nke a na-enye gị ohere itinye mpaghara na sava dị iche iche iji nweta arụmọrụ dị elu. Otú ọ dị, n'agbanyeghị na nkwupụta a doro anya, anyị ga-ahụ mgbe e mesịrị na nke a anaghị arụ ọrụ n'ọnọdụ niile.

Mgbe itinye ntinye na MemStore, a na-eweghachi onye ahịa nzaghachi na echekwara ndenye ahụ nke ọma. Otú ọ dị, n'eziokwu, a na-echekwa ya naanị na nchekwa ma na-abanye na diski naanị mgbe oge ụfọdụ gafere ma ọ bụ mgbe ọ jupụtara na data ọhụrụ.

Tiori na omume nke iji HBase
Mgbe ị na-arụ ọrụ "Hichapụ", anaghị ehichapụ data n'anụ ahụ. A na-akara ha naanị ka ehichapụ, na mbibi n'onwe ya na-apụta n'oge a na-akpọ nnukwu ọrụ kọmpat, nke akọwara n'ụzọ zuru ezu na paragraf 7.

A na-akwakọba faịlụ n'ụdị HFile na HDFS na site n'oge ruo n'oge, a na-amalite usoro obere kọmpat, nke na-ejikọta obere faịlụ n'ime ndị buru ibu na-enweghị ihichapụ ihe ọ bụla. Ka oge na-aga, nke a na-aghọ nsogbu nke na-apụta naanị mgbe ị na-agụ data (anyị ga-alaghachi na nke a ntakịrị oge).

Na mgbakwunye na usoro ntinye nke akọwara n'elu, enwere usoro dị irè karị, nke nwere ike ịbụ akụkụ kachasị ike nke nchekwa data a - BulkLoad. Ọ dabere n'eziokwu na anyị na-etolite HFiles n'onwe anyị wee tinye ha na diski, nke na-enye anyị ohere ịbawanye oke ma nweta ezigbo ọsọ. N'ezie, njedebe ebe a abụghị HBase, mana ike nke ngwaike. N'okpuru bụ nsonaazụ buut na ụyọkọ nke nwere 16 RegionServers na 16 NodeManager YARN (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 eri), ụdị HBase 1.2.0-cdh5.14.2.

Tiori na omume nke iji HBase

N'ebe a, ị nwere ike ịhụ na site n'ịbawanye ọnụ ọgụgụ nke akụkụ (mpaghara) na tebụl, yana ndị na-eme ihe nkiri Spark, anyị na-enweta mmụba na ọsọ nbudata. Ọzọkwa, ọsọ na-adabere na olu ndekọ. Ihe mgbochi buru ibu na-enye mmụba na MB / sk, obere ngọngọ na ọnụ ọgụgụ nke ndekọ ntinye kwa nkeji oge, ihe ndị ọzọ niile hà nhata.

Ị nwekwara ike ịmalite ịkwanye na tebụl abụọ n'otu oge ma nweta ọsọ ọsọ okpukpu abụọ. N'okpuru ebe a ị nwere ike ịhụ na ịde 10 KB blocks na tebụl abụọ n'otu oge na-eme na ọsọ nke ihe dịka 600 MB / sk na nke ọ bụla (ngụkọta 1275 MB / sk), nke dabara na ọsọ nke ide ihe na otu tebụl 623 MB / sec (lee. Nke 11 n'elu)

Tiori na omume nke iji HBase
Ma nke abụọ na-agba ọsọ na ndekọ nke 50 KB na-egosi na nbudata nbudata na-eto ntakịrị, nke na-egosi na ọ na-eru nso ụkpụrụ njedebe. N'otu oge ahụ, ịkwesịrị iburu n'uche na ọ nweghị ibu emepụtara na HBASE n'onwe ya, naanị ihe achọrọ na ya bụ ibu ụzọ nye data sitere na hbase:meta, na mgbe ị gachara HFiles, tọgharịa data BlockCache wee chekwaa ya. Ihe nchekwa MemStore na diski, ọ bụrụ na ọ bụghị ihe efu.

3. Ịgụ data sitere na HBASE

Ọ bụrụ na anyị chere na onye ahịa ahụ enweelarị ozi niile sitere na hbase: meta (lee ebe 2), mgbe ahụ arịrịọ ahụ na-aga ozugbo na RS ebe echekwara igodo achọrọ. Nke mbụ, a na-eme ọchụchọ ahụ na MemCache. N'agbanyeghị ma enwere data ebe ahụ ma ọ bụ na ọ bụghị, a na-eme nyocha ahụ na BlockCache buffer na, ọ bụrụ na ọ dị mkpa, na HFiles. Ọ bụrụ na achọtara data na faịlụ ahụ, a na-etinye ya na BlockCache, a ga-eweghachi ya ngwa ngwa na arịrịọ ọzọ. Ịchọ na HFile dị ngwa ngwa n'ihi iji ihe nzacha Bloom, ya bụ. N'ịgụ ntakịrị data, ọ na-ekpebi ozugbo ma faịlụ a nwere igodo achọrọ ma ọ bụrụ na ọ bụghị, wee gaa na nke ọzọ.

Tiori na omume nke iji HBase
N'inweta data sitere na isi mmalite atọ a, RS na-ewepụta nzaghachi. Karịsịa, ọ nwere ike ịnyefe ọtụtụ ụdị ihe achọtara n'otu oge ma ọ bụrụ na onye ahịa rịọrọ mbipute.

4. Caching data

Ihe nchekwa MemStore na BlockCache na-eji ihe ruru 80% nke ebe nchekwa RS na-ekpo ọkụ (nke fọdụrụ ka edobere maka ọrụ ọrụ RS). Ọ bụrụ na ụdị ojiji a na-ahụkarị bụ usoro na-ede ma gụọ otu data ozugbo, mgbe ahụ ọ bụ ihe ezi uche dị na ya iji belata BlockCache na ịbawanye MemStore, n'ihi na Mgbe ịde data anaghị abanye na cache maka ịgụ ihe, BlockCache ga-eji obere oge. Ihe nchekwa BlockCache nwere akụkụ abụọ: LruBlockCache (mgbe ọ bụla na-ekpo ọkụ) na BucketCache (na-abụkarị n'obo ma ọ bụ na SSD). Ekwesịrị iji BucketCache mee ihe mgbe enwere ọtụtụ arịrịọ ọgụgụ na ha adabaghị na LruBlockCache, nke na-eduga n'ọrụ na-arụsi ọrụ ike nke mkpokọ ahịhịa. N'otu oge ahụ, ịkwesighi ịtụ anya mmụba dị ukwuu na arụmọrụ site na iji cache na-agụ, mana anyị ga-alaghachi na nke a na paragraf 8.

Tiori na omume nke iji HBase
Enwere otu BlockCache maka RS dum, ma enwere otu MemStore maka tebụl ọ bụla (otu maka ezinụlọ kọlụm ọ bụla).

Olee otú kọwara na tiori, mgbe ị na-ede, data adịghị abanye n'ime cache na n'ezie, ndị dị otú ahụ parameters CACHE_DATA_ON_WRITE maka table na "Cache DATA on Write" maka RS ka atọrọ na ụgha. Agbanyeghị, na omume, ọ bụrụ na anyị ede data na MemStore, wee tufuo ya na diski (si otú ahụ kpochapụ ya), wee hichapụ faịlụ a ga-esi na ya pụta, mgbe ahụ site n'imezu arịrịọ nweta, anyị ga-enweta data ahụ nke ọma. Ọzọkwa, ọbụlagodi na ị gbanyụọ BlockCache kpamkpam wee jupụta data ọhụrụ na tebụl, wee tọgharịa MemStore na diski, hichapụ ha ma rịọ ha na nnọkọ ọzọ, a ka ga-ewepụta ha n'ebe ọzọ. Yabụ na HBase na-echekwa ọ bụghị naanị data, kamakwa ihe omimi dị omimi.

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

Atụnyere oke "Cache DATA on Read" ka ọ bụrụ ụgha. Ọ bụrụ na ị nwere echiche ọ bụla, nabata ka ị kparịta ya na nkwupụta.

5. Batch data nhazi MultiGet/MultiPut

Ịhazi otu arịrịọ (Nweta / Tinye / Hichapụ) bụ ọrụ dị oke ọnụ, yabụ ọ bụrụ na ọ ga-ekwe omume, ị ga-ejikọta ha na Ndepụta ma ọ bụ Ndepụta, nke na-enye gị ohere ịnweta nkwalite arụmọrụ dị ịrịba ama. Nke a bụ eziokwu karịsịa maka ọrụ ide ihe, mana mgbe ị na-agụ, enwere ọnyà ndị a. Eserese dị n'okpuru na-egosi oge ịgụ ndekọ 50 sitere na MemStore. Emere ọgụgụ ahụ n'otu eri na axis kwụ ọtọ na-egosi ọnụọgụ igodo dị na arịrịọ ahụ. N'ebe a, ị nwere ike ịhụ na mgbe ị na-abawanye na otu puku igodo n'otu arịrịọ, oge igbu oge na-adaba, i.e. ọsọ na-abawanye. Agbanyeghị, na ọnọdụ MSLAB enyere na ndabara, mgbe ọnụ ụzọ a gachara, arụmọrụ na-amalite na-abawanye, ma ka ọnụọgụ data dị na ndekọ ahụ na-abawanye, oge ọrụ na-adị ogologo.

Tiori na omume nke iji HBase

Emere ule na igwe mebere, cores 8, ụdị HBase 2.0.0-cdh6.0.0-beta1.

Emebere ọnọdụ MSLAB iji belata nkewa ikpo okwu, nke na-eme n'ihi ngwakọta nke data ọgbọ ọhụrụ na nke ochie. Dị ka ihe na-arụ ọrụ, mgbe enyere MSLAB aka, a na-etinye data ahụ n'ime obere sel (nkịta) ma hazie ya na chunks. N'ihi ya, mgbe olu dị na ngwugwu data achọrọ karịrị nha ekenyere, arụmọrụ na-ada nke ọma. N'aka nke ọzọ, ịgbanyụ ọnọdụ a abụghịkwa ihe amamihe dị na ya, ebe ọ ga-eduga na nkwụsị n'ihi GC n'oge oge nhazi data siri ike. Ihe ngwọta dị mma bụ ịbawanye ụda cell n'ihe banyere ide ihe na-arụ ọrụ site na itinye n'otu oge dị ka ịgụ akwụkwọ. Ọ dị mma ịmara na nsogbu ahụ anaghị eme ma ọ bụrụ na, mgbe ịdekọchara, ị na-agba ọsọ ịgbanye iwu, nke na-emegharị MemStore na diski, ma ọ bụ ọ bụrụ na ị na-eji BulkLoad ibu. Tebụlụ dị n'okpuru na-egosi na ajụjụ sitere na MemStore maka nnukwu (na otu ego) data na-ebute mbelata. Otú ọ dị, site n'ịba ụba chunksize anyị na-eweghachi oge nhazi na nkịtị.

Tiori na omume nke iji HBase
Na mgbakwunye na ịba ụba chunksize, ikewa data site na mpaghara na-enyere aka, i.e. tebụl nkewa. Nke a na-ebute arịrịọ ole na ole na-abịa na mpaghara ọ bụla ma ọ bụrụ na ha dabara na cell, azịza ya ka dị mma.

6. Usoro maka ikewa tebụl n'ime mpaghara (nkewa)

Ebe HBase bụ nchekwa bara uru na nke a na-eji igodo eme nkewa, ọ dị oke mkpa ikesa data ahụ n'otu n'otu n'ofe mpaghara niile. Dịka ọmụmaatụ, ikewa tebụl dị otú ahụ gaa n'akụkụ atọ ga-eme ka ekewa data ahụ na mpaghara atọ:

Tiori na omume nke iji HBase
Ọ na - eme na nke a na - eduga n'ịkwụsị nwayọ ma ọ bụrụ na data eburu emechara dị ka, dịka ọmụmaatụ, ogologo ụkpụrụ, ọtụtụ n'ime ha na-amalite site na otu ọnụọgụ, dịka ọmụmaatụ:

1000001
1000002
...
1100003

Ebe ọ bụ na a na-echekwa mkpịsị ugodi dị ka ihe nrụnye byte, ha niile ga-amalite otu ma bụrụ nke otu mpaghara #1 na-echekwa ụdị igodo a. Enwere ọtụtụ atụmatụ nkewa:

HexStringSplit – Tụgharịa igodo ka ọ bụrụ eriri hexadecimal etinyere n'usoro "00000000" => "FFFFFFFF" na padding n'aka ekpe nwere efu.

UniformSplit – Tụgharịa igodo ka ọ bụrụ n'usoro byte nwere koodu hexadecimal dị na nso "00" => "FF" na padding n'aka nri nwere efu.

Na mgbakwunye, ị nwere ike ịkọwapụta oke ma ọ bụ ntọala igodo ọ bụla maka ikewa na hazie nkewa akpaaka. Otú ọ dị, otu n'ime ụzọ kachasị mfe ma dị irè bụ UniformSplit na iji hash concatenation, dịka ọmụmaatụ ụzọ abụọ dị ịrịba ama site na iji igodo site na ọrụ CRC32(rowkey) na rowkey n'onwe ya:

hash + rọba

Mgbe ahụ, a ga-ekesa data niile n'otu n'otu n'ofe mpaghara. Mgbe ị na-agụ, a na-atụfu bytes abụọ mbụ ma igodo mbụ ka dị. RS na-ejikwa ọnụọgụ data na igodo dị na mpaghara ahụ, ma ọ bụrụ na agafeela oke, na-agbaji ya na-akpaghị aka na akụkụ.

7. Mmegide mmejọ na mpaghara data

Ebe ọ bụ na naanị otu mpaghara na-ahụ maka igodo ọ bụla, ihe ngwọta maka nsogbu ndị metụtara mkpọka RS ma ọ bụ nkwụsịtụ bụ ịchekwa data niile dị mkpa na HDFS. Mgbe RS dara, nna ukwu na-achọpụta nke a site na enweghị nkụda mmụọ na ọnụ ZooKeeper. Mgbe ahụ, ọ na-ekenye mpaghara a na-eje ozi na RS ọzọ na ebe ọ bụ na a na-echekwa HFiles na sistemụ faịlụ na-ekesa, onye nwe ọhụrụ na-agụ ha ma na-aga n'ihu na-eje ozi data ahụ. Agbanyeghị, ebe ọ bụ na ụfọdụ data nwere ike ịdị na MemStore ma enweghị oge ịbanye na HFiles, WAL, nke echekwara na HDFS, na-eji weghachi akụkọ ihe mere eme nke arụmọrụ. Mgbe emechara mgbanwe ndị ahụ, RS nwere ike ịzaghachi arịrịọ, mana mmegharị ahụ na-eduga n'eziokwu na ụfọdụ data na usoro na-eje ozi ha na-ejedebe na ọnụ dị iche iche, ya bụ. mpaghara na-ebelata.

Ihe ngwọta maka nsogbu ahụ bụ nnukwu mgbagwoju anya - usoro a na-ebugharị faịlụ na oghere ndị ahụ na-ahụ maka ha (ebe mpaghara ha dị), n'ihi nke a n'oge usoro a, ibu na netwọk na diski na-abawanye nke ọma. Agbanyeghị, n'ọdịnihu, a na-achọpụta ngwa ngwa ịnweta data. Na mgbakwunye, major_compaction na-eme ijikọ HFiles niile n'otu faịlụ n'ime mpaghara, ma na-ehichapụ data dabere na ntọala tebụl. Dịka ọmụmaatụ, ị nwere ike ịkọwa ọnụọgụ nke ụdị ihe a ga-edobe ma ọ bụ ogologo ndụ ya ka ehichapụrụ ihe ahụ.

Usoro a nwere ike inwe mmetụta dị mma na ọrụ HBase. Foto dị n'okpuru ebe a na-egosi ka arụrụ ọrụ si wedata n'ihi ndekọ data na-arụ ọrụ. N'ebe a, ị ga-ahụ ka eri iri anọ si dee n'otu tebụl na eriri iri anọ na-agụ data n'otu oge. Eriri ede na-emepụta ọtụtụ HFiles, nke eriri ndị ọzọ na-agụ. N'ihi ya, ọ dị mkpa ka ewepụkwu data na ebe nchekwa na-emecha GC malite ịrụ ọrụ, nke na-eme ka ọrụ niile kwụsị. Mwepụta nke nnukwu mkpokọta mere ka ikpochapụ ihe mkpofu na-akpata na mweghachi nke nrụpụta.

Tiori na omume nke iji HBase
Emere ule a na 3 DataNodes na 4 RS (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 eri). Ụdị HBase 1.2.0-cdh5.14.2

Okwesiri iburu n'uche na eweputara nnukwu nchikota n'elu tebụl "ndụ", nke edere ma gụọ data n'ime ya. Enwere nkwupụta n'ịntanetị na nke a nwere ike ibute nzaghachi na-ezighi ezi mgbe ị na-agụ data. Iji lelee, ewepụtara usoro nke weputara data ọhụrụ wee dee ya na tebụl. Mgbe nke ahụ gasịrị, agụpụtara m ozugbo wee chọpụta ma uru ọ pụtara dabara n'ihe e dere ede. Mgbe usoro a na-aga n'ihu, a na-agbakọta nnukwu nchịkọta ihe dị ka ugboro 200 ma ọ dịghị otu ọdịda e dekọrọ. Ikekwe nsogbu ahụ na-apụta adịkarịghị ma ọ bụ naanị n'oge ibu dị elu, ya mere, ọ dị mma ịkwụsị usoro ederede na ịgụ akwụkwọ dị ka akwadoro ma mee ihicha iji gbochie ndị dị otú ahụ GC drawdowns.

Ọzọkwa, nnukwu nchịkọta anaghị emetụta ọnọdụ MemStore; iji wụnye ya na diski wee kọkọta ya, ịkwesịrị iji flush (connection.getAdmin() .flush(TableName.valueOf(tblName))).

8. Ntọala na arụmọrụ

Dị ka e kwuru na mbụ, HBase na-egosi ihe ịga nke ọma ya kasị ukwuu ebe ọ dịghị mkpa ime ihe ọ bụla, mgbe ọ na-eme BulkLoad. Agbanyeghị, nke a na-emetụta ọtụtụ sistemụ na ndị mmadụ. Otú ọ dị, ngwá ọrụ a dabara adaba maka ịchekwa data n'ọtụtụ n'ime nnukwu blọk, ebe ọ bụrụ na usoro a chọrọ ọtụtụ asọmpi ịgụ na ide arịrịọ, a na-eji iwu Get na Tinye a kọwara n'elu. Iji chọpụta paramita kachasị mma, a na-eme mmalite ya na ngwakọta dị iche iche nke paramita tebụl na ntọala:

  • Emere eriri iri 10 n'otu oge ugboro atọ n'usoro (ka anyị kpọọ nke a ngọngọ nke eri).
  • Oge ọrụ nke eriri niile dị na ngọngọ bụ nkezi ma bụrụ nsonaazụ ikpeazụ nke ọrụ ngọngọ ahụ.
  • Eriri niile ejiri otu tebụl rụọ ọrụ.
  • Tupu mmalite nke ọ bụla nke ngọngọ eri ahụ, a na-eme nnukwu nchịkọta.
  • Ihe mgbochi ọ bụla rụrụ naanị otu n'ime ọrụ ndị a:

— Tinye
- Nweta
- Nweta+Tinye

  • Ihe mgbochi ọ bụla rụrụ 50 ugboro ugboro nke ọrụ ya.
  • Nha ngọngọ nke ndekọ bụ 100 bytes, 1000 bytes ma ọ bụ 10000 bytes (random).
  • Ejiri ọnụọgụ dị iche iche nke igodo achọrọ (ma otu igodo ma ọ bụ 10) wepụta ihe mgbochi.
  • A na-agbaba ihe mgbochi ndị ahụ n'okpuru ntọala tebụl dị iche iche. Agbanwere oke:

- BlockCache = agbanwuru ma ọ bụ gbanyụọ
- BlockSize = 65 KB ma ọ bụ 16 KB
- Nkebi = 1, 5 ma ọ bụ 30
- MSLAB = enyere ma ọ bụ gbanyụọ

Ya mere mgbochi ahụ dị ka nke a:

a. Agbanyụrụ/ gbanyụọ ụdị MSLAB.
b. E kere tebụl nke edobere paramita ndị a: BlockCache = eziokwu/ọ dịghị, BlockSize = 65/16 Kb, Partition = 1/5/30.
c. Etinyere mkpakọ na GZ.
d. Emere eriri iri n'otu oge na-eme 10/1 tinye / nweta / nweta + tinye ọrụ n'ime tebụl a nwere ndekọ nke 10/100/1000 bytes, na-eme ajụjụ 10000 n'usoro (igodo random).
e. A kpọgharịrị ihe d ugboro atọ.
f. Ogologo oge ọrụ nke eri niile bụ nkezi.

A nwalere nchikota niile enwere ike. A na-atụ anya na ọsọ ga-ada ka ogo ndekọ na-abawanye, ma ọ bụ na nkwụsị nke caching ga-eme ka ọ daa. Otú ọ dị, ihe mgbaru ọsọ bụ ịghọta ogo na uru nke mmetụta nke paramita ọ bụla, ya mere, a na-enyefe data a na-anakọta n'ime ntinye nke ọrụ nkwụghachi ụgwọ nke linear, nke na-eme ka o kwe omume iji nyochaa ihe ọ pụtara site na iji t-statistics. N'okpuru bụ nsonaazụ nke blocks na-arụ ọrụ Put. Nchikota zuru oke 2*2*3*2*3 = 144 nhọrọ + 72 tk. e mere ụfọdụ ugboro abụọ. Ya mere, enwere 216 na-agba ọsọ na mkpokọta:

Tiori na omume nke iji HBase
Emere ule na obere ụyọkọ nke nwere 3 DataNodes na 4 RS (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 eri). Ụdị HBase 1.2.0-cdh5.14.2.

Enwetara ọsọ ntinye kachasị elu nke 3.7 sekọnd na agbanyụrụ ọnọdụ MSLAB, na tebụl nwere otu akụkụ, yana BlockCache nyeere, BlockSize = 16, ndekọ nke 100 bytes, 10 iberibe kwa mkpọ.
Enwetara ọsọ ntinye kacha ala nke 82.8 sec site na iji ọnọdụ MSLAB nyere aka, na tebụl nwere otu akụkụ, yana BlockCache nyeere, BlockSize = 16, ndekọ nke 10000 bytes, 1 nke ọ bụla.

Ugbu a, ka anyị lee ihe nlereanya ahụ anya. Anyị na-ahụ àgwà ọma nke ihe nlereanya dabere na R2, ma o doro anya na extrapolation bụ contraindicated ebe a. Omume ziri ezi nke usoro mgbe mgbanwe paramita agaghị abụ linear; ihe nlereanya a chọrọ ọ bụghị maka amụma, kama maka ịghọta ihe mere n'ime paramita enyere. Dịka ọmụmaatụ, ebe a, anyị na-ahụ site na njirimara nwata akwụkwọ na BlockSize na BlockCache paramita adịghị mkpa maka itinye ọrụ (nke a na-ebukarị amụma):

Tiori na omume nke iji HBase
Ma eziokwu na-amụba ọnụ ọgụgụ nke partitions na-eduga a mbelata na arụmọrụ bụ dịtụ na-atụghị anya (anyị ahụlarị mmetụta dị mma nke ịba ụba ọnụ ọgụgụ nke partitions na BulkLoad), ọ bụ ezie na nghọta. Nke mbụ, maka nhazi, ị ga-ebunye arịrịọ na mpaghara 30 kama ịbụ otu, na olu data abụghị nke na nke a ga-eweta uru. Nke abuo, ngụkọta oge ọrụ na-ekpebi RS kacha nwayọ, ebe ọ bụ na ọnụ ọgụgụ DataNodes erughị ọnụ ọgụgụ RS, ụfọdụ mpaghara enweghị mpaghara efu. Ọfọn, ka anyị leba anya na ise kacha elu:

Tiori na omume nke iji HBase
Ugbu a, ka anyị nyochaa nsonaazụ nke ime Get blocks:

Tiori na omume nke iji HBase
Ọnụ ọgụgụ nke nkebi abaghị uru, nke a na-akọwa site na eziokwu ahụ bụ na echekwara data nke ọma na cache na-agụ bụ ihe kachasị mkpa (ọnụ ọgụgụ). Dị ka o kwesịrị ịdị, ịba ụba nke ozi na arịrịọ dịkwa oke uru maka ịrụ ọrụ. Akara kacha

Tiori na omume nke iji HBase
Ọ dị mma, n'ikpeazụ, ka anyị leba anya n'ụdị ngọngọ ahụ nke mbụ rụrụ get wee tinye:

Tiori na omume nke iji HBase
Paragraf niile dị mkpa ebe a. Na nsonaazụ ndị isi:

Tiori na omume nke iji HBase

9. Nnwale ibu

Ọfọn, n'ikpeazụ, anyị ga-ebupụta ibu dị mma ma ọ bụ dị ntakịrị, ma ọ na-adọrọ mmasị mgbe niile mgbe ị nwere ihe ị ga-eji tụnyere. Na webụsaịtị DataStax, isi onye nrụpụta Cassandra, enwere nsonaazụ ya NT nke ọtụtụ nchekwa NoSQL, gụnyere ụdị HBase 0.98.6-1. Ejiri eriri iri anọ rụọ ya, nha data 40 bytes, diski SSD. Nsonaazụ nke ịnwale arụmọrụ Gụọ-Mgbanwe-Dee gosiri nsonaazụ ndị a.

Tiori na omume nke iji HBase
Dị ka m ghọtara, a na-agụ akwụkwọ na blocks nke 100 ndekọ na maka 16 HBase nodes, DataStax test gosiri arụmọrụ nke 10 puku ọrụ kwa sekọnd.

Ọ dabara nke ọma na ụyọkọ anyị nwekwara oghere 16, mana ọ bụghị “kechioma” na nke ọ bụla nwere cores 64 (eriri), ebe na ule DataStax enwere naanị 4. N'aka nke ọzọ, ha nwere draịva SSD, ebe anyị nwere HDD. ma ọ bụ karịa ụdị ọhụrụ nke ojiji HBase na CPU n'oge ibu anaghị abawanye nke ukwuu (n'anya site na pasent 5-10). Agbanyeghị, ka anyị gbalịa ịmalite iji nhazi a. Ntọala tebụl emeghị nke ọma, a na-agụ akwụkwọ n'usoro igodo site na 0 ruo nde 50 na-enweghị usoro (ya bụ, ọ dị ọhụrụ mgbe ọ bụla). Tebụl ahụ nwere ihe ndekọ 50 nde, kewara n'ime akụkụ 64. A na-ekpochapụ igodo ndị ahụ site na iji crc32. Ntọala tebụl bụ ndabara, agbanyere MSLAB. Na-ebido eriri iri anọ, eri nke ọ bụla na-agụ otu igodo random 40 wee dee 100 bytes emepụtara ozugbo na igodo ndị a.

Tiori na omume nke iji HBase
Nkwụsi ike: 16 DataNode na 16 RS (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 eri). Ụdị HBase 1.2.0-cdh5.14.2.

Nkezi nsonaazụ dị nso 40 puku arụmọrụ kwa sekọnd, nke dị mma karịa na ule DataStax. Agbanyeghị, maka ebumnuche nnwale, ị nwere ike gbanwee ọnọdụ ahụ ntakịrị. O yighị ka a ga-arụ ọrụ niile naanị n'otu tebụl, yana naanị na igodo pụrụ iche. Ka anyị were ya na enwere ụfọdụ igodo “ọkụ” na-ebute ibu bụ isi. Ya mere, ka anyị gbalịa ịmepụta ibu nke nwere nnukwu ndekọ (10 KB), nakwa na batches 100, na tebụl 4 dị iche iche ma na-amachi ọnụ ọgụgụ nke igodo ndị a rịọrọ na puku 50. Eserese dị n'okpuru na-egosi mmalite nke 40 eri, eri ọ bụla na-agụ. otu igodo 100 wee dee 10 KB ozugbo na igodo ndị a azụ.

Tiori na omume nke iji HBase
Nkwụsi ike: 16 DataNode na 16 RS (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 eri). Ụdị HBase 1.2.0-cdh5.14.2.

N'oge ibu ahụ, a na-emepụta nnukwu nchịkọta ọtụtụ ugboro, dị ka egosiri n'elu, na-enweghị usoro a, arụmọrụ ga-eji nwayọọ nwayọọ na-ebelata, Otú ọ dị, ibu ọzọ na-ebilite n'oge a na-egbu ya. Ihe kpatara ya bụ ihe dị iche iche. Mgbe ụfọdụ, eri na-arụ ọrụ ma a na-akwụsịtụ ka ha na-amaliteghachi, mgbe ụfọdụ ngwa ndị ọzọ na-emepụta ibu na ụyọkọ ahụ.

Ịgụ na ide ihe ozugbo bụ otu n'ime ọnọdụ ọrụ kacha sie ike maka HBase. Ọ bụrụ na ị na-eme ka obere tinye arịrịọ, dịka ọmụmaatụ 100 bytes, na-ejikọta ha n'ime ngwugwu 10-50 puku iberibe, ị nwere ike nweta ọtụtụ narị puku ọrụ kwa nkeji, ọnọdụ ahụ dịkwa na arịrịọ na-agụ naanị. Ọ dị mma ịmara na nsonaazụ ya dị mma karịa nke DataStax nwetara, nke kachasị n'ihi arịrịọ na ngọngọ nke 50 puku.

Tiori na omume nke iji HBase
Nkwụsi ike: 16 DataNode na 16 RS (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 eri). Ụdị HBase 1.2.0-cdh5.14.2.

10. Mmechi

Nke a na usoro bụ nnọọ flexibly ahazi, ma mmetụta nke a ọnụ ọgụgụ buru ibu nke parameters ka na-anọgide na-amaghị. A nwalere ụfọdụ n'ime ha, mana etinyeghị ya na nhazi ule arụpụtara. Dịka ọmụmaatụ, nnwale ndị mbụ gosiri mkpa ọ dị mkpa dị ka DATA_BLOCK_ENCODING, nke na-eji ụkpụrụ sitere na sel ndị agbata obi tinye ozi na-enweghị ihe ọ bụla. Ọ bụrụ na ị na-eji ọnụ ọgụgụ buru ibu nke ihe oyiri, uru ahụ nwere ike ịba uru. N'ozuzu, anyị nwere ike ịsị na HBase na-enye echiche nke nchekwa data dị oke njọ na nke echepụtara nke ọma, nke nwere ike ịba uru mgbe ị na-arụ ọrụ na nnukwu data. Karịsịa ma ọ bụrụ na ọ ga-ekwe omume ikewapụta usoro ịgụ na ide ihe n'oge.

Ọ bụrụ na ọ dị ihe n'echiche gị nke na-egosighi nke ọma, adị m njikere ịgwa gị n'ụzọ zuru ezu. Anyị na-akpọ gị òkù ịkọrọ ahụmahụ gị ma ọ bụ kparịta ụka ma ọ bụrụ na ị kwenyeghị na ihe ọ bụla.

isi: www.habr.com

Tinye a comment