如何對hbase用的好,怎么定義把hbase用的好?
在保證系統(tǒng)穩(wěn)定性、可用性的基礎(chǔ)上能夠用最少的系統(tǒng)資源(CPU,IO等)獲得最好的性能(吞吐量,讀寫延遲)就是’用的好’。
優(yōu)化方向?yàn)?
(1)HDFS相關(guān)配置優(yōu)化,(2)HBase服務(wù)器端優(yōu)化(GC優(yōu)化、Compaction優(yōu)化、硬件配置優(yōu)化),(3)列族設(shè)計(jì)優(yōu)化,(4)客戶端優(yōu)化等,
hbase規(guī)劃方向:分為A.hbase內(nèi)存規(guī)劃、B.hbase集群規(guī)劃
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:主機(jī)域名、網(wǎng)頁空間、營銷軟件、網(wǎng)站建設(shè)、義縣網(wǎng)站維護(hù)、網(wǎng)站推廣。
A.hbase內(nèi)存規(guī)劃 參考鏈接為:hbase內(nèi)存規(guī)劃(讀多寫少型和寫多讀少型) https://blog.51cto.com/12445535/2373788
B.hbase集群規(guī)劃 參考鏈接為:hbase 集群規(guī)劃(集群業(yè)務(wù)規(guī)劃,集群容量規(guī)劃,Region規(guī)劃)
https://blog.51cto.com/12445535/2375540
(4)其中第四點(diǎn)(4)客戶端優(yōu)化在前面已經(jīng)通過超時(shí)機(jī)制、重試機(jī)制講過,參考鏈接為:
HBase客戶端Rpc的重試機(jī)制以及客戶端參數(shù)優(yōu)化。:https://blog.51cto.com/12445535/2373709
hbase 客戶端超時(shí)機(jī)制參數(shù)優(yōu)化實(shí)踐:https://blog.51cto.com/12445535/2373731
(3)列族設(shè)計(jì)優(yōu)化 總結(jié)
hbase列族設(shè)計(jì) (在很大程度上決定了讀寫的性能) // 參考鏈接 HBase最佳實(shí)踐-列族設(shè)計(jì)優(yōu)化 http://hbasefly.com/2016/07/02/hbase-pracise-cfsetting/
hbase 創(chuàng)建表語句
create 'NewsClickFeedback',{NAME=>'Toutiao',VERSIONS=>1,BLOCKCACHE=>true,BLOOMFILTER=>'ROW',COMPRESSION=>'SNAPPY',TTL => '259200', DATA_BLOCK_ENCODING => 'PREFIX_TREE', BLOCKSIZE => '65536'},{SPLITS => ['1','2','3','4','5','6','7','8','9','a','b','c','d','e','f']}
小結(jié):
1、對于以隨機(jī)讀為主的業(yè)務(wù),可以適當(dāng)調(diào)低BlockSize的大小,以獲得更好的讀性能。默認(rèn)為64K
2、對于以scan為主的業(yè)務(wù),可以適當(dāng)增大BlockSize的大小,以獲得更好的讀性能。
【提示:
1.可見,如果業(yè)務(wù)請求以Get請求為主,可以考慮將塊大小設(shè)置較??;
2.如果以Scan請求為主,可以將塊大小調(diào)大;默認(rèn)的64K塊大小是在Scan和Get之間取得的一個(gè)平衡。
】
3、數(shù)據(jù)編碼/壓縮Compress/DeCompress (壓縮/解壓縮)
Snappy:綜合來看,Snappy的壓縮率最低,但是編解碼速率最高,對CPU的消耗也最小,目前一般建議使用Snappy。
4、Encode/Decode(數(shù)據(jù)編碼功能)
推薦:DATA_BLOCK_ENCODING => 'PREFIX_TREE' //這個(gè)配置鑒于安全考慮,prefix_tree功能建議不要設(shè)置上生產(chǎn)。
(2)hbase服務(wù)器端優(yōu)化之gc優(yōu)化 見:hbase gc系列博客
https://blog.51cto.com/12445535/category16.html
(2)hbase服務(wù)器端優(yōu)化之compaction優(yōu)化
https://blog.51cto.com/12445535/2375292
https://blog.51cto.com/12445535/2375361
(2)hbase服務(wù)器端優(yōu)化之hbase使用硬件優(yōu)化(用好操作系統(tǒng))
https://blog.51cto.com/12445535/2375515
(1)hdfs相關(guān)的優(yōu)化
當(dāng)hbase讀比較多的時(shí)候 優(yōu)化方向 見深入探討hbase讀性能優(yōu)化探討(20190308)https://blog.51cto.com/12445535/2360206 中的hdfs優(yōu)化(啟用 HDFS 快速讀取,數(shù)據(jù)本地率是否太低?)
hbase RIT 機(jī)制
(其中很重要的2個(gè)案例 永久RIT狀態(tài)案例分析(案例一:Compaction永久阻塞 案例二:HDFS文件異常))
Region-In-Trasition機(jī)制
//什么叫RIT Region-In-Transition
是Region變遷機(jī)制,實(shí)際上是指在一次特定操作行為中Region狀態(tài)的變遷,
Region存在15中狀態(tài)
四種會(huì)觸發(fā)Region狀態(tài)變遷的操作 分別是:assign、unassign、split以及merge【分配 取消分配 分裂 合并】等而很多其他操作都可以拆成unassign和assign,比如move操作實(shí)際上是先unassign再assign;
http://hbasefly.com/2016/09/08/hbase-rit/
hbase多租戶
(1)資源限制,主要針對用戶、namespace以及表的QPS和請求大小進(jìn)行限制,詳見HBase-11598
(2)資源調(diào)度,主要針對任務(wù)進(jìn)行優(yōu)先級調(diào)度,通常會(huì)優(yōu)先調(diào)度實(shí)時(shí)交互而且小的任務(wù),而批量操作任務(wù)或者長時(shí)間操作任務(wù)(大scan)優(yōu)先級相對較低,詳見HBase-10993
(3)資源隔離,將不同表通過物理隔離的方式分布到不同的RegionServer上,詳見HBase-6721
資源限制-Quotas命令
http://hbasefly.com/2016/09/26/hbase-mutiltenant-1/