您好,登錄后才能下訂單哦!
如何對hbase用的好,怎么定義把hbase用的好?
在保證系統穩定性、可用性的基礎上能夠用最少的系統資源(CPU,IO等)獲得最好的性能(吞吐量,讀寫延遲)就是’用的好’。
優化方向為:
(1)HDFS相關配置優化,(2)HBase服務器端優化(GC優化、Compaction優化、硬件配置優化),(3)列族設計優化,(4)客戶端優化等,
hbase規劃方向:分為A.hbase內存規劃、B.hbase集群規劃
A.hbase內存規劃 參考鏈接為:hbase內存規劃(讀多寫少型和寫多讀少型) https://blog.51cto.com/12445535/2373788
B.hbase集群規劃 參考鏈接為:hbase 集群規劃(集群業務規劃,集群容量規劃,Region規劃)
https://blog.51cto.com/12445535/2375540
(4)其中第四點(4)客戶端優化在前面已經通過超時機制、重試機制講過,參考鏈接為:
HBase客戶端Rpc的重試機制以及客戶端參數優化。:https://blog.51cto.com/12445535/2373709
hbase 客戶端超時機制參數優化實踐:https://blog.51cto.com/12445535/2373731
(3)列族設計優化 總結
hbase列族設計 (在很大程度上決定了讀寫的性能) // 參考鏈接 HBase最佳實踐-列族設計優化 http://hbasefly.com/2016/07/02/hbase-pracise-cfsetting/
hbase 創建表語句
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']}
小結:
1、對于以隨機讀為主的業務,可以適當調低BlockSize的大小,以獲得更好的讀性能。默認為64K
2、對于以scan為主的業務,可以適當增大BlockSize的大小,以獲得更好的讀性能。
【提示:
1.可見,如果業務請求以Get請求為主,可以考慮將塊大小設置較小;
2.如果以Scan請求為主,可以將塊大小調大;默認的64K塊大小是在Scan和Get之間取得的一個平衡。
】
3、數據編碼/壓縮Compress/DeCompress (壓縮/解壓縮)
Snappy:綜合來看,Snappy的壓縮率最低,但是編解碼速率最高,對CPU的消耗也最小,目前一般建議使用Snappy。
4、Encode/Decode(數據編碼功能)
推薦:DATA_BLOCK_ENCODING => 'PREFIX_TREE' //這個配置鑒于安全考慮,prefix_tree功能建議不要設置上生產。
(2)hbase服務器端優化之gc優化 見:hbase gc系列博客
https://blog.51cto.com/12445535/category16.html
(2)hbase服務器端優化之compaction優化
https://blog.51cto.com/12445535/2375292
https://blog.51cto.com/12445535/2375361
(2)hbase服務器端優化之hbase使用硬件優化(用好操作系統)
https://blog.51cto.com/12445535/2375515
(1)hdfs相關的優化
當hbase讀比較多的時候 優化方向 見深入探討hbase讀性能優化探討(20190308)https://blog.51cto.com/12445535/2360206 中的hdfs優化(啟用 HDFS 快速讀取,數據本地率是否太低?)
hbase RIT 機制
(其中很重要的2個案例 永久RIT狀態案例分析(案例一:Compaction永久阻塞 案例二:HDFS文件異常))
Region-In-Trasition機制
//什么叫RIT Region-In-Transition
是Region變遷機制,實際上是指在一次特定操作行為中Region狀態的變遷,
Region存在15中狀態
四種會觸發Region狀態變遷的操作 分別是:assign、unassign、split以及merge【分配 取消分配 分裂 合并】等而很多其他操作都可以拆成unassign和assign,比如move操作實際上是先unassign再assign;
http://hbasefly.com/2016/09/08/hbase-rit/
hbase多租戶
(1)資源限制,主要針對用戶、namespace以及表的QPS和請求大小進行限制,詳見HBase-11598
(2)資源調度,主要針對任務進行優先級調度,通常會優先調度實時交互而且小的任務,而批量操作任務或者長時間操作任務(大scan)優先級相對較低,詳見HBase-10993
(3)資源隔離,將不同表通過物理隔離的方式分布到不同的RegionServer上,詳見HBase-6721
資源限制-Quotas命令
http://hbasefly.com/2016/09/26/hbase-mutiltenant-1/
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。