大剑无锋之Hbase的优化【面试推荐】
一、高可用high?available->HA
在HBase中HMaster負責監控RegionServer的生命周期,均衡RegionServer的負載,如果HMaster掛掉了,那么整個HBase集群將陷入不健康的狀態,并且此時的工作狀態并不會維持太久。所以HBase支持對HMaster的高可用配置。
?二、RowKey設計(rowkey design)
一條數據的唯一標識就是rowkey,那么這條數據存儲于哪個分區,取決于rowkey處于哪個一個預分區的區間內,設計rowkey的主要目的 ,就是讓數據均勻的分布于所有的region中,在一定程度上防止數據傾斜。接下來我們就談一談rowkey常用的設計方案。
注意:RowKey如何設計必須結合實際業務場景
- rowkey涉及三原則:
長度原則
散列原則
唯一原則
三、預分區
每一個region維護著startRowKey與endRowKey[1,100),如果加入的數據符合某個region維護的rowKey范圍,則該數據交給這個region維護。那么依照這個原則,我們可以將數據所要投放的分區提前大致的規劃好,以提高HBase性能。
????注意:手動分區(預分區)需要對業務數據量有把控
四、內存優化
HBase操作過程中需要大量的內存開銷,畢竟Table是可以緩存在內存中的,一般會分配整個可用內存的70%給HBase的Java堆。但是不建議分配非常大的堆內存,因為GC(gabage collection)過程持續太久會導致RegionServer處于長期不可用狀態,一般16~48G內存(128G)就可以了,如果因為框架占用內存過高導致系統內存不足,框架一樣會被系統服務拖死。
【補充】Hbase調優詳情
https://georgedage.blog.csdn.net/article/details/103356118?
總結
以上是生活随笔為你收集整理的大剑无锋之Hbase的优化【面试推荐】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大剑无锋之Redis面试题【推荐】
- 下一篇: Hbase调优详情