Kev xav thiab kev xyaum siv HBase

Nyob zoo tav su Kuv lub npe yog Danil Lipovoy, peb pab neeg ntawm Sbertech pib siv HBase ua chaw cia rau cov ntaub ntawv ua haujlwm. Nyob rau hauv cov chav kawm ntawm kev kawm nws, kev paub tau sau tseg uas kuv xav kom systematize thiab piav qhia (peb cia siab tias nws yuav pab tau ntau tus). Txhua qhov kev sim hauv qab no tau ua nrog HBase versions 1.2.0-cdh5.14.2 thiab 2.0.0-cdh6.0.0-beta1.

  1. General architecture
  2. Sau cov ntaub ntawv rau HBASE
  3. Nyeem cov ntaub ntawv los ntawm HBASE
  4. Cov ntaub ntawv Caching
  5. Batch data processing MultiGet/MultiPut
  6. Lub tswv yim rau kev faib cov ntxhuav rau hauv cheeb tsam (splitting)
  7. Fault kam rau ua, compactification thiab cov ntaub ntawv chaw
  8. Kev teeb tsa thiab kev ua haujlwm
  9. Kev Ntsuas Kev Nyuaj Siab
  10. tshawb pom

1. General architecture

Kev xav thiab kev xyaum siv HBase
Tus Master thaub qab mloog lub plawv dhia ntawm tus nquag ua haujlwm ntawm ZooKeeper node thiab, yog tias ploj lawm, yuav siv sij hawm dhau qhov kev ua haujlwm ntawm tus tswv.

2. Sau cov ntaub ntawv rau HBASE

Ua ntej, cia peb saib cov ntaub ntawv yooj yim tshaj plaws - sau cov khoom tseem ceeb rau ib lub rooj siv put(rowkey). Tus neeg siv yuav tsum xub paub seb qhov twg hauv paus Region Server (RRS), uas khaws cov hbase: meta rooj, nyob. Nws tau txais cov ntaub ntawv no los ntawm ZooKeeper. Tom qab ntawd nws nkag mus rau RRS thiab nyeem cov lus hbase: meta, los ntawm qhov uas nws rho tawm cov ntaub ntawv hais txog qhov twg RegionServer (RS) yog lub luag haujlwm khaws cia cov ntaub ntawv rau qhov muab rowkey hauv lub rooj txaus siab. Rau kev siv yav tom ntej, cov lus meta yog cached los ntawm tus neeg siv khoom thiab yog li kev hu xov tooj tom ntej mus sai dua, ncaj qha rau RS.

Tom ntej no, RS, tau txais kev thov, ua ntej ntawm tag nrho sau nws mus rau WriteAheadLog (WAL), uas yog tsim nyog rau kev rov qab los nyob rau hauv cov ntaub ntawv ntawm kev sib tsoo. Tom qab ntawd txuag cov ntaub ntawv rau MemStore. Qhov no yog qhov tsis nyob hauv lub cim xeeb uas muaj cov txheej txheem ntawm cov yuam sij rau ib cheeb tsam. Ib lub rooj tuaj yeem muab faib ua cov cheeb tsam (chaw faib), txhua qhov uas muaj cov yuam sij disjoint. Qhov no tso cai rau koj tso cov cheeb tsam ntawm cov servers sib txawv kom ua tiav kev ua tau zoo dua. Txawm li cas los xij, txawm hais tias qhov tseeb ntawm cov lus no, peb yuav pom tom qab tias qhov no tsis ua haujlwm rau txhua kis.

Tom qab tso ib qho kev nkag rau hauv MemStore, cov lus teb rov qab rau tus neeg siv khoom tias kev nkag tau raug cawm tau zoo. Txawm li cas los xij, hauv kev muaj tiag nws tsuas yog khaws cia hauv qhov tsis muaj thiab nkag mus rau lub disk tsuas yog tom qab qee lub sijhawm dhau los lossis thaum nws tau sau nrog cov ntaub ntawv tshiab.

Kev xav thiab kev xyaum siv HBase
Thaum ua haujlwm "Delete", cov ntaub ntawv tsis raug tshem tawm. Lawv tsuas yog cim raws li kev tshem tawm, thiab kev puas tsuaj nws tus kheej tshwm sim thaum lub sijhawm hu rau qhov loj me me, uas tau piav qhia ntau ntxiv hauv kab lus 7.

Cov ntaub ntawv nyob rau hauv HFile hom ntawv yog sau nyob rau hauv HDFS thiab los ntawm lub sij hawm mus rau lub sij hawm lub me me compact txheej txheem yog launched, uas yooj yim merges me me cov ntaub ntawv mus rau hauv loj sawv daws yuav tsis rho tawm dab tsi. Nyob rau tib lub sijhawm, qhov no hloov mus rau qhov teeb meem uas tsuas yog tshwm sim thaum nyeem cov ntaub ntawv (peb yuav rov qab los rau qhov no me ntsis tom qab).

Ntxiv nrog rau cov txheej txheem thauj khoom uas tau piav qhia saum toj no, muaj cov txheej txheem ua tau zoo dua, uas yog kab tias sab muaj zog tshaj plaws ntawm cov ntaub ntawv no - BulkLoad. Nws nyob hauv qhov tseeb tias peb tus kheej tsim HFiles thiab muab tso rau hauv disk, uas tso cai rau peb ntsuas qhov zoo tshaj plaws thiab ua tiav qhov nrawm nrawm. Qhov tseeb, qhov kev txwv ntawm no tsis yog HBase, tab sis lub peev xwm ntawm cov khoom siv kho vajtse. Hauv qab no yog cov txiaj ntsig khau raj ntawm pawg suav nrog 16 RegionServers thiab 16 NodeManager YARN (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 threads), HBase version 1.2.0-cdh5.14.2.

Kev xav thiab kev xyaum siv HBase

Ntawm no koj tuaj yeem pom tias los ntawm kev nce tus naj npawb ntawm partitions (cov cheeb tsam) hauv lub rooj, nrog rau Spark executors, peb tau txais kev nce hauv kev rub tawm ceev. Tsis tas li ntawd, qhov ceev nyob ntawm qhov ntim ntim. Cov blocks loj muab qhov nce hauv MB / sec, cov blocks me me ntawm cov ntaub ntawv tso rau hauv ib chav tsev ntawm lub sijhawm, txhua yam sib npaug.

Koj tuaj yeem pib thauj khoom rau hauv ob lub rooj tib lub sijhawm thiab tau txais ob npaug ntawm qhov ceev. Hauv qab no koj tuaj yeem pom tias kev sau 10 KB blocks rau ob lub rooj ib zaug tshwm sim ntawm qhov nrawm ntawm 600 MB / sec hauv txhua qhov (tag nrho 1275 MB / sec), uas ua ke nrog kev ceev ntawm kev sau ntawv rau ib lub rooj 623 MB / sec (saib No. 11 saum toj no)

Kev xav thiab kev xyaum siv HBase
Tab sis qhov thib ob khiav nrog cov ntaub ntawv ntawm 50 KB qhia tau hais tias kev rub tawm ceev tau nce me ntsis, uas qhia tau hais tias nws nce mus txog qhov txwv qhov tseem ceeb. Nyob rau tib lub sijhawm, koj yuav tsum nco ntsoov tias tsis muaj cov khoom tsim tawm ntawm HBASE nws tus kheej, txhua yam uas yuav tsum tau ua ntawm nws yog thawj zaug muab cov ntaub ntawv los ntawm hbase: meta, thiab tom qab kab HFiles, rov pib dua cov ntaub ntawv BlockCache thiab txuag cov ntaub ntawv. MemStore tsis rau disk, yog tias nws tsis yog khoob.

3. Nyeem cov ntaub ntawv los ntawm HBASE

Yog tias peb xav tias tus neeg siv khoom twb muaj tag nrho cov ntaub ntawv los ntawm hbase:meta (saib point 2), ces qhov kev thov mus ncaj qha rau RS qhov twg cov yuam sij yuav tsum tau khaws cia. Ua ntej, kev tshawb nrhiav tau ua hauv MemCache. Txawm hais tias muaj cov ntaub ntawv nyob ntawd lossis tsis muaj, kev tshawb nrhiav kuj tau ua hauv BlockCache tsis thiab, yog tias tsim nyog, hauv HFiles. Yog tias pom cov ntaub ntawv hauv cov ntaub ntawv, nws tau muab tso rau hauv BlockCache thiab yuav raug xa rov qab sai dua ntawm qhov kev thov tom ntej. Tshawb nrhiav hauv HFile yog qhov nrawm ua tsaug rau kev siv Bloom lim, i.e. tau nyeem ib qho me me ntawm cov ntaub ntawv, nws tam sim ntawd txiav txim siab seb cov ntaub ntawv no puas muaj tus yuam sij xav tau thiab yog tias tsis yog, ces txav mus rau lwm qhov.

Kev xav thiab kev xyaum siv HBase
Tau txais cov ntaub ntawv los ntawm peb qhov chaw, RS tsim cov lus teb. Tshwj xeeb, nws tuaj yeem hloov pauv ntau qhov kev pom ntawm ib qho khoom ib zaug yog tias tus neeg siv tau thov versioning.

4. Cov ntaub ntawv Caching

Lub MemStore thiab BlockCache buffers nyob txog li 80% ntawm cov kev faib rau hauv-heap RS nco (tus so yog tseg rau RS cov haujlwm pabcuam). Yog tias hom kev siv raug zoo li cov txheej txheem sau thiab nyeem cov ntaub ntawv tam sim ntawd, nws ua rau kev txiav txim siab txo BlockCache thiab nce MemStore, vim Thaum sau cov ntaub ntawv tsis nkag mus rau hauv cache rau kev nyeem ntawv, BlockCache yuav siv tsawg dua. Lub BlockCache tsis muaj ob ntu: LruBlockCache (ib txwm nyob rau hauv-heap) thiab BucketCache (feem ntau yog off-heap lossis ntawm SSD). BucketCache yuav tsum tau siv thaum muaj ntau qhov kev thov nyeem ntawv thiab lawv tsis haum rau LruBlockCache, uas ua rau muaj kev ua haujlwm ntawm cov khib nyiab khib nyiab. Nyob rau tib lub sijhawm, koj yuav tsum tsis txhob cia siab tias yuav nce qhov kev ua tau zoo los ntawm kev siv cov ntawv nyeem cache, tab sis peb yuav rov qab mus rau qhov no hauv kab lus 8.

Kev xav thiab kev xyaum siv HBase
Muaj ib qho BlockCache rau tag nrho RS, thiab muaj ib qho MemStore rau txhua lub rooj (ib qho rau txhua Pawg Tsev Neeg).

Yuav ua li cas piav nyob rau hauv txoj kev xav, thaum sau ntawv, cov ntaub ntawv tsis mus rau hauv lub cache thiab qhov tseeb, xws li tsis CACHE_DATA_ON_WRITE rau lub rooj thiab "Cache DATA ntawm Sau" rau RS yog teem rau cuav. Txawm li cas los xij, hauv kev xyaum, yog tias peb sau cov ntaub ntawv rau MemStore, tom qab ntawd yaug nws mus rau disk (yog li tshem nws), tom qab ntawd tshem tawm cov ntaub ntawv tshwm sim, tom qab ntawd los ntawm kev ua tiav qhov kev thov peb yuav tau txais cov ntaub ntawv tiav. Ntxiv mus, txawm tias koj tsis ua haujlwm BlockCache kiag li thiab sau lub rooj nrog cov ntaub ntawv tshiab, tom qab ntawd rov pib MemStore rau disk, rho tawm lawv thiab thov lawv los ntawm lwm qhov kev sib tham, lawv tseem yuav rov qab los ntawm qhov chaw. Yog li HBase khw muag khoom tsis yog cov ntaub ntawv nkaus xwb, tab sis kuj tseem paub tsis meej.

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

Qhov "Cache DATA ntawm Nyeem" parameter yog teem rau cuav. Yog tias koj muaj tswv yim, txais tos los tham hauv cov lus.

5. Batch cov ntaub ntawv ua MultiGet/MultiPut

Ua ib qho kev thov (Tau / Tso / Rho tawm) yog qhov haujlwm kim heev, yog tias ua tau, koj yuav tsum muab lawv tso rau hauv Daim Ntawv Teev Npe lossis Daim Ntawv Teev Npe, uas tso cai rau koj kom tau txais kev txhawb nqa tseem ceeb. Qhov no yog qhov tseeb tshwj xeeb rau kev sau ntawv, tab sis thaum nyeem ntawv muaj qhov kev poob siab hauv qab no. Daim duab hauv qab no qhia lub sijhawm nyeem 50 cov ntaub ntawv los ntawm MemStore. Kev nyeem ntawv tau ua nyob rau hauv ib txoj xov thiab kab rov tav axis qhia cov lej ntawm cov yuam sij hauv qhov kev thov. Ntawm no koj tuaj yeem pom tias thaum nce mus rau ib txhiab tus yuam sij hauv ib qhov kev thov, lub sijhawm ua tiav poob, piv txwv li. ceev nce. Txawm li cas los xij, nrog MSLAB hom tau qhib los ntawm lub neej ntawd, tom qab qhov pib qhov kev poob qis hauv kev ua haujlwm pib, thiab qhov loj dua cov ntaub ntawv hauv cov ntaub ntawv, lub sijhawm ua haujlwm ntev dua.

Kev xav thiab kev xyaum siv HBase

Kev ntsuam xyuas tau ua tiav ntawm lub tshuab virtual, 8 cores, version HBase 2.0.0-cdh6.0.0-beta1.

MSLAB hom yog tsim los txo heap fragmentation, uas tshwm sim los ntawm kev sib xyaw ntawm cov ntaub ntawv tshiab thiab qub tiam. Raws li kev ua haujlwm, thaum MSLAB tau qhib, cov ntaub ntawv tau muab tso rau hauv cov hlwb me me (chunks) thiab ua tiav hauv chunks. Yog li ntawd, thaum lub ntim nyob rau hauv cov ntaub ntawv thov pob ntawv tshaj qhov faib loj, kev ua tau zoo poob sharply. Ntawm qhov tod tes, tig tawm hom no kuj tsis pom zoo, vim nws yuav ua rau nres vim GC thaum lub sijhawm ua cov ntaub ntawv hnyav. Ib qho kev daws teeb meem zoo yog txhawm rau nce lub ntim ntawm tes hauv cov ntaub ntawv ntawm kev sau ntawv nquag ntawm muab tso rau tib lub sijhawm nyeem ntawv. Nws yog tsim nyog sau cia tias qhov teeb meem tsis tshwm sim yog tias, tom qab kaw, koj khiav cov lus txib flush, uas rov pib dua MemStore rau disk, lossis yog tias koj thauj khoom siv BulkLoad. Cov lus hauv qab no qhia tau hais tias cov lus nug los ntawm MemStore rau cov ntaub ntawv loj dua (thiab tib tus nqi) ua rau qeeb qeeb. Txawm li cas los xij, los ntawm kev nce chunksize peb rov qab ua lub sijhawm ua haujlwm zoo li qub.

Kev xav thiab kev xyaum siv HBase
Ntxiv rau qhov nce chunksize, splitting cov ntaub ntawv los ntawm cheeb tsam pab, i.e. rooj splitting. Qhov no ua rau muaj kev thov tsawg dua tuaj rau txhua cheeb tsam thiab yog tias lawv haum rau hauv lub cell, cov lus teb tseem zoo.

6. Lub tswv yim rau kev faib cov ntxhuav rau hauv cheeb tsam (splitting)

Txij li HBase yog qhov tseem ceeb-tus nqi khaws cia thiab kev faib tawm yog ua los ntawm qhov tseem ceeb, nws yog qhov tseem ceeb heev kom faib cov ntaub ntawv sib npaug thoob plaws txhua cheeb tsam. Piv txwv li, muab faib ib lub rooj rau hauv peb seem yuav ua rau cov ntaub ntawv muab faib ua peb cheeb tsam:

Kev xav thiab kev xyaum siv HBase
Nws tshwm sim tias qhov no ua rau muaj kev poob qis yog tias cov ntaub ntawv thauj khoom tom qab zoo li, piv txwv li, cov nqi ntev, feem ntau ntawm lawv pib nrog tib tus lej, piv txwv li:

1000001
1000002
...
1100003

Txij li thaum cov yuam sij raug khaws cia ua ib qho byte array, lawv txhua tus yuav pib tib yam thiab koom rau tib cheeb tsam # 1 khaws cov yawm sij no. Muaj ntau ntau cov tswv yim muab faib:

HexStringSplit - Tig tus yuam sij rau hauv txoj hlua hexadecimal encoded hauv thaj tsam "00000000" => "FFFFFFFF" thiab padding rau sab laug nrog xoom.

UniformSplit - Tig tus yuam sij rau hauv ib qho byte array nrog hexadecimal encoding nyob rau hauv qhov ntau "00" => "FF" thiab padding ntawm sab xis nrog xoom.

Tsis tas li ntawd, koj tuaj yeem qhia meej txhua yam lossis cov yuam sij rau kev sib cais thiab teeb tsa nws pib-splitting. Txawm li cas los xij, ib txoj hauv kev yooj yim tshaj plaws thiab ua tau zoo tshaj plaws yog UniformSplit thiab kev siv cov hash concatenation, piv txwv li cov khub tseem ceeb tshaj plaws ntawm bytes los ntawm kev khiav tus yuam sij los ntawm CRC32 (rowkey) muaj nuj nqi thiab rowkey nws tus kheej:

hash + rowkey

Tom qab ntawd tag nrho cov ntaub ntawv yuav raug muab faib sib npaug ntawm cov cheeb tsam. Thaum nyeem ntawv, thawj ob bytes tsuas yog muab pov tseg thiab tus yuam sij qub tseem nyob. RS tseem tswj hwm tus nqi ntawm cov ntaub ntawv thiab cov yuam sij hauv cheeb tsam thiab, yog tias qhov txwv tau dhau lawm, nws yuav txiav nws mus rau hauv qhov chaw.

7. Ua txhaum cai thiab cov ntaub ntawv hauv zos

