hbase扫描操作缓存

fdbelqdn  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(381)

在hbase扫描机制中setcaching和setbatch有什么区别?为了在扫描大数据量时获得最佳性能,我必须使用什么?

w46czmvw

w46czmvw1#

指定在返回扫描结果之前要填充的扫描仪缓存,将setcaching设置为返回结果之前要缓存的行数。默认情况下,使用表上的缓存设置。目标是平衡io和网络负载。
公共扫描setcaching(int caching)
如果表中有非常宽的行(包含大量列的行),要限制列数,请使用setbatch(int batch)并将其设置为希望在一个批中返回的列数。大量列不是推荐的设计模式。
公共扫描setbatch(int批处理)
这是个不错的链接http://www.cloudera.com/documentation/enterprise/5-5-x/topics/admin_hbase_scanning.html

7kjnsjlb

7kjnsjlb2#

除非您有包含许多列(或非常大的列)的超宽表,否则您应该完全忘记setbatch(),而只关注setcaching():
setcaching(int缓存)
设置要传递给扫描仪的缓存行数。如果未设置,将应用配置设置hconstants.hbase\u client\u scanner\u caching。较高的缓存值将启用更快的扫描仪,但会使用更多的内存。
setbatch(int批处理)
设置每次调用next()时要返回的最大值数
setbatch是关于在每次调用/迭代时应该返回的行的值的数目。这里有一个关于它的好帖子:http://blog.jdwyah.com/2013/08/hbase-scan-batch-vs-cache.html

相关问题