我有一個5節點的HBase集羣,主要具有獲取順序數據的輸入請求。通過分割區域實現HBase負載均衡
爲了優化存儲,我在高負載區域運行手動區域分割,但是它並沒有優化太多,因爲它會分割區域,但大部分位於同一個區域服務器上。
如何控制區域分裂這樣
r-1(k1 to k2) on server s1,
r-2(k2 to k3) on server s2,
r-3(k3 to k4) on server s3,
r-4(k4 to k5) on server s4,
r-5(k5 to k6) on server s5,
r-6(k6 to k7) on server s1,
即,分割後,沒有連續的區域去同一個服務器來控制同一臺服務器上的負載。
是什麼讓你覺得這是造成問題?負載平衡器默認每5分鐘運行一次,並移動/分割區域以平衡羣集負載。這應該夠了。然後由HDFS處理羣集之間的分配。 –
感謝Raze2dust的回覆。 在同一區域服務器上連續區域的唯一問題是 - 請求連續數據時,需要更多時間,因爲它超過了base.regionserver.handler.count和某些請求的限制進入等待狀態。 –
只爲例如: 默認負載均衡後,我們注意到區域的分佈是喜歡 - R-1上S4, R-2上S1, R-3上S1, R-4上S2, R- S5上S2, r-6在S2上, r-7在S3上, r-8上s5,..現在每個區域的請求數/秒數幾乎相同。 但是獲取位於區域r-4到r-6之間的數據的新請求完全僅取決於單個服務器S-2。 如何控制區域分佈,使得沒有連續的區域進入同一臺服務器。 謝謝 –