1
A
回答
2
您可以使用順序分區鹽,加入基於行鍵之前的哈希值一些前綴。例如。
Integer salt = rowKey.hashCode() % numberOfSalts;
Put put = new Put(Bytes.toBytes(salt + "|" + rowKey));
//add some data to you put
...
numberOfSalts
被視爲使用順序鍵進行批量寫入的區域數量。例如,如果10個區域可以處理您的寫入數量,則應在此公式中使用numberOfRegions
等於10,如果將來您建議將寫入數量翻倍,則應該使用20。
之後,您可以使用下面的代碼來掃描基於範圍。
List<Scan> scans = new ArrayList<>();
for(int salt = 0; salt < numberOfSalts; salt++){
Scan scan = new Scan();
scan.setBatch(500);
scan.setAttribute(Scan.SCAN_ATTRIBUTES_TABLE_NAME, YOUR_TABLE_NAME);
String salt = StringUtils.leftPad(Integer.toString(i), 3, "0");
scan.setStartRow(Bytes.toBytes(salt + "|" + scanStart));
scan.setStartRow(Bytes.toBytes(salt + "|" + scanStop);
scans.add(scan);
}
TableMapReduceUtil.initTableMapperJob(
scans,
YourMapper.class,
Text.class,
Text.class,
job);
相關問題
- 1. 範圍掃描vs唯一掃描vs跳過掃描
- 2. Hbase多範圍掃描?
- 3. HBase行鍵和範圍掃描
- 4. IP範圍和端口掃描器
- 5. 如何掃描HBase的數值範圍
- 6. $ ORDER vs計數掃描全局範圍
- 7. Matlab隨機數範圍
- 8. 具有隨機範圍和函數的隨機數組
- 9. Eclipse插件掃描器和分區掃描器
- 10. 區分掃描儀和鍵盤
- 11. 一次掃描(掃描)和兩次掃描(掃描)之間的區別
- 12. 範圍隨機訂單與分頁
- 13. Hbase範圍掃描,同時消除區域服務器熱點
- 14. 如何掃描IP範圍C#
- 15. Android的 - 藍牙 - 限制掃描範圍
- 16. Ping掃描,能夠輸入範圍
- 17. 如何做hbase範圍掃描?
- 18. Spring 3組件掃描項目範圍
- 19. Sonarqube掃描錯誤,超出範圍?
- 20. 使用Astyanax的列掃描範圍
- 21. 在D中逐步掃描範圍
- 22. 分區整數爲範圍
- 23. opencv mat掃描隨機時間竊取
- 24. 隨機位在範圍
- 25. nmap掃描(UDP的一部分,但全範圍的TCP)
- 26. 範圍內的隨機數 - sql oracle
- 27. 在一個範圍內的隨機數
- 28. 全範圍內的隨機數在Python
- 29. 隨機數更喜歡範圍
- 30. 獲取範圍(隨機整數X,Y]
非常感謝!你的答案非常有用 –