Txij li tsuas yog ib cheeb tsam yog lub luag haujlwm rau txhua txheej ntawm cov yuam sij, kev daws teeb meem cuam tshuam nrog RS crashes lossis decommissioning yog khaws tag nrho cov ntaub ntawv tsim nyog hauv HDFS. Thaum RS ntog, tus tswv pom qhov no los ntawm qhov tsis muaj lub plawv dhia ntawm ZooKeeper node. Tom qab ntawd nws muab thaj chaw pabcuam rau lwm tus RS thiab txij li HFiles tau muab khaws cia rau hauv cov ntaub ntawv faib tawm, tus tswv tshiab nyeem lawv thiab txuas ntxiv ua haujlwm rau cov ntaub ntawv. Txawm li cas los xij, vim qee cov ntaub ntawv yuav nyob hauv MemStore thiab tsis muaj sijhawm nkag mus rau hauv HFiles, WAL, uas tseem khaws cia hauv HDFS, yog siv los kho keeb kwm ntawm kev ua haujlwm. Tom qab cov kev hloov pauv tau thov, RS muaj peev xwm teb tau cov lus thov, tab sis qhov kev txav mus rau qhov tseeb tias qee cov ntaub ntawv thiab cov txheej txheem kev pabcuam lawv xaus rau ntawm qhov sib txawv, piv txwv li. thaj chaw yog txo qis.

Cov kev daws teeb meem yog qhov loj compaction - cov txheej txheem no txav cov ntaub ntawv mus rau cov nodes uas yog lub luag hauj lwm rau lawv (qhov twg lawv cheeb tsam nyob), vim hais tias ntawm lub sij hawm no cov txheej txheem loads nyob rau hauv lub network thiab disks nce sharply. Txawm li cas los xij, yav tom ntej, kev nkag mus rau cov ntaub ntawv tau nrawm nrawm. Tsis tas li ntawd, major_compaction ua kev sib koom ua ke ntawm tag nrho HFiles rau hauv ib cov ntaub ntawv nyob rau hauv ib cheeb tsam, thiab kuj ntxuav cov ntaub ntawv nyob ntawm lub rooj teeb tsa. Piv txwv li, koj tuaj yeem qhia tus naj npawb ntawm cov qauv ntawm ib yam khoom uas yuav tsum tau khaws cia lossis lub neej tom qab uas cov khoom raug tshem tawm ntawm lub cev.

Cov txheej txheem no tuaj yeem muaj txiaj ntsig zoo rau kev ua haujlwm ntawm HBase. Daim duab hauv qab no qhia tau hais tias kev ua tau zoo degraded li cas los ntawm cov ntaub ntawv kaw tseg. Ntawm no koj tuaj yeem pom yuav ua li cas 40 threads sau rau ib lub rooj thiab 40 threads ib txhij nyeem cov ntaub ntawv. Sau cov xov tsim ntau thiab ntau HFiles, uas tau nyeem los ntawm lwm cov xov. Raws li qhov tshwm sim, ntau thiab ntau cov ntaub ntawv yuav tsum tau muab tshem tawm ntawm lub cim xeeb thiab thaum kawg GC pib ua haujlwm, uas ua rau tuag tes tuag taw txhua txoj haujlwm. Lub community launch ntawm loj compaction ua rau kom tshem tawm cov khib nyiab uas tshwm sim thiab rov tsim kho cov khoom tsim tau.

Kev xav thiab kev xyaum siv HBase
Qhov kev sim tau ua tiav ntawm 3 DataNodes thiab 4 RS (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 threads). HBase version 1.2.0-cdh5.14.2

Nws yog ib qho tsim nyog sau cia tias qhov loj me me tau pib ntawm lub rooj "nyob", uas cov ntaub ntawv tau nquag sau thiab nyeem. Muaj cov lus tshaj tawm hauv online tias qhov no tuaj yeem ua rau cov lus teb tsis raug thaum nyeem cov ntaub ntawv. Txhawm rau txheeb xyuas, tus txheej txheem tau pib tsim cov ntaub ntawv tshiab thiab sau rau hauv lub rooj. Tom qab ntawd kuv nyeem tam sim ntawd thiab xyuas seb qhov txiaj ntsig tau tshwm sim los ntawm qhov tau sau tseg. Thaum cov txheej txheem no tab tom khiav, qhov loj compaction tau khiav txog 200 lub sij hawm thiab tsis tau kaw ib qho kev ua tsis tiav. Tej zaum qhov teeb meem tshwm sim tsis tshua muaj thiab tsuas yog thaum lub sij hawm thauj khoom siab, yog li nws muaj kev nyab xeeb dua los nres kev sau ntawv thiab nyeem cov txheej txheem raws li tau npaj tseg thiab ua kev tu kom tsis txhob muaj GC drawdowns.

Tsis tas li ntawd, qhov loj compaction tsis cuam tshuam rau lub xeev ntawm MemStore; kom yaug nws mus rau disk thiab compactify nws, koj yuav tsum siv flush (connection.getAdmin().flush(TableName.valueOf(tblName))).

8. Kev teeb tsa thiab kev ua haujlwm

