HBase使用 HBase rowkey設計原則

2021-10-05 03:57:52 字數 1035 閱讀 7585

針對這兩種方式,在第五項中,我們簡要介紹了幾種常見的rowkey設計思路(充分利用hbase的分布式特性,將請求分散到不同region上)

十進位制字串表達——id反轉

二進位制——高階用法,傳說中的\x00

大量訪問會使熱點region所在的單個機器超出自身承受能力,引起效能下降甚至region不可用

這也會影響同乙個regionserver上的其他region,由於主機無法服務其他region的請求。 

設計良好的資料訪問模式以使集群被充分,均衡的利用。

比如某業務id都是10開頭的,如果不做雜湊的情況:

雜湊前,因為業務id不規律,不夠分散,導致有熱點

雜湊後,分散均勻

下面是一些常見的避免熱點的方法以及它們的優缺點:

這裡所說的加鹽不是密碼學中的加鹽,而是增加salt_bucket機制,將一次請求分散到n個不同的region上。

常見場景:

00_userid01開頭的資料

10_userid01開頭的資料

20_userid01開頭的資料

...90_userid01開頭的資料

業務id1 是查詢引數

如果已使用md5 雜湊了業務id1  那在查詢時就已知業務id了,沒有必要在後面再寫一遍業務id1了 可以參考上面【rowkey長度原則】

時間戳反轉,乙個特殊用法,按時間段查詢,並且經常查詢的資料是最新資料

想要根據使用者id查詢使用者最近從start time到end time的行為,或者使用者近乙個小時的行為,並且將最新的資料先載入

初步思路:md5(使用者id)_行為timestamp

高階,要查「此使用者近乙個小時行為」,並且將最新的資料先載入

Hbase簡單使用

hbase main 003 0 create test first second 建立乙個名為test的表,裡面有兩個列族first second hbase main 007 0 put test row1 first a 1 往test表中新增資料,row1是標識 相當主鍵 first a 代...

hbase 使用備忘

hbase是基於hadoop的,所以hbase伺服器必須啟動hadoop,這點很重要.當然hbase其實只用到了dadoop的乙個元件 1.啟動hadoop dfs 在主上執行如下命令,可以把主和從一同啟動 sbin start dfs.sh,如果要格式化的話使用 bin hadoop nameno...

HBase學習和使用

最近專案中用到了hbase,使用的原因在於hbase可以提供高併發讀寫操作的支援,同時自動切分資料,使得資料儲存具有水平擴充套件性。1 不能支援條件查詢,只支援按照row key來查詢.2 暫時不能支援master server的故障切換,當master宕機後,整個儲存系統就會掛掉.1.資料型別,h...