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