Raws li twb tau hais lawm, HBase qhia nws txoj kev vam meej tshaj plaws uas nws tsis tas yuav ua dab tsi, thaum ua tiav BulkLoad. Txawm li cas los xij, qhov no siv rau feem ntau cov tshuab thiab tib neeg. Txawm li cas los xij, cov cuab yeej no yog qhov tsim nyog rau kev khaws cov ntaub ntawv hauv ntau hauv cov blocks loj, yog tias cov txheej txheem xav tau ntau yam kev sib tw nyeem thiab sau ntawv thov, Txais thiab Muab cov lus piav qhia saum toj no yog siv. Txhawm rau txiav txim siab qhov tsis zoo, kev xa tawm tau ua nrog ntau yam kev sib txuas ntawm cov lus tsis sib xws thiab teeb tsa:

  • 10 threads twb launched ib txhij 3 zaug nyob rau hauv kab (cia peb hu qhov no ib tug block ntawm threads).
  • Lub sijhawm ua haujlwm ntawm tag nrho cov xov hauv ib qho thaiv tau nruab nrab thiab yog qhov kawg ntawm qhov kev ua haujlwm ntawm lub block.
  • Tag nrho cov xov ua haujlwm nrog tib lub rooj.
  • Ua ntej txhua qhov pib ntawm cov xov thaiv, ib qho loj compaction tau ua.
  • Txhua lub block ua tsuas yog ib qho ntawm cov haujlwm hauv qab no:

β€” Muab
β€” Tau
-Tau + Tso

  • Txhua qhov thaiv tau ua 50 rov ua haujlwm ntawm nws txoj haujlwm.
  • Qhov thaiv loj ntawm cov ntaub ntawv yog 100 bytes, 1000 bytes lossis 10000 bytes (random).
  • Blocks tau pib nrog ntau tus lej ntawm cov yuam sij thov (xws li ib tus yuam sij lossis 10).
  • Cov blocks tau khiav hauv qab rooj sib txawv. Kev hloov pauv:

- BlockCache = qhib lossis kaw
- BlockSize = 65 KB lossis 16 KB
- Muab faib = 1, 5 lossis 30
- MSLAB = enabled lossis disabled

Yog li lub block zoo li no:

a. MSLAB hom tau qhib / tawm.
b. Ib lub rooj tau tsim los rau qhov kev teeb tsa hauv qab no: BlockCache = tseeb / tsis muaj, BlockSize = 65/16 Kb, Muab faib = 1/5/30.
c. Compression tau teem rau GZ.
d. 10 threads tau pib ua ib txhij ua 1/10 muab / tau / tau + tso cov haujlwm rau hauv lub rooj no nrog cov ntaub ntawv ntawm 100/1000/10000 bytes, ua 50 cov lus nug hauv kab (cov yuam sij random).
e. Point d tau rov ua peb zaug.
f. Lub sijhawm ua haujlwm ntawm tag nrho cov xov yog nruab nrab.

Txhua qhov sib xyaw ua ke tau raug sim. Nws yog kwv yees hais tias qhov ceev yuav poob raws li cov ntaub ntawv loj zuj zus, los yog tias kev tsis siv neeg caching yuav ua rau qeeb. Txawm li cas los xij, lub hom phiaj yog kom nkag siab txog qib thiab qhov tseem ceeb ntawm kev cuam tshuam ntawm txhua qhov kev ntsuas, yog li cov ntaub ntawv khaws cia tau muab tso rau hauv cov tswv yim ntawm cov kab rov tav regression, uas ua rau nws muaj peev xwm ntsuas qhov tseem ceeb siv t-statistics. Hauv qab no yog cov txiaj ntsig ntawm cov blocks ua haujlwm Put. Tag nrho cov kev sib txuas ua ke 2 * 2 * 3 * 2 * 3 = 144 kev xaiv + 72 tk. ib txhia tau ua ob zaug. Yog li ntawd, muaj 216 khiav tag nrho:

Kev xav thiab kev xyaum siv HBase
Kev ntsuam xyuas tau ua tiav ntawm ib pawg me me uas muaj 3 DataNodes thiab 4 RS (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 threads). HBase version 1.2.0-cdh5.14.2.

Qhov siab tshaj plaws nkag ceev ntawm 3.7 vib nas this tau nrog MSLAB hom tua, ntawm lub rooj nrog ib qho kev faib, nrog BlockCache enabled, BlockSize = 16, cov ntaub ntawv ntawm 100 bytes, 10 daim ib pob.
Qhov qis tshaj qhov ceev ntawm 82.8 sec tau txais nrog MSLAB hom enabled, ntawm lub rooj nrog ib qho kev faib, nrog BlockCache enabled, BlockSize = 16, cov ntaub ntawv ntawm 10000 bytes, 1 txhua.

