hbase很有價值的讀寫效能提公升

2021-06-01 09:16:03 字數 1940 閱讀 5396

nosql現在風生水起,hbase的使用也越來越廣,但目前幾乎所有的nosql產品在運維上都沒法和db相提並論,在這篇blog中來總結下我們在運維hbase時的一些問題以及解決的方法,也希望得到更多hbase同行們的建議,:)

在運維hbase時,目前我們最為關注的主要是三大方面的狀況:

1. cluster load;

2. 讀寫;

3. 磁碟空間。

1. cluster load

集群的load狀況直接反映了集群的健康程度,load狀況的獲取非常容易,直接部署ganglia即可得到,由於hbase以優秀的可伸縮性著稱,因此多數情況下load超出接受範圍時加機器是乙個不錯的解決方法,當然,這還和系統的設計和使用hbase的方式有關。

如有出現個別機器load比較高的現象,通常是由於集群使用的不均衡造成,需要進行一定的處理,這個放到讀寫部分再說吧。

2. 讀寫

讀寫方面的資訊主要包括了讀寫的次數以及速度,這個通過ganglia看其實不怎麼方便,最好還是自己改造下實現,讀寫次數反映了集群的使用程度,一般來說需要根據壓力測試中形成的報告來設定乙個讀寫次數的閾值,以保護系統的穩定。

讀寫速度方面主要是顯示當前的讀寫速度狀況(當然,也需要有歷史的報表),如讀寫速度是在可接受範圍,其實就可以不用過多的關心了,如讀寫速度不ok的話,則需要進行一定的處理。

如寫速度不ok,則需要關注以下幾點:

* 集群均衡嗎?

除了和讀一樣的集群均衡性問題外,還有乙個問題是rowkey的設計問題,因為hbase是按rowkey連續儲存的,因此如應用寫入資料時rowkey是連續的,那麼就會造成寫的壓力會集中在單台region server上,因此應用在設計rowkey時,要盡可能的保證寫入是分散的,當然,這可能會對有連續讀需求的場景產生一定的衝擊。

* 日誌中是否出現過以下資訊?

** flush thread woke up with memory above low water.

日誌中出現這個資訊說明有部分寫出現過阻塞等待的現象,造成這個現象的原因是各個region的memstore使用的大小加起來超過了總的閾值,於是阻塞並開始找乙個region進行flush,這個過程會需要消耗掉一些時間,通常來說造成這個的原因是單台region server上region數太多了,因此其實單台region server上最好不要放置過多的region,一種調節方法是調大split的filesize,這樣可以適當的減少region數,但需要關注調整後讀效能的變化。

** delaying flush up to

當日誌中出現這個資訊時,可能會造成出現下面的現象,從而產生影響,這個通常是store file太多造成的,通常可以調大點store file個數的閾值。

** blocking updates for

當日誌中出現這個資訊時,表示寫動作已被阻塞,造成這個現象的原因是memstore中使用的大小已超過其閾值的2倍,通常是由於上面的delaying flush up to造成的,或者是region數太多造成的,或者是太多hlog造成的,這種情況下會造成很大的影響,如記憶體夠用的話,可以調大閾值,如其他原因則需要對症下藥。

* split造成的?

split會造成讀寫短暫的失敗,如寫的資料比較大的話,可能會有頻繁的split出現,對於這種情況主要需要依靠調大split的filesize(hbase.hregion.max.filesize)來控制。

3. 磁碟空間

磁碟空間可直接通過hdfs的管理介面檢視,磁碟空間如占用比較多的話,可以關注下表的壓縮是否開啟(describe表後,compression => 『none』表示未開啟),預設是不開啟的,在建立表時可create 『t1′,,如為已經建立的表,則需要先disable、alter、enable後再執行下major_compact,在我們的幾個案例中大概能壓縮到原大小的20%–30%,還是很可觀的。

如壓縮已開啟,占用仍然比較多的話,基本就只能增加機器或公升級硬碟了,由於hbase需要對每列重複儲存rowkey,因此會有一定的空間浪費。

推薦兩個很有價值的安全工具

今天看到微軟發布了兩個與安全有關的非常有價值的工作,下面一一列出。1.microsoft private folder 1.0 微軟剛剛發布了乙個個人隱私保護工具microsoft private folder 1.0,它可以幫助使用者電腦中建立乙個private folder並進行密碼保護,在其他...

有價值的SQL

通用sql 1 select deptno,ename,sal 2 from emp e1 3 where 4 5 select count 1 6 from emp e2 7 where e2.deptno e1.deptno and e2.sal e1.sal 8 3 這裡的數值表示你想取前幾名...

有價值的資料

網際網路的世界,不缺少資訊,缺的是把合適的資訊傳遞給需要的人。使用者需要什麼樣的資訊?能解決使用者 焦慮 緊張 憤怒 沮喪 悲傷 痛苦 情緒的資訊。如下場景 焦慮 小心不對稱造成的等待。急診室門口的家屬,等待錄取通知書的大學生。緊張 勢利不對稱造成的等待。被面試員工,會議演示的主持人。憤怒 願望不能...