![](/img/trans.png)
[英]HBase: How to specify multiple prefix filters in a single scan operation
[英]HBase scan operation caching
HBase扫描机制中setCaching和setBatch有什么区别? 在扫描大数据量时我必须使用什么才能获得最佳性能?
除非您拥有包含许多列(或非常大的列)的超宽表,否则您应该完全忘记setBatch()并专注于setCaching():
setCaching(int caching)
设置将传递给扫描程序的缓存行数。 如果未设置,将应用配置设置HConstants.HBASE_CLIENT_SCANNER_CACHING。 较高的缓存值将使扫描程序更快,但会占用更多内存。
setBatch(int batch)
设置每次调用next()时要返回的最大值数
setBatch是关于每次调用/迭代时应返回的行的值的数量。 这是一篇很好的帖子: http : //blog.jdwyah.com/2013/08/hbase-scan-batch-vs-cache.html
指定在返回扫描结果之前将填充的扫描程序缓存,将setCaching设置为要在返回结果之前缓存的行数。 默认情况下,使用表上的缓存设置。 目标是平衡IO和网络负载。
public Scan setCaching(int caching)
如果表的行具有非常宽的行(具有大量列的行),要限制列数,请使用setBatch(int batch)并将其设置为要在一个批处理中返回的列数。 大量列不是推荐的设计模式。
public scan setBatch(int batch)
这是很好的链接http://www.cloudera.com/documentation/enterprise/5-5-x/topics/admin_hbase_scanning.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.