Rumah >pangkalan data >tutorial mysql >HBase“扫描器”scanner使用和优化

HBase“扫描器”scanner使用和优化

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBasal
2016-06-07 16:29:591110semak imbas

HBase在扫描数据的时候,使用scanner表扫描器。HTable通过一个Scan实例,调用getScanner(scan)来获取扫描器。可以配置扫描起止位,以及其他的过滤条件。通过迭代器返回查询结果,使用起来虽然不是很方便,不过并不复杂。但是这里有一点可能被忽略的地方,就

HBase在扫描数据的时候,使用scanner表扫描器。HTable通过一个Scan实例,调用getScanner(scan)来获取扫描器。可以配置扫描起止位,以及其他的过滤条件。通过迭代器返回查询结果,使用起来虽然不是很方便,不过并不复杂。但是这里有一点可能被忽略的地方,就是返回的scanner迭代器,每次调用next的获取下一条记录的时候,默认配置下会访问一次RegionServer。这在网络不是很好的情况下,对性能的影响是很大的。测试中,未配置前,一个业务的消耗时间为:

Cost time: 159941

通过:

scan.setCaching(10000);

指定一次取出10000条记录后,该业务的消耗时间为:

Cost time: 64845

因为该 业务访问数据次数很多,所以效果很明显。

也有说可通过修改配置项hbase.client.scanner.caching的值,来使该配置生效。不过,OneCoder这里在hbase-site.xml中增加了该配置却没有生效。

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn