国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

HBase數(shù)據(jù)庫性能調(diào)優(yōu)

數(shù)據(jù)庫 其他數(shù)據(jù)庫
因官方Book Performance Tuning部分章節(jié) 沒有按配置項進行索引,不能達到快速查閱的效果。所以我以配置項驅(qū)動,重新整理了原文,并補充一些自己的理解,如有錯誤,歡迎指正。

因官方Book Performance Tuning部分章節(jié) 沒有按配置項進行索引,不能達到快速查閱的效果。所以我以配置項驅(qū)動,重新整理了原文,并補充一些自己的理解,如有錯誤,歡迎指正。

配置優(yōu)化

zookeeper.session.timeout

默認值:3分鐘(180000ms)

說明:RegionServer與Zookeeper間的連接超時時間。當超時時間到后,ReigonServer會被Zookeeper從RS集群清單中移除,HMaster收到移除通知后,會對這臺server負責的regions重新balance,讓其他存活的RegionServer接管.

調(diào)優(yōu):

這個timeout決定了RegionServer是否能夠及時的failover。設置成1分鐘或更低,可以減少因等待超時而被延長的failover時間。

不過需要注意的是,對于一些Online應用,RegionServer從宕機到恢復時間本身就很短的(網(wǎng)絡閃斷,crash等故障,運維可快速介入),如果調(diào)低timeout時間,反而會得不償失。因為當ReigonServer被正式從RS集群中移除時,HMaster就開始做balance了 (讓其他RS根據(jù)故障機器記錄的WAL日志進行恢復)。當故障的RS在人工介入恢復后,這個balance動作是毫無意義的,反而會使負載不均勻,給RS 帶來更多負擔。特別是那些固定分配regions的場景。

hbase.regionserver.handler.count

默認值:10

說明:RegionServer的請求處理IO線程數(shù)。

調(diào)優(yōu):

這個參數(shù)的調(diào)優(yōu)與內(nèi)存息息相關。

較少的IO線程,適用于處理單次請求內(nèi)存消耗較高的Big PUT場景(大容量單次PUT或設置了較大cache的scan,均屬于Big PUT)或ReigonServer的內(nèi)存比較緊張的場景。

較多的IO線程,適用于單次請求內(nèi)存消耗低,TPS要求非常高的場景。設置該值的時候,以監(jiān)控內(nèi)存為主要參考。

這里需要注意的是如果server的region數(shù)量很少,大量的請求都落在一個region上,因快速充滿memstore觸發(fā)flush導致的讀寫鎖會影響全局TPS,不是IO線程數(shù)越高越好。

壓測時,開啟Enabling RPC-level logging ,可以同時監(jiān)控每次請求的內(nèi)存消耗和GC的狀況,最后通過多次壓測結(jié)果來合理調(diào)節(jié)IO線程數(shù)。

這里是一個案例 Hadoop and HBase Optimization for Read Intensive Search Applications ,作者在SSD的機器上設置IO線程數(shù)為100,僅供參考。

hbase.hregion.max.filesize

默認值:256M

說明:在當前ReigonServer上單個Reigon的最大存儲空間,單個Region超過該值時,這個Region會被自動split成更小的region。

調(diào)優(yōu):

小region對split和compaction友好,因為拆分region或compact小region里的storefile速度很快,內(nèi)存占用低。缺點是split和compaction會很頻繁。

特別是數(shù)量較多的小region不停地split, compaction,會導致集群響應時間波動很大,region數(shù)量太多不僅給管理上帶來麻煩,甚至會引發(fā)一些Hbase的bug。

一般512以下的都算小region。

大region,則不太適合經(jīng)常split和compaction,因為做一次compact和split會產(chǎn)生較長時間的停頓,對應用的讀寫性能沖擊非常大。此外,大region意味著較大的storefile,compaction時對內(nèi)存也是一個挑戰(zhàn)。

當然,大region也有其用武之地。如果你的應用場景中,某個時間點的訪問量較低,那么在此時做compact和split,既能順利完成split和compaction,又能保證絕大多數(shù)時間平穩(wěn)的讀寫性能。

既然split和compaction如此影響性能,有沒有辦法去掉?

compaction是無法避免的,split倒是可以從自動調(diào)整為手動。

只要通過將這個參數(shù)值調(diào)大到某個很難達到的值,比如100G,就可以間接禁用自動split(RegionServer不會對未到達100G的region做split)。

再配合RegionSplitter這個工具,在需要split時,手動split。

手動split在靈活性和穩(wěn)定性上比起自動split要高很多,相反,管理成本增加不多,比較推薦online實時系統(tǒng)使用。

內(nèi)存方面,小region在設置memstore的大小值上比較靈活,大region則過大過小都不行,過大會導致flush時app的IO wait增高,過小則因store file過多影響讀性能。

hbase.regionserver.global.memstore.upperLimit/lowerLimit

默認值:0.4/0.35

upperlimit說明:hbase.hregion.memstore.flush.size 這個參數(shù)的作用是 當單個memstore達到指定值時,flush該memstore。但是,一臺ReigonServer可能有成百上千個memstore,每個 memstore也許未達到flush.size,jvm的heap就不夠用了。該參數(shù)就是為了限制memstores占用的總內(nèi)存。

當ReigonServer內(nèi)所有的memstore所占用的內(nèi)存總和達到heap的40%時,HBase會強制block所有的更新并flush這些memstore以釋放所有memstore占用的內(nèi)存。

lowerLimit說明: 同upperLimit,只不過當全局memstore的內(nèi)存達到35%時,它不會flush所有的memstore,它會找一些內(nèi)存占用較大的 memstore,做個別flush,當然更新還是會被block。lowerLimit算是一個在全局flush導致性能暴跌前的補救措施。為什么說是性能暴跌?可以想象一下,如果memstore需要在一段較長的時間內(nèi)做全量flush,且這段時間內(nèi)無法接受任何讀寫請求,對HBase集群的性能影響是很大的。

調(diào)優(yōu):

這是一個Heap內(nèi)存保護參數(shù),默認值已經(jīng)能適用大多數(shù)場景。它的調(diào)整一般是為了配合某些專屬優(yōu)化,比如讀密集型應用,將讀緩存開大,降低該值,騰出更多內(nèi)存給其他模塊使用。

這個參數(shù)會給使用者帶來什么影響?

比如,10G內(nèi)存,100個region,每個memstore 64M,假設每個region只有一個memstore,那么當100個memstore平均占用到50%左右時,就會達到lowerLimit的限制。假設此時,其他memstore同樣有很多的寫請求進來。在那些大的region未flush完,就可能又超過了upperlimit,則所有 region都會被block,開始觸發(fā)全局flush。

不過,除了你的內(nèi)存非常小或你的應用場景里大多數(shù)都是讀,我覺得不需要去調(diào)這個參數(shù)。

hfile.block.cache.size

默認值:0.2

說明:storefile的讀緩存占用Heap的大小百分比,0.2表示20%。該值直接影響數(shù)據(jù)讀的性能。

調(diào)優(yōu):

當然是越大越好,如果讀比寫少,開到0.4-0.5也沒問題。如果讀寫較均衡,0.3左右。如果寫比讀多,果斷默認吧。設置這個值的時候,你同時要參考 hbase.regionserver.global.memstore.upperLimit ,該值是memstore占heap的最大百分比,兩個參數(shù)一個影響讀,一個影響寫。如果兩值加起來超過80-90%,會有OOM的風險,謹慎設置。

hbase.hstore.blockingStoreFiles

默認值:7

說明:在compaction時,如果一個Store(Coulmn Family)內(nèi)有超過7個storefile需要合并,則block所有的寫請求,進行flush,限制storefile數(shù)量增長過快。

調(diào)優(yōu):

block寫請求會影響當前region的性能,將值設為單個region可以支撐的最大store file數(shù)量會是個不錯的選擇,即允許comapction時,memstore繼續(xù)生成storefile。最大storefile數(shù)量可通過 region size/memstore size來計算。如果你將region size設為無限大,那么你需要預估一個region可能產(chǎn)生的最大storefile數(shù)。

hbase.hregion.memstore.block.multiplier

默認值:2

