記一次HBase寫入優(yōu)化測試
業(yè)務(wù)環(huán)境中,如果有大批量的Hbase寫需求,可以根據(jù)服務(wù)器資源情況進(jìn)行一定的調(diào)整,優(yōu)化參數(shù):
調(diào)整HMaster、RegionServer進(jìn)程的堆內(nèi)存大小
Hbase Master Maximum Memory和Hbase RegionServer Maximum Memory主要控制Master和RegionSserver能夠使用的內(nèi)存大小,根據(jù)需求適當(dāng)調(diào)整大小。在此次測試環(huán)境中都調(diào)整為32G
調(diào)整讀、寫緩沖區(qū)大小
調(diào)整RegionServer的讀和寫緩沖區(qū)的大小,此處0.4為40%,讀寫緩存的總和控制在80%以內(nèi),否則可能造成Hbase無法啟動的情況。
根據(jù)寫需求,可加大Hbase.regionserver.global.memstore.size的比例
默認(rèn)讀寫緩存比例值都為40%
測試環(huán)境中主要是為提高寫速度,所以讀調(diào)整為10%,寫調(diào)整為70%
調(diào)整memstore的flush size
Flush Size控制Memstore的超過一定至,就進(jìn)行Flush刷新,如果創(chuàng)建Hbase表未創(chuàng)建,系統(tǒng)默認(rèn)參數(shù)一遍為128M,在寫入請求多的情況下,可調(diào)整至256MB
調(diào)整HBase Region Block Multipiler參數(shù)配置
默認(rèn)值為2,如果memstore的內(nèi)存大小已經(jīng)超過了hbase.hregion.memstore.flush.size的2倍,則會阻塞memstore的寫操作,直到降至該值以下,為避免發(fā)生阻塞,最好調(diào)大該值,比如:4或8
本次測試環(huán)境中調(diào)整為8
調(diào)整Number of Handlers Per RegionServer參數(shù)配置
每個RegionServer開啟的RPC監(jiān)聽程序的總數(shù),默認(rèn)值為100,如果寫入的進(jìn)程多,可適當(dāng)加大數(shù)量
本次調(diào)整為當(dāng)前版本最大值240
在custome hbase-site中修改或添加如下配置
設(shè)置hbase.hstore.flusher.count為8
設(shè)置hbase.regionserver.thead.compaction.small為10
采用預(yù)分區(qū)方式創(chuàng)建HBase表
n_splits=100
create 'test_lp01',{NAME=>'info',VERSIONS=>'1',COMPRESSION=>'NONE',BLOOMFILTER => 'NONE',BLOCKSIZE=>'8192',IN_MEMORY=>'true'},{SPLITS=>(1..n_splits).map{|i|"user#{1000+i*(9999-1000)/n_splits}"}}
使用YCSB工具執(zhí)行純寫入操作,在寫入的時候關(guān)閉HBase的WAL。
./bin/ycsb load hbase10 -P? ./workloads/workloada_insert -p columnfamily=info? -p threadcount=100 -p table=test_lp01 -p durability=SKIP_WAL?? -p recordcount=10000000 –s
機器配置:
內(nèi)存:512GB
處理器:32核
磁盤:HDD
往HBase中寫入1千萬條數(shù)據(jù),每條數(shù)據(jù)1K大小,寫入性能結(jié)果如下:
Min=158, Avg=1922.58, 90=4175, 99=5775, 99.9=17647, 99.99=236287]
[OVERALL], RunTime(ms), 242936.0
[OVERALL], Throughput(ops/sec), 41163.104686007835
[TOTAL_GCS_PS_Scavenge], Count, 428.0
[TOTAL_GC_TIME_PS_Scavenge], Time(ms), 2017.0
[TOTAL_GC_TIME_%_PS_Scavenge], Time(%), 0.830259821516778
[TOTAL_GCS_PS_MarkSweep], Count, 0.0
[TOTAL_GC_TIME_PS_MarkSweep], Time(ms), 0.0
[TOTAL_GC_TIME_%_PS_MarkSweep], Time(%), 0.0
[TOTAL_GCs], Count, 428.0
[TOTAL_GC_TIME], Time(ms), 2017.0
[TOTAL_GC_TIME_%], Time(%), 0.830259821516778
[CLEANUP], Operations, 200.0
[CLEANUP], AverageLatency(us), 621.21
[CLEANUP], MinLatency(us), 1.0
[CLEANUP], MaxLatency(us), 122303.0
[CLEANUP], 95thPercentileLatency(us), 24.0
[CLEANUP], 99thPercentileLatency(us), 67.0
[INSERT], Operations, 1.0E7
[INSERT], AverageLatency(us), 2411.8575726
[INSERT], MinLatency(us), 158.0
[INSERT], MaxLatency(us), 356351.0
[INSERT], 95thPercentileLatency(us), 5451.0
[INSERT], 99thPercentileLatency(us), 6511.0
[INSERT], Return=OK, 10000000
Hadoop HBase
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。