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. 使用C++掃描多核系統中的CPU緩存操作
- 3. HBase掃描 - RowKey過濾器
- 4. 掃描特定rowkey的Hbase
- 5. 掃描儀無法操作
- 6. 如何做hbase範圍掃描?
- 7. 如何掃描HBase的數值範圍
- 8. 掃描hbase時,地圖任務卡住
- 9. Hbase客戶端掃描程序掛起
- 10. 如何做HBase部分掃描?
- 11. 使用HBase API(Java)掃描篩選器
- 12. 掃描使用HBase的外殼
- 13. 如何改進HBase掃描儀?
- 14. 從hbase shell中獲取掃描結果
- 15. HBase Mapreduce在多個掃描對象上
- 16. HBase行鍵和範圍掃描
- 17. Hbase vs Google Bigtable:掃描大量的行
- 18. 使用C#在Redis緩存中掃描緩存密鑰#
- 19. 與異步代碼掃描操作
- 20. 掃描網站中的所有操作
- 21. 掃描儀爲何如此操作?
- 22. HBASE行前綴掃描以相反的順序在HBase的
- 23. 操作瀏覽器緩存
- 24. MySQL操作系統緩存
- 25. 掃描計算機內存
- 26. PostgreSQL順序掃描小表緩慢
- 27. cmake依賴項掃描緩慢
- 28. 如何掃描單詞並存儲從C中掃描的行?
- 29. 掃描緩存和ResultScanner接口中的下一個方法
- 30. HBase批量放入操作
什麼是適當的設置,如果你確實是有許多列超寬表格?我們應該設置Cache(1)嗎? – nont 2015-03-05 16:12:18
從閱讀hbase源代碼看來,你可以通過setCaching(-1)關閉緩存, – nont 2015-03-07 17:37:08