HBase掃描機制的setCaching和setBatch之間有什麼區別? 在掃描大量數據時,爲了獲得最佳性能,我必須使用什麼?HBase掃描操作緩存
1
A
回答
3
除非你具有很多列(或非常大的)超寬表,你應該完全忘記setBatch()和專注於setCaching():
setCaching(INT緩存)
設置將傳遞給掃描儀的緩存行數。如果未設置,則將應用配置設置HConstants.HBASE_CLIENT_SCANNER_CACHING。更高的緩存值將使掃描儀更快,但會使用更多的內存。
setBatch(INT批)
設定值的最大數量返回每個調用next()
setBatch是關於應該是該行的值的數目在每次調用/迭代時返回。這裏有一個不錯的文章:http://blog.jdwyah.com/2013/08/hbase-scan-batch-vs-cache.html
0
指定一個掃描程序緩存,在掃描結果返回之前將被填充,在返回結果之前將setCaching設置爲要緩存的行數。默認情況下,使用表格上的緩存設置。目標是平衡IO和網絡負載。
公共掃描setCaching(INT緩存)
要限制列數,如果你的表有很寬的行(用大量的列行),使用setBatch(INT批),並將其設置爲數字您想要在一批中返回的列。大量的列不是推薦的設計模式。
公共掃描setBatch(INT批)
這是很好的鏈接http://www.cloudera.com/documentation/enterprise/5-5-x/topics/admin_hbase_scanning.html
相關問題
- 1. mapreduce,hbase和掃描
- 2. HBase行內掃描
- 3. Hbase掃描超時
- 4. 使用C++掃描多核系統中的CPU緩存操作
- 5. 指針操作,內存掃描
- 6. HBase的掃描速度慢
- 7. 掃描特定rowkey的Hbase
- 8. HBase掃描 - RowKey過濾器
- 9. Hbase多範圍掃描?
- 10. 使用HBase掃描的java.lang.NoClassDefFoundError
- 11. 掃描儀無法操作
- 12. 掃描使用HBase的外殼
- 13. 使用HBase API(Java)掃描篩選器
- 14. 掃描hbase時,地圖任務卡住
- 15. 如何做HBase部分掃描?
- 16. 如何掃描HBase的數值範圍
- 17. 如何有效地掃描HBase行
- 18. 如何做hbase範圍掃描?
- 19. Hbase客戶端掃描程序掛起
- 20. HBase Mapreduce在多個掃描對象上
- 21. Hbase vs Google Bigtable:掃描大量的行
- 22. 來自Java的HBase掃描API
- 23. 如何跳過Hbase掃描中的行?
- 24. 從hbase shell中獲取掃描結果
- 25. HBase的一批拿到VS掃描
- 26. HBase掃描是否返回排序列?
- 27. HBase行鍵和範圍掃描
- 28. HBase的列寬掃描和獲取
- 29. 如何改進HBase掃描儀?
- 30. 使用C#在Redis緩存中掃描緩存密鑰#
什麼是適當的設置,如果你確實是有許多列超寬表格?我們應該設置Cache(1)嗎? – nont 2015-03-05 16:12:18
從閱讀hbase源代碼看來,你可以通過setCaching(-1)關閉緩存, – nont 2015-03-07 17:37:08