hbase scan返回100行,第一次很慢。我已经确认connection创建好了,scan主要设置如下:
scan.setMaxResultSize(100);
scan.setLimit(100)
scan.setStartRow(byte[])
scan.setStopRow(byte[])
然后就是循环ResultScanner取next row
scan 第一次返回100行很慢,要1-2秒多
一次rpc可能返回的数据不止100条
如果第一次读很慢,第二次读很快,基本可以确定是hbase的cache命中
一般来说,如果hbase没有内存命中,才回去sata上面读取数据,并缓存到cache中返回给用户;如果命中,则直接返回给用户
cache有一定的大小,一般遵循LRU规则淘汰
在第一次取next的时候,hbase的客户端会向服务器发送一个rpc请求,并拿回来一些数据,具体拿多少取决于cache的大小和具体值的大小,由于会预拿,所以后面几次next就是本地操作很快了。至于第一次为什么慢,得看下服务器,是服务器压力大,还是网络本身延迟大
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。