說明:當一個region里的memstore超過單個memstore.size兩倍的大小時,block該region的所有請求,進行 flush,釋放內(nèi)存。雖然我們設置了memstore的總大小,比如64M,但想象一下,在最后63.9M的時候,我Put了一個100M的數(shù)據(jù),此時 memstore的大小會瞬間暴漲到超過預期的memstore.size。這個參數(shù)的作用是當memstore的大小增至超過 memstore.size時,block所有請求,遏制風險進一步擴大。

調(diào)優(yōu):

這個參數(shù)的默認值還是比較靠譜的。如果你預估你的正常應用場景(不包括異常)不會出現(xiàn)突發(fā)寫或?qū)懙牧靠煽兀敲幢3帜J值即可。如果正常情況下,你的寫請求量就會經(jīng)常暴長到正常的幾倍,那么你應該調(diào)大這個倍數(shù)并調(diào)整其他參數(shù)值,比如hfile.block.cache.size和 hbase.regionserver.global.memstore.upperLimit/lowerLimit,以預留更多內(nèi)存,防止HBase server OOM。

#p#

其他

啟用LZO壓縮

LZO對比Hbase默認的GZip,前者性能較高,后者壓縮比較高,具體參見 Using LZO Compression 。對于想提高HBase讀寫性能的開發(fā)者,采用LZO是比較好的選擇。對于非常在乎存儲空間的開發(fā)者,則建議保持默認。

不要在一張表里定義太多的Column Family

Hbase目前不能良好的處理超過包含2-3個CF的表。因為某個CF在flush發(fā)生時,它鄰近的CF也會因關聯(lián)效應被觸發(fā)flush,最終導致系統(tǒng)產(chǎn)生更多IO。

批量導入

在批量導入數(shù)據(jù)到Hbase前,你可以通過預先創(chuàng)建regions,來平衡數(shù)據(jù)的負載。詳見 Table Creation: Pre-Creating Regions

避免CMS concurrent mode failure

HBase使用CMS GC。默認觸發(fā)GC的時機是當年老代內(nèi)存達到90%的時候,這個百分比由 -XX:CMSInitiatingOccupancyFraction=N 這個參數(shù)來設置。concurrent mode failed發(fā)生在這樣一個場景:

當年老代內(nèi)存達到90%的時候,CMS開始進行并發(fā)垃圾收集,于此同時,新生代還在迅速不斷地晉升對象到年老代。當年老代CMS還未完成并發(fā)標記時,年老代滿了,悲劇就發(fā)生了。CMS因為沒內(nèi)存可用不得不暫停mark,并觸發(fā)一次全jvm的stop the world(掛起所有線程),然后采用單線程拷貝方式清理所有垃圾對象。這個過程會非常漫長。為了避免出現(xiàn)concurrent mode failed,我們應該讓GC在未到90%時,就觸發(fā)。

通過設置 -XX:CMSInitiatingOccupancyFraction=N

這個百分比, 可以簡單的這么計算。如果你的 hfile.block.cache.size 和 hbase.regionserver.global.memstore.upperLimit 加起來有60%(默認),那么你可以設置 70-80,一般高10%左右差不多。

Hbase客戶端優(yōu)化

AutoFlush

將HTable的setAutoFlush設為false,可以支持客戶端批量更新。即當Put填滿客戶端flush緩存時,才發(fā)送到服務端。

默認是true。

Scan Caching

scanner一次緩存多少數(shù)據(jù)來scan(從服務端一次抓多少數(shù)據(jù)回來scan)。

默認值是 1,一次只取一條。

Scan Attribute Selection

scan時建議指定需要的Column Family,減少通信量,否則scan操作默認會返回整個row的所有數(shù)據(jù)(所有Coulmn Family)。

Close ResultScanners

通過scan取完數(shù)據(jù)后,記得要關閉ResultScanner,否則RegionServer可能會出現(xiàn)問題(對應的Server資源無法釋放)。

Optimal Loading of Row Keys

當你scan一張表的時候,返回結(jié)果只需要row key(不需要CF, qualifier,values,timestaps)時,你可以在scan實例中添加一個filterList,并設置 MUST_PASS_ALL操作,filterList中add FirstKeyOnlyFilter或KeyOnlyFilter。這樣可以減少網(wǎng)絡通信量。

Turn off WAL on Puts

