分享

hbase rest api scanner id的生存周期

我用scanner_id来获取数据,可以在获取完之后删除scanner_id.
但是我发现scanner_id生存周期好长
<property>
<name>hbase.client.scanner.timeout.period</name>
<value>900000</value>
<source>hbase-site.xml</source>

</property>

这个应该是毫秒吧,15分钟
配置里面只有这一条是有关scanner周期的,但这个配置对于Http 请求并没有产生作用
我想知道能不能管理scanner_id的生存周期?
一直不删scanner_id,多了对性能有何影响?

已有(4)人评论

跳转到指定楼层
hello2018 发表于 2018-5-15 18:02:47
楼主说的scanner id是否为scan对象。
如果是的话,这是对象的生命周期,跟请求应该没有关系的。
至于配置
hbase.client.scanner.timeout.period。
此参数指scan查询时每次与RegionServer交互的超时时间。

也就是如果超过这个时间,会中断扫描。但是如果中断扫描理解为对象的生命周期,虽然有可能是一样的,但是感觉不妥。
对象的生命周期,应该由另外一套机制来决定。比如C++,需要自己写。Java由jvm来回收。
回复

使用道具 举报

jinwensc 发表于 2018-5-16 00:10:13
hello2018 发表于 2018-5-15 18:02
楼主说的scanner id是否为scan对象。
如果是的话,这是对象的生命周期,跟请求应该没有关系的。
至于配置 ...

这个是hbase的REST API是通过http请求来scan获取数据
首先会拿到一个scanner id ,根据scanner id
比如
curl -X GET  -H "Accept: application/json"  http://host:8080/table/scanner/scannerid
每次请求获取一批数据

类似与elasticsearch的游标
但是elasticsearch的scroll id是可以指定生存时间的,一段时间没有接着查询就失效了

scanner id应该有类似的周期吧

有没有懂的人

回复

使用道具 举报

starrycheng 发表于 2018-5-16 12:42:04
jinwensc 发表于 2018-5-16 00:10
这个是hbase的REST API是通过http请求来scan获取数据
首先会拿到一个scanner id ,根据scanner id
比如
...

这应该类似session。
具体要看内部机制。
楼主是指下面这种??
ScannerID scannerOpenWithScan(Text tableName, TScan scan)
ScannerID scannerOpen(Text tableName, Text startRow,  columns)
ScannerID scannerOpenWithStop(Text tableName, Text startRow, Text stopRow,  columns)
ScannerID scannerOpenWithPrefix(Text tableName, Text startAndPrefix,  columns)
ScannerID scannerOpenTs(Text tableName, Text startRow,  columns, i64 timestamp)
ScannerID scannerOpenWithStopTs(Text tableName, Text startRow, Text stopRow,  columns, i64 timestamp)

这里面没有提供参数,恐怕不能设置。
除非里面使用了类似session的机制,请求时间过长就超时了。这也是http常见的设置。
回复

使用道具 举报

jinwensc 发表于 2018-5-21 17:00:27
starrycheng 发表于 2018-5-16 12:42
这应该类似session。
具体要看内部机制。
楼主是指下面这种??

我也确实没有看见相关的设置
不知道这个程序入口在哪里
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条