Tam sim no cia saib tus qauv. Peb pom qhov zoo ntawm tus qauv raws li R2, tab sis nws yog kiag li meej tias extrapolation yog contraindicated ntawm no. Tus cwj pwm tiag tiag ntawm lub kaw lus thaum tsis hloov pauv yuav tsis yog linear; tus qauv no yog qhov xav tau tsis yog rau kev kwv yees, tab sis rau kev nkag siab txog qhov tshwm sim nyob rau hauv qhov muab tsis tau. Piv txwv li, ntawm no peb pom los ntawm Cov Tub Kawm Ntawv cov txheej txheem uas BlockSize thiab BlockCache tsis muaj teeb meem rau Kev Ua Haujlwm (uas feem ntau tuaj yeem kwv yees):

Kev xav thiab kev xyaum siv HBase
Tab sis qhov tseeb tias kev nce tus naj npawb ntawm cov partitions ua rau txo qis hauv kev ua tau zoo yog qhov xav tau me ntsis (peb twb pom qhov cuam tshuam zoo ntawm kev nce tus naj npawb ntawm partitions nrog BulkLoad), txawm tias nkag siab. Ua ntej, rau kev ua haujlwm, koj yuav tsum tsim cov lus thov rau 30 thaj tsam tsis yog ib qho, thiab qhov ntim ntawm cov ntaub ntawv tsis zoo li qhov no yuav ua rau muaj txiaj ntsig. Qhov thib ob, tag nrho lub sijhawm ua haujlwm yog txiav txim siab los ntawm RS qeeb tshaj plaws, thiab txij li tus naj npawb ntawm DataNodes tsawg dua li tus naj npawb ntawm RSs, qee thaj tsam muaj xoom hauv zos. Zoo, cia peb saib saum tsib:

Kev xav thiab kev xyaum siv HBase
Tam sim no cia peb soj ntsuam cov txiaj ntsig ntawm kev ua tiav Get blocks:

Kev xav thiab kev xyaum siv HBase
Tus naj npawb ntawm cov partitions tau poob qhov tseem ceeb, uas tej zaum tau piav qhia los ntawm qhov tseeb tias cov ntaub ntawv yog cached zoo thiab nyeem cache yog qhov tseem ceeb tshaj plaws (statistically) parameter. Lawm, nce tus naj npawb ntawm cov lus hauv kev thov kuj tseem muaj txiaj ntsig zoo rau kev ua haujlwm. Cov qhab nias siab tshaj:

Kev xav thiab kev xyaum siv HBase
Zoo, thaum kawg, cia peb saib tus qauv ntawm lub block uas thawj zaug ua tau thiab muab tso rau:

Kev xav thiab kev xyaum siv HBase
Tag nrho cov parameter tseem ceeb ntawm no. Thiab cov txiaj ntsig ntawm cov thawj coj:

Kev xav thiab kev xyaum siv HBase

9. Load xeem

Yog lawm, thaum kawg peb yuav tso ntau dua los yog tsawg dua load, tab sis nws ib txwm nthuav ntau dua thaum koj muaj ib yam dab tsi los piv nrog. Hauv lub vev xaib ntawm DataStax, tus tsim tawm tseem ceeb ntawm Cassandra, muaj cov ntsiab lus NT ntawm ib tus lej ntawm NoSQL khaws cia, suav nrog HBase version 0.98.6-1. Kev thauj khoom tau ua los ntawm 40 xov, cov ntaub ntawv loj 100 bytes, SSD disks. Qhov txiaj ntsig ntawm kev sim nyeem-Modify-Sau cov haujlwm tau pom cov txiaj ntsig hauv qab no.

Kev xav thiab kev xyaum siv HBase
Raws li kuv nkag siab, kev nyeem ntawv tau ua nyob rau hauv blocks ntawm 100 cov ntaub ntawv thiab rau 16 HBase nodes, DataStax xeem tau pom qhov ua tau zoo ntawm 10 txhiab kev ua haujlwm ib ob.

Nws yog hmoov zoo uas peb pawg kuj muaj 16 nodes, tab sis nws tsis yog "muaj hmoo" uas txhua tus muaj 64 cores (xov), thaum nyob rau hauv qhov kev xeem DataStax tsuas muaj 4. Ntawm qhov tod tes, lawv muaj SSD drives, thaum peb muaj HDDs. los yog ntau dua qhov tshiab ntawm HBase thiab CPU siv thaum lub sij hawm thauj khoom siv tsis tau nce ntau (pom los ntawm 5-10 feem pua). Txawm li cas los xij, cia peb sim pib siv qhov kev teeb tsa no. Default lub rooj teeb tsa, kev nyeem ntawv yog ua nyob rau hauv qhov tseem ceeb ntawm 0 txog 50 lab randomly (piv txwv li, qhov tseem ceeb tshiab txhua lub sijhawm). Lub rooj muaj 50 lab cov ntaub ntawv, muab faib ua 64 feem. Cov yuam sij yog hashed siv crc32. Cov lus teeb tsa yog lub neej ntawd, MSLAB tau qhib. Launching 40 threads, txhua lub xov nyeem ib txheej ntawm 100 random yuam sij thiab tam sim ntawd sau cov generated 100 bytes rov qab rau cov yawm sij no.

