HBase手動拆分區(qū)域

2018-06-08 13:57 更新

手動拆分區(qū)域

你可以手動拆分表,無論是在創(chuàng)建表(預(yù)拆分)還是稍后作為管理操作。出于以下一種或多種原因,您可能會選擇拆分您的區(qū)域??赡苓€有其他有效的原因,但手動拆分表的需求也可能指出您的模式設(shè)計存在問題。

手動拆分表格的原因:

  • 您的數(shù)據(jù)按時間序列或其他類似的算法進行排序,這些算法會在表格末尾對新數(shù)據(jù)進行排序。這意味著持有最后一個區(qū)域的區(qū)域服務(wù)器始終處于負載狀態(tài),而其他區(qū)域服務(wù)器處于空閑狀態(tài),或者大部分空閑狀態(tài)。
  • 你在表的一個區(qū)域開發(fā)了一個意想不到的熱點。例如,一旦有關(guān)于該名人的消息,跟蹤網(wǎng)絡(luò)搜索的應(yīng)用程序可能會被大量搜索名人所淹沒。
  • 在群集中的RegionServers數(shù)量大幅增加之后,可以快速擴展負載。
  • 在大批量裝載之前,這可能會導(dǎo)致跨區(qū)域異常和不均勻的載荷。

DisabledRegionSplitPolicy策略阻止手動區(qū)域拆分。

確定分拆分點

手動拆分表格的目標(biāo)是在單獨使用良好的rowkey設(shè)計無法達到的情況下,提高跨集群平衡負載的可能性。牢記這一點,你拆分區(qū)域的方式非常依賴于數(shù)據(jù)的特征。這可能是你已經(jīng)知道拆分你的表的最好方法。如果不是這樣,你拆分表的方式取決于你的鍵是什么樣的。

字母數(shù)字行鍵(Alphanumeric Rowkeys)

如果您的行鍵以字母或數(shù)字開頭,則可以在字母或數(shù)字邊界處拆分表格。例如,下面的命令創(chuàng)建一個表,其區(qū)域在每個元音處都有拆分,所以第一個區(qū)域有AD,第二個區(qū)域有EH,第三個區(qū)域有IN,第四個區(qū)域有OV,第五個區(qū)域有UZ。

使用自定義算法

RegionSplitter工具提供了HBase,并使用SplitAlgorithm為您確定拆分點。作為參數(shù),您可以給出算法,所需的區(qū)域數(shù)量和列族。它包括三個分割算法。首先是 HexStringSplit 算法,它假定行鍵是十六進制字符串。第二種 DecimalStringSplit 算法是假定行鍵是00000000到99999999范圍內(nèi)的十進制字符串。第三種 UniformSplit假設(shè)行鍵是隨機字節(jié)數(shù)組。您可能需要開發(fā)自己的 SplitAlgorithm,使用提供的模型。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號