开发者社区> 问答> 正文

hbase scan返回100行,第一次很慢

hbase scan返回100行,第一次很慢。我已经确认connection创建好了,scan主要设置如下:
scan.setMaxResultSize(100);
scan.setLimit(100)
scan.setStartRow(byte[])
scan.setStopRow(byte[])
然后就是循环ResultScanner取next row

scan 第一次返回100行很慢,要1-2秒多

展开
收起
hbase小助手 2018-12-24 17:24:17 7313 0
2 条回答
写回答
取消 提交回答
  • 一次rpc可能返回的数据不止100条
    如果第一次读很慢,第二次读很快,基本可以确定是hbase的cache命中
    一般来说,如果hbase没有内存命中,才回去sata上面读取数据,并缓存到cache中返回给用户;如果命中,则直接返回给用户
    cache有一定的大小,一般遵循LRU规则淘汰

    2019-07-17 23:23:43
    赞同 展开评论 打赏
  • Lindorm内核研发 HBase社区Committer/PMC成员

    在第一次取next的时候,hbase的客户端会向服务器发送一个rpc请求,并拿回来一些数据,具体拿多少取决于cache的大小和具体值的大小,由于会预拿,所以后面几次next就是本地操作很快了。至于第一次为什么慢,得看下服务器,是服务器压力大,还是网络本身延迟大

    2019-07-17 23:23:43
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
大数据时代的存储 ——HBase的实践与探索 立即下载
Hbase在滴滴出行的应用场景和最佳实践 立即下载
阿里云HBase主备双活 立即下载