當Put某些非重要數(shù)據(jù)時,你可以設置writeToWAL(false),來進一步提高寫性能。writeToWAL(false)會在Put時放棄寫WAL log。風險是,當RegionServer宕機時,可能你剛才Put的那些數(shù)據(jù)會丟失,且無法恢復。

啟用Bloom Filter

Bloom Filter通過空間換時間,提高讀操作性能。

原文鏈接:http://baiyunl.iteye.com/blog/1119129

【編輯推薦】

  1. Facebook實時信息系統(tǒng):HBase每月存儲1350億條信息

 

責任編輯:艾婧 來源: ITEYE
相關推薦

2023-04-03 10:25:00

數(shù)據(jù)庫性能調(diào)優(yōu)

2010-05-04 17:08:24

Oracle數(shù)據(jù)庫

2019-08-13 08:32:14

MySQL數(shù)據(jù)庫性能調(diào)優(yōu)

2011-04-25 09:12:47

LinuxIO數(shù)據(jù)庫

2022-05-10 10:02:51

openGauss性能調(diào)優(yōu)數(shù)據(jù)庫

2010-04-07 13:32:39

Oracle調(diào)優(yōu)

2010-03-10 11:29:47

MySQL數(shù)據(jù)庫性能調(diào)

2011-04-18 13:46:24

數(shù)據(jù)庫設計

2018-01-15 15:35:15

數(shù)據(jù)庫性能調(diào)優(yōu)案例

2011-08-15 18:09:46

查詢性能調(diào)優(yōu)索引優(yōu)化

2013-03-29 09:28:41

2017-07-21 08:55:13

TomcatJVM容器

2011-04-18 13:12:01

數(shù)據(jù)庫索引

2011-04-18 13:23:46

數(shù)據(jù)庫查詢

2011-04-18 13:36:32

數(shù)據(jù)庫游標

2011-05-24 09:45:41

Oracle數(shù)據(jù)庫系統(tǒng)調(diào)優(yōu)

2019-07-08 14:05:53

數(shù)據(jù)庫JVMSQL

2012-06-20 11:05:47

性能調(diào)優(yōu)攻略

2010-11-30 11:26:49

2021-03-04 08:39:21

SparkRDD調(diào)優(yōu)
點贊
收藏

51CTO技術棧公眾號

