真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Hbase如何優(yōu)化

這篇文章給大家分享的是有關(guān)Hbase如何優(yōu)化的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站建設(shè)、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的明水網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

一、軟硬件優(yōu)化:
1. 配置內(nèi)存,cpu
HBase的LSM樹結(jié)構(gòu),緩存機(jī)制和日志機(jī)制對(duì)內(nèi)存消耗非常大,所以內(nèi)存越大越好。
其中過濾器,數(shù)據(jù)壓縮,多條件組合掃描等場景都是cpu密集型的,所以cpu也要夠強(qiáng)悍
2. 操作系統(tǒng)
選擇主流linux發(fā)行版,JVM推薦用Sun HotSpot64位的,能發(fā)揮hadoop最好的性能
使用noatime掛載磁盤:一般數(shù)據(jù)庫的掛載磁盤沒有特殊要求情況下最好都設(shè)置位為noatime以提高性能
關(guān)閉系統(tǒng)交換區(qū): Linux內(nèi)存反復(fù)交換會(huì)影響JVM性能,典型的異常就是導(dǎo)致zookeeper超時(shí)。所以設(shè)置vm.swappiness設(shè)置的比較低較好。
3.  網(wǎng)絡(luò)通信
由于hdfs對(duì)集群網(wǎng)絡(luò)吞吐有很高的要求,所以網(wǎng)絡(luò)必須保證低延遲高吞吐
添加機(jī)架感知:機(jī)架感知是提升hadoop的寫入和讀取本地化。在core-site.xml中配置topology.script.file.name
4. JVM優(yōu)化
根據(jù)網(wǎng)絡(luò)上很多成熟引用驗(yàn)證比較優(yōu)秀的垃圾回收器搭配組合CMS+ParNew
二、進(jìn)入主題:Hbase本身優(yōu)化
1. Hbase查詢優(yōu)化:
a. 設(shè)置scan緩存:scan的時(shí)候setCaching來設(shè)置緩存大小
b. 確定所需要的列:scan時(shí)候addColumn來添加所需要的列減少數(shù)據(jù)的傳輸
c. 如果批量進(jìn)行全表掃描請(qǐng)禁用塊緩存,因?yàn)槿頀呙杳織l記錄只讀取一遍
d. 優(yōu)化行鍵查詢:全表scan時(shí),如果只需要行鍵,可以使用過濾器來減少服務(wù)器返回的數(shù)據(jù)量。
e. 通過HBaseTool訪問:HTable對(duì)象對(duì)于客戶端讀寫數(shù)據(jù)來說不是線程安全的,多線程時(shí)要為每個(gè)線程創(chuàng)建一個(gè)HBase對(duì)象。而HBaseTool鏈接線程池機(jī)制可以解決線程安全問題,同事維持一定數(shù)量的HBase
f. 使用批量讀:HTable.get(List)
g. 使用Coprocessor統(tǒng)計(jì)行數(shù): 具體原理請(qǐng)看協(xié)處理器原理
h. 緩存查詢結(jié)果:對(duì)于查詢頻繁的應(yīng)用場景
2. HBase寫入優(yōu)化:
a. 關(guān)閉WAL日志:如果能容忍一定的數(shù)據(jù)丟失風(fēng)險(xiǎn),則可以關(guān)閉WAL
b. 設(shè)置AutoFlush: 關(guān)閉此功能等put到達(dá)到緩存閥值時(shí)候才提交到服務(wù)器
c. 預(yù)創(chuàng)建Region: 預(yù)先創(chuàng)建region來避免寫入時(shí)region到達(dá)一定閥值而split影響性能,和MongoDB預(yù)分片原理一致
d. 延遲WAL flush:如果開啟WAL則可以將WAL flush到磁盤的時(shí)間間隔調(diào)大一些來提高性能
e. 使用批量寫HTable.put(List)
3. HBase基本核心服務(wù)優(yōu)化
a. 優(yōu)化分裂操作: 如果寫多讀少的場景則可以調(diào)高h(yuǎn)base.hregion.max.filesize來減少region分裂
b. 優(yōu)化合并操作:大合并非常消耗資源,且合并時(shí)候會(huì)阻塞寫操作。應(yīng)該在集群不繁忙的時(shí)候進(jìn)行大合并
4. Hbase配置參數(shù)優(yōu)化:
a. 設(shè)置regionserver handler數(shù)量:如果寫請(qǐng)求比較多則可以適當(dāng)調(diào)高h(yuǎn)base.regionserver.handler.count的數(shù)量以提高寫吞吐。此參數(shù)調(diào)高很消耗內(nèi)存,請(qǐng)注意。
b. 調(diào)整blockCache大?。篽file.block.cache.size來設(shè)置regionserver查詢的內(nèi)存設(shè)置。默認(rèn)0.25指讀緩存占用堆內(nèi)存25%。讀場景比較多可以適當(dāng)調(diào)高。
c. 設(shè)置MemStore的上下限:hbase.regionserver.global.memstore.upperLimit表示regionserver上所有region的Memstore的大小上限,超過上限會(huì)引發(fā)全局flush,這個(gè)參數(shù)主要防止regionserver內(nèi)存占用過大被OOM Kill掉。
讀為主的集群中,可以調(diào)小此參數(shù),調(diào)高blockCache; 寫則相反
d. 調(diào)整影響合并的文件數(shù):hbase.hstore.blockingStoreFiles值用于控制超過此值的storefile則會(huì)出發(fā)合并??梢哉{(diào)大此值減少合并次數(shù)
e. 調(diào)整MemStore的flush因子:當(dāng)Memstore占用內(nèi)存大小超過hbase.hregion.memstore.flush.size倍數(shù)時(shí)將阻塞region所有請(qǐng)求,出發(fā)flush,釋放內(nèi)存。如果正常不會(huì)出現(xiàn)寫入或?qū)懭霐?shù)據(jù)量突然增大則可以保持默認(rèn),否則要調(diào)高此值。
f. 調(diào)整單個(gè)文件大?。篽base.hregion.max.filesize用于定義單個(gè)hstorefile大小,超過此值則引發(fā)region文件split。 Region比較小則合并和split都很快,當(dāng)然會(huì)造成集群響應(yīng)時(shí)間波動(dòng)。 大合并和split則造成較長時(shí)間阻塞。應(yīng)該根據(jù)自己場景來定義
5. 分布式協(xié)調(diào)系統(tǒng)zookeeper的優(yōu)化:zookeeper的優(yōu)化方法也很多,我就主要講hbase優(yōu)化。只是說明下zookeeper優(yōu)化也非常重要。
6. 表設(shè)計(jì)優(yōu)化
a. 開啟布隆過濾器:布隆過濾器可以減少讀盤次數(shù)以降低延遲。原理和redis的hyperloglog一樣(我們以前有用此功能對(duì)用戶數(shù)量進(jìn)行估算)
b. 調(diào)整列族塊大?。狠^小的塊大小可以提高隨機(jī)讀的速度,同時(shí)導(dǎo)致塊索引變大。
c. 設(shè)置in memory屬性:對(duì)于經(jīng)常訪問的列族可以設(shè)置in memory,但是要考慮消耗內(nèi)存的問題
d. 調(diào)整列族最大版本數(shù)量:數(shù)量大占用磁盤空間,且導(dǎo)致集群變大。根據(jù)自己應(yīng)用場景來選擇。像我們做畫像由于要統(tǒng)計(jì)用戶場景變化,所以版本數(shù)量有根據(jù)自己需求設(shè)置
e. 設(shè)置TTL屬性:超過TTL的列將自動(dòng)刪除。這個(gè)也根據(jù)自己場景選擇。我們做用戶畫像時(shí)會(huì)將某些用戶行為超過時(shí)間的就認(rèn)為沒有必要在進(jìn)行存儲(chǔ)分析了,所以可以設(shè)置TTL來自動(dòng)刪除
7. 關(guān)閉mapreduce的預(yù)測(cè)執(zhí)行功能:若使用mapreduce來訪問hbase集群應(yīng)該關(guān)閉,否則有可能導(dǎo)致hbase客戶端鏈接數(shù)陡增影響集群運(yùn)行
8. 修改負(fù)載均衡執(zhí)行周期:當(dāng)集群寫入頻繁時(shí),可以調(diào)小,否則可以調(diào)大。

感謝各位的閱讀!關(guān)于“Hbase如何優(yōu)化”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!


分享名稱:Hbase如何優(yōu)化
新聞來源:http://weahome.cn/article/jhjish.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部