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