欧美丝袜激情| 亚洲成人1区2区| 国产成人免费av| 操喷在线视频| 午夜激情一区二区| 97在线观看| 国产欧美日产一区| 久久99久久99精品| 青娱乐精品视频在线| 国产精品区一区| 天天综合国产| 成人xxxxx| 欧美色就是色| 国产精品99久久久久久人| 欧美中文一区| 欧美最猛黑人xxxx黑人猛叫黄| 一区二区三区| 欧美成人激情视频免费观看| 9999精品| 国内成人精品视频| 久久精品66| 欧美亚洲另类激情另类| 97se亚洲| 国产97在线观看| 精品国产乱码久久久久久蜜坠欲下 | 羞羞答答成人影院www| 国产精品亚洲网站| 在线看成人短视频| 国产精品吹潮在线观看| 日韩欧美国产精品综合嫩v| 91免费的视频在线播放| 亚洲乱亚洲高清| 国精产品一区一区三区mba桃花| 一区二区三区国产福利| 高清av一区二区| 国产精品亚洲二区在线观看| 亚洲免费观看在线观看| 日本私人网站在线观看| 欧美喷水一区二区| 亚洲v.com| 韩国欧美亚洲国产| 51精产品一区一区三区| 久久偷看各类wc女厕嘘嘘偷窃 | 国产精品久久国产三级国电话系列| 一区免费在线| 五月天色婷婷综合| www.66久久| 国产一级电影网| 欧美私模裸体表演在线观看| bl在线肉h视频大尺度| 日韩中文字幕久久| 精品国产不卡| 欧美一区二区三区成人久久片| 国产激情视频一区二区三区欧美 | 欧美在线视频观看| 欧美一区亚洲| 亚洲国产日韩美| 91在线观看一区二区| 黄色一级视频网站| 日韩视频在线一区二区| 99久久久国产| 国产厕所精品在线观看| 高清不卡一区二区在线| 四虎影视永久免费观看| 欧美日韩中文精品| 香蕉久久免费电影| 国产精品999999| 日本不卡在线视频| 国产免费黄视频在线观看| 欧美专区日韩专区| 亚洲青青久久| 91丨九色丨国产| 成人黄色在线看| 精品亚洲综合| 欧美精品做受xxx性少妇| 在线精品一区二区| 制服丝袜综合网| 亚洲成人网在线| 国产精品福利在线观看播放| 国产小视频免费| 欧美视频在线观看一区二区| 国产精品高潮久久| 国产免费一区二区| 国产亚洲精品资源在线26u| av网站网址在线观看| 一区二区三区日韩| 国产成人无吗| 丁香花在线高清完整版视频| 欧美激情二区三区| 国产精品日韩精品欧美精品| 日韩精品免费播放| 91精品国产福利在线观看| 日韩精品导航| 色香蕉成人二区免费| 国产h片在线观看| 91色p视频在线| 国产日韩三级在线| 中文字幕人成乱码在线观看| 99国产视频| 国产精品情趣视频| 亚洲精品国产精品国产| 99九九电视剧免费观看| 国产精品传媒入口麻豆| 老司机成人影院| 欧美日韩在线精品一区二区三区| 亚洲一区二区五区| 粉嫩av一区二区| 国产69精品久久久久999小说| 欧美高清你懂得| 自拍偷拍欧美专区| 97在线观看免费高清视频| 欧美激情成人在线视频| 波多野结衣亚洲一区| 成人免费观看在线观看| 久久久久免费网| 久草在.com| 成人一区二区av| 久久免费成人精品视频| 国产精品欧美极品| 国产日韩亚洲| 99热在线观看免费| 欧美xxxx18性欧美| 成人av在线播放网址| 男女羞羞在线观看| 在线观看亚洲视频啊啊啊啊| 日韩精品专区在线影院观看 | 天天色综合天天色| 日韩在线视频网站| 99视频一区二区| 久久电影天堂| 国产手机免费视频| 中文字幕亚洲欧美日韩高清| 丁香六月久久综合狠狠色| 国产成人77亚洲精品www| 久久综合久久网| 久久夜色精品国产| 日本一区二区高清| 色天下一区二区三区| 国产传媒在线视频| 97操在线视频| 日韩手机在线导航| 精品综合久久久久久8888| 香蕉视频亚洲一级| 国产黄色特级片| 日本成人激情视频| 色菇凉天天综合网| 久久成人国产| 国产精品久久久久av电视剧| 精品99在线视频| 国产成人一区二区三区小说| 色欧美日韩亚洲| 视频一区欧美日韩| 日本免费成人| 国产国产人免费人成免费视频| 国产成人精品在线播放| 狠狠色狠狠色综合日日小说| 亚洲区第一页| 久久人体大尺度| 簧片在线免费看| 亚洲free性xxxx护士hd| 欧美成人一区二区三区片免费| 成人毛片视频在线观看| 欧美国产不卡| 成人高清在线| 成人av在线不卡| 日韩av片电影专区| 日韩小视频在线观看专区| 91色.com| 欧美日韩国产精品一区二区亚洲| 日本免费一区二区六区| jizzjizzjizz亚洲女| 精品中文字幕人| 久久亚洲综合国产精品99麻豆精品福利| 亚洲综合无码一区二区| 日本亚洲一区二区| 欧美黑人巨大videos精品| 在线免费看黄网站| 少妇高潮喷水在线观看| 国产精品色视频| 日韩精品视频免费| 亚洲最色的网站| 美女久久久精品| 97人人澡人人爽91综合色| 国自产拍在线网站网址视频| 国产a级黄色大片| 国产中文日韩欧美| 国产一区二区三区18| 亚洲一级在线观看| 国产高清亚洲一区| 亚洲一级毛片| 日韩免费高清视频网站| v片在线观看| 好男人社区在线视频| 一本一本久久a久久精品综合妖精| 九九热这里只有在线精品视 | 亚洲精品美女在线观看播放| 亚洲欧美激情插 | 免费av一区二区三区| 久久久久国产视频| 亚洲成年人在线播放|