Kev xav thiab kev xyaum siv HBase
Stand: 16 DataNode thiab 16 RS (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 threads). HBase version 1.2.0-cdh5.14.2.

Qhov nruab nrab qhov tshwm sim yog ze rau 40 txhiab kev ua haujlwm ib ob, uas yog qhov zoo dua li hauv DataStax xeem. Txawm li cas los xij, rau qhov kev sim, koj tuaj yeem hloov pauv me ntsis. Nws yog qhov tsis zoo heev uas txhua txoj haujlwm yuav ua tiav tshwj xeeb ntawm ib lub rooj, thiab tsuas yog ntawm cov yuam sij tshwj xeeb. Cia peb xav tias muaj qee yam "kub" txheej ntawm cov yuam sij uas ua rau lub luag haujlwm tseem ceeb. Yog li ntawd, cia peb sim ua kom muaj kev thauj khoom nrog cov ntaub ntawv loj dua (10 KB), tseem nyob rau hauv batch ntawm 100, nyob rau hauv 4 lub rooj sib txawv thiab txwv qhov ntau ntawm cov yuam sij thov rau 50 txhiab. Daim duab hauv qab no qhia txog kev xa tawm ntawm 40 xov, txhua txoj xov nyeem ib txheej ntawm 100 tus yuam sij thiab tam sim ntawd sau random 10 KB ntawm cov yuam sij no rov qab.

Kev xav thiab kev xyaum siv HBase
Stand: 16 DataNode thiab 16 RS (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 threads). HBase version 1.2.0-cdh5.14.2.

Thaum lub sij hawm lub load, loj compaction twb launched ob peb zaug, raws li qhia saum toj no, tsis muaj cov txheej txheem no, kev ua tau zoo yuav maj mam degrade, txawm li cas los, ntxiv load kuj tshwm sim thaum lub sij hawm tua. Drawdowns yog tshwm sim los ntawm ntau yam. Qee lub sij hawm cov xov ua haujlwm tiav thiab muaj ib ntus thaum lawv rov pib dua, qee zaum cov ntawv thov thib peb tsim cov khoom thauj ntawm pawg.

Kev nyeem ntawv thiab sau tam sim yog ib qho ntawm cov xwm txheej nyuaj tshaj plaws rau HBase. Yog tias koj tsuas yog ua cov ntawv thov me me, piv txwv li 100 bytes, muab tso rau hauv pob khoom ntawm 10-50 txhiab daim, koj tuaj yeem tau txais ntau pua txhiab qhov haujlwm ib ob, thiab qhov xwm txheej zoo ib yam nrog kev thov nyeem nkaus xwb. Nws yog ib qho tsim nyog sau cia tias cov txiaj ntsig tau zoo dua li qhov tau txais los ntawm DataStax, feem ntau ntawm tag nrho vim kev thov hauv blocks ntawm 50 txhiab.

Kev xav thiab kev xyaum siv HBase
Stand: 16 DataNode thiab 16 RS (CPU Xeon E5-2680 v4 @ 2.40GHz * 64 threads). HBase version 1.2.0-cdh5.14.2.

10. Cov lus xaus

Cov kab ke no tau hloov kho tau yooj yim, tab sis qhov cuam tshuam ntawm ntau qhov tsis tseem ceeb tseem tsis tau paub. Qee tus ntawm lawv tau sim, tab sis tsis suav nrog hauv qhov kev sim ua tiav. Piv txwv li, kev sim ua ntej tau pom qhov tsis tseem ceeb ntawm qhov tsis zoo li DATA_BLOCK_ENCODING, uas encodes cov ntaub ntawv siv cov txiaj ntsig los ntawm cov hlwb nyob sib ze, uas yog nkag siab rau cov ntaub ntawv tsim los ntawm randomly. Yog tias koj siv ntau cov khoom sib npaug, qhov nce tuaj yeem yog qhov tseem ceeb. Feem ntau, peb tuaj yeem hais tias HBase muab lub tswv yim ntawm cov ntaub ntawv loj thiab kev xav zoo, uas tuaj yeem ua tau zoo heev thaum ua haujlwm nrog cov ntaub ntawv loj. Tshwj xeeb tshaj yog tias nws muaj peev xwm cais cov txheej txheem nyeem ntawv thiab sau ntawv raws sijhawm.

Yog tias muaj qee yam hauv koj qhov kev xav uas tsis tau nthuav tawm txaus, kuv npaj siab los qhia rau koj paub ntau ntxiv. Peb caw koj los qhia koj qhov kev paub dhau los lossis sib tham yog tias koj tsis pom zoo nrog qee yam.

Tau qhov twg los: www.hab.com

Ntxiv ib saib