Oner 发表于 2016-3-5 13:30:00

HBase——扫描器缓存

问题导读:
1. 扫描器的缓存怎么设置?


static/image/hrline/4.gif


Scanner扫描器

HBase在扫描数据时,使用Scanner表扫描器。
HTable通过一个Scan实例,调用getScanner(scan)来获取扫描器。可以配置扫描器起止位,以及其他的过滤条件。
通过迭代器返回查询结果,使用起来虽然不是很方便,但是并不复杂。但是这里有一点可能被忽视的地方,就是返回的scanner迭代器,每次调用next的获取下一条记录的时候,默认配置下会访问一次RegionServer。这在网络不是很好的情况下,对性能的影响是很大的。
所以建议配置扫描器缓存,那么如何配置扫描器的缓存呢?


配置扫描器缓存
HBase scanner默认一次从服务器抓取一行数据。通过将其设置成一个合理的值,可以减少scan过程中next()的时间开销,代价是scanner需要通过客户机的内存来维持这些被cache的行的记录。可以通过以下方式来配置扫描器的缓存。

1. 在HBase的conf配置文件中进行配置hbase.client.scanner.caching
2. 通过调用HTable.setScannerCaching(int scannerCaching)进行配置

3. 通过调用Scan.setCaching(int caching)进行配置,三者的优先级越来越高。



页: [1]
查看完整版本: HBase——扫描器缓存