繁体   English   中英

HBase扫描操作缓存

[英]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 Sc​​an 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM