HBase HBase的rowKey設計技巧

2021-10-01 14:52:03 字數 1041 閱讀 8717

hbase是三維有序儲存的,通過rowkey(行鍵),column key(column family和qualifier)和timestamp(時間戳)這個三個維度可以對hbase中的資料進行快速定位。

hbase中rowkey可以唯一標識一行記錄,在hbase查詢的時候,有以下幾種方式:

rowkey是乙個二進位製碼流,可以是任意字串,最大長度64kb,實際應用中一般為10-100bytes,以byte形式儲存,一般設計成定長。

建議越短越好,不要超過16個位元組,原因如下:

如果rowkey按照時間戳的方式遞增,不要將時間放在二進位製碼的前面,建議將rowkey的高位作為雜湊字段,由程式隨機生成,低位放時間字段,這樣將提高資料均衡分布在每個regionserver,以實現負載均衡的機率。如果沒有雜湊字段,首字段直接是時間資訊,所有的資料都會集中在乙個regionserver上,這樣在資料檢索的時候負載會集中在個別的regionserver上,造成熱點問題,會降低查詢效率。

必須在設計上保證其唯一性,rowkey是按照字典順序排序儲存的,因此,設計rowkey的時候,要充分利用這個排序的特點,將經常讀取的資料儲存到一塊,將最近可能會被訪問的資料放到一塊。

hbase中的行是按照rowkey的字典順序排序的,這種設計優化了scan操作,可以將相關的行以及會被一起讀取的行訪問在臨近位置,便於scan。然而糟糕的rowkey設計是熱點的源頭。

熱點發生在大量的client直接訪問集群的乙個或極少數個節點(訪問可能是讀,寫或者其他操作)。大量訪問會使熱點region所在的單個機器超出自身承受能力,引起效能下降甚至region不可用,這也會影響同乙個regionserver上的其他region,由於主機無法服務其他region的請求。

設計良好的資料訪問模式以使集群被充分,均衡的利用。為了避免寫熱點,設計rowkey使得不同行在同乙個region,但是在更多資料情況下,資料應該被寫入集群的多個region,而不是乙個。下面是一些常見的避免熱點的方法以及它們的優缺點:

大資料 hbase hbase的應用

1 首先安裝hbase,安裝方法請看 2 使用hbase shell進入到hbase的shell,如下圖所示 3 可以通過list檢視當前資料庫中所有的表名,如下圖所示 4 使用disable person 檢視表是否存在,如下圖所示 5 使用drop person 刪除表,如下圖所示 6 新建乙個...

HBase HBase入門詳解(五)

flush機制hbase是基於lsm tree模型的,所有的資料更新插入操作都首先寫入memstore中 同時會順序寫到日誌hlog中 達到指定閾值之後再將這些修改操作批量寫入磁碟,生成乙個新的hfile檔案,這種設計可以極大地提公升hbase的寫入效能,另外,hbase為了方便按照rowkey進行...

大資料技術 HBase HBase簡介

什麼是hbase?此外hbase對bigtable的架構設計做了相應增強,主要的features如下 1 可以易於與hadoop mapreduce整合的相關classes 2 實時查詢優化 3 提供rest ful服務閘道器,支援xml,protobuf和二進位制資料編碼選項 4 基於jruby的...