成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

HBase性能優化的四個要點

數據庫 其他數據庫
今天作者石頭兒將給大家介紹HBase性能優化的四個要點。比如文件應該設置多大的默認值,autoflash的設置問題。

1 hbase.hregion.max.filesize應該設置多少合適

默認值:256M

說明:Maximum HStoreFile size. If any one of a column families' HStoreFiles has grown to exceed this value, the hosting HRegion is split in two.

HStoreFile的***值。如果任何一個Column Family(或者說HStore)的HStoreFiles的大小超過這個值,那么,其所屬的HRegion就會Split成兩個。

調優:

hbase中hfile的默認***值(hbase.hregion.max.filesize)是256MB,而google的bigtable論文中對tablet的***值也推薦為100-200MB,這個大小有什么秘密呢?

  眾所周知hbase中數據一開始會寫入memstore,當memstore滿64MB以后,會flush到disk上而成為storefile。當storefile數量超過3時,會啟動compaction過程將它們合并為一個storefile。這個過程中會刪除一些timestamp過期的數據,比如update的數據。而當合并后的storefile大小大于hfile默認***值時,會觸發split動作,將它切分成兩個region。

  lz進行了持續insert壓力測試,并設置了不同的hbase.hregion.max.filesize,根據結果得到如下結論:值越小,平均吞吐量越大,但吞吐量越不穩定;值越大,平均吞吐量越小,吞吐量不穩定的時間相對更小。

  為什么會這樣呢?推論如下:

    a 當hbase.hregion.max.filesize比較小時,觸發split的機率更大,而split的時候會將region offline,因此在split結束的時間前,訪問該region的請求將被block住,客戶端自我block的時間默認為1s。當大量的region同時發生split時,系統的整體訪問服務將大受影響。因此容易出現吞吐量及響應時間的不穩定現象

    b 當hbase.hregion.max.filesize比較大時,單個region中觸發split的機率較小,大量region同時觸發split的機率也較小,因此吞吐量較之小hfile尺寸更加穩定些。但是由于長期得不到split,因此同一個region內發生多次compaction的機會增加了。compaction的原理是將原有數據讀一遍并重寫一遍到hdfs上,然后再刪除原有數據。無疑這種行為會降低以io為瓶頸的系統的速度,因此平均吞吐量會受到一些影響而下降。

    綜合以上兩種情況,hbase.hregion.max.filesize不宜過大或過小,256MB或許是一個更理想的經驗參數。對于離線型的應用,調整為128MB會更加合適一些,而在線應用除非對split機制進行改造,否則不應該低于256MB

2 autoflush=false的影響

  無論是官方還是很多blog都提倡為了提高hbase的寫入速度而在應用代碼中設置autoflush=false,然后lz認為在在線應用中應該謹慎進行該設置。原因如下:

  a autoflush=false的原理是當客戶端提交delete或put請求時,將該請求在客戶端緩存,直到數據超過2M(hbase.client.write.buffer決定)或用戶執行了hbase.flushcommits()時才向regionserver提交請求。因此即使htable.put()執行返回成功,也并非說明請求真的成功了。假如還沒有達到該緩存而client崩潰,該部分數據將由于未發送到regionserver而丟失。這對于零容忍的在線服務是不可接受的。

  b autoflush=true雖然會讓寫入速度下降2-3倍,但是對于很多在線應用來說這都是必須打開的,也正是hbase為什么讓它默認值為true的原因。當該值為true時,每次請求都會發往regionserver,而regionserver接收到請求后***件事就是寫hlog,因此對io的要求是非常高的,為了提高hbase的寫入速度,應該盡可能高地提高io吞吐量,比如增加磁盤、使用raid卡、減少replication因子數等

3 從性能的角度談table中family和qualifier的設置

  對于傳統關系型數據庫中的一張table,在業務轉換到hbase上建模時,從性能的角度應該如何設置family和qualifier呢?

  最極端的,①每一列都設置成一個family,②一個表僅有一個family,所有列都是其中的一個qualifier,那么有什么區別呢?

  從讀的方面考慮:

  family越多,那么獲取每一個cell數據的優勢越明顯,因為io和網絡都減少了。

  如果只有一個family,那么每一次讀都會讀取當前rowkey的所有數據,網絡和io上會有一些損失。

  當然如果要獲取的是固定的幾列數據,那么把這幾列寫到一個family中比分別設置family要更好,因為只需一次請求就能拿回所有數據。

  從寫的角度考慮:

  首先,內存方面來說,對于一個Region,會為每一個表的每一個Family分配一個Store,而每一個Store,都會分配一個MemStore,所以更多的family會消耗更多的內存。

  其次,從flush和compaction方面說,目前版本的hbase,在flush和compaction都是以region為單位的,也就是說當一個family達到flush條件時,該region的所有family所屬的memstore都會flush一次,即使memstore中只有很少的數據也會觸發flush而生成小文件。這樣就增加了compaction發生的機率,而compaction也是以region為單位的,這樣就很容易發生compaction風暴從而降低系統的整體吞吐量。

  第三,從split方面考慮,由于hfile是以family為單位的,因此對于多個family來說,數據被分散到了更多的hfile中,減小了split發生的機率。這是把雙刃劍。更少的split會導致該region的體積比較大,由于balance是以region的數目而不是大小為單位來進行的,因此可能會導致balance失效。而從好的方面來說,更少的split會讓系統提供更加穩定的在線服務。而壞處我們可以通過在請求的低谷時間進行人工的split和balance來避免掉。

     因此對于寫比較多的系統,如果是離線應該,我們盡量只用一個family好了,但如果是在線應用,那還是應該根據應用的情況合理地分配family。

4 hbase.regionserver.handler.count

 RegionServer端開啟的RPC監聽器實例個數,也即RegionServer能夠處理的IO請求線程數。默認是10.

 此參數與內存息息相關。該值設置的時候,以監控內存為主要參考。

 對于 單次請求內存消耗較高的Big PUT場景(大容量單次PUT或設置了較大cache的scan,均屬于Big PUT)或ReigonServer的內存比較緊張的場景,可以設置的相對較小。

 對于 單次請求內存消耗低,TPS(TransactionPerSecond,每秒事務處理量)要求非常高的場景,可以設置的相對大些。

 

原文鏈接:http://www.cnblogs.com/zhenjing/archive/2012/11/13/hbase_is_OK.html

【編輯推薦】

責任編輯:彭凡 來源: 博客園
相關推薦

2013-09-10 17:41:56

移動網站性能優化移動web

2021-12-03 14:37:38

數據備份存儲備份

2019-06-26 09:00:00

DevSecOps安全漏洞

2015-03-30 12:54:55

SQL ServerSQL Server

2020-01-15 11:30:59

編碼優化性能

2011-06-21 17:24:29

外鏈SEO

2016-02-15 09:13:40

移動頁面性能優化前端

2010-12-03 09:53:49

WAN優化

2013-01-15 11:05:55

云計算云安全

2010-04-14 12:51:10

Oracle性能

2021-10-26 22:43:05

數據庫安全存儲

2010-03-31 10:25:41

MyEclipse

2023-11-13 10:00:09

數據中心服務器

2025-03-31 08:45:00

作用域Python編程

2013-05-22 16:37:15

優化IAP設計運營推廣

2016-12-09 09:31:22

HadoopSQL大數據

2022-04-07 09:34:39

技巧云服務費用

2021-08-10 08:01:08

Synchronize鎖膨脹鎖消除

2022-02-23 15:09:18

數字化轉型國有企業數據

2013-03-18 13:31:28

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕一区二区三区精彩视频 | 免费电影av | 日韩欧美在线观看 | 欧美日韩在线不卡 | 亚洲精品视频在线播放 | 亚洲日本视频 | 在线成人免费视频 | 成人在线视频观看 | 国产精品观看 | 成人国产精品久久 | 毛片a区| 日韩一区二区三区精品 | 久久国产电影 | 久草视频在线播放 | 免费的日批视频 | 久久91| 日本一区精品 | 欧美激情精品久久久久 | 久久久久久久亚洲精品 | 色又黄又爽网站www久久 | 日本在线看片 | 亚洲a视频 | 欧美精品久久 | 蜜桃黄网 | 毛片网站在线观看 | 中文字幕亚洲精品 | 色桃网| 欧美一级久久 | 午夜精品在线 | 日韩最新网址 | 欧美精品一二三区 | 美日韩免费 | 国产精品免费一区二区三区四区 | 亚洲欧美日韩电影 | 四虎永久免费黄色影片 | 亚洲精品视频在线看 | 国产精品a级 | 国内精品久久久久 | 久久久久久免费毛片精品 | 黄色毛片在线看 | av色站|