hbase中單調遞增的rowkey造成的影響

2021-06-16 08:30:32 字數 839 閱讀 7252

自己的資料匯入由於是md5排序後的資料,所以匯入的時候遇到的乙個問題就是:在乙個集群中,乙個匯入資料的程序一動不動,所以的client都在等待乙個region(就是乙個節點),過了一會後,變成了下乙個region

查到了一些資料,不過這種做飯還不是很適合我,所以我只能考慮用另外的方法來處理

用多執行緒同時讀取統一個檔案的不同位置,這樣讀入的rowkye就分散了。多執行緒的資料與自己regions的數目相同即可。

另外要避免這種問題就是在建立表的時候預先分布regions,不過似乎如果建好了表就不能split regions了。誰有這方面的方法不吝賜教。

單調遞增row keys/時序資料

在tom white的hadoop: the definitive guide一書中,有乙個章節描述了乙個值得注意的問題:在乙個集群中,乙個匯入資料的程序一動不動,所以的client都在等待乙個region(就是乙個節點),過了一會後,變成了下乙個region...如果使用了單調遞增或者時序的key就會造成這樣的問題。詳情可以參見ikai畫的漫畫monotonically increasing values are bad。使用了順序的key會將本沒有順序的資料變得有順序,把負載壓在一台機器上。所以要盡量避免時間戳或者(e.g. 1, 2, 3)這樣的key。

如果你需要匯入時間順序的檔案(如log)到hbase中,可以學習opentsdb的做法。

他有乙個頁面來描述他的schema.opentsdb的key的格式是[metric_type][event_timestamp],乍一看,似乎違背了不將timestamp做key的建議,但是他並沒有將timestamp作為key的乙個關鍵位置,有成百上千的metric_type就足夠將壓力分散到各個region了。

單調遞增的數字

給定乙個非負整數n,找出小於或等於n的最大的整數,同時這個整數需要滿足其各個位數上的數字是單調遞增。當且僅當每個相鄰位數上的數字x和y滿足x y時,我們稱這個整數是單調遞增的。輸入 n 10 輸出 9輸入 n 1234 輸出 1234輸入 n 332 輸出 299 param n return va...

單調遞增的數字

給定乙個非負整數 n,找出小於或等於 n 的最大的整數,同時這個整數需要滿足其各個位數上的數字是單調遞增。當且僅當每個相鄰位數上的數字 x 和 y 滿足 x y 時,我們稱這個整數是單調遞增的。輸入 n 332,輸出 299 貪心思路 要使目標數字和 n 最接近,則需要盡可能保持高位數字不動 若某高...

單調遞增的子串行

方法一 轉化為lcs最長公共字串 方法二 動態規劃 方法三 陣列 二分查詢 方法一對單調遞增的子串行x排序得到子串行y,然後求子序列x與子串行y的最長公共字串 方法二 動態規劃 1.先準備乙個陣列b b i 1 2.b i max b i b j 1 arr j 動態規劃時間複雜度o n 2 最長公...