flink queryable state问题java.util.concurrent.CompletionException: java.lang.IndexOutOfBoundsException
本文为原创,转载请注明出处!
最近在学习flink, queryable state。官网和百度到的代码都很简单,很快就能写出来。但是结果,却很让我困惑。
get kv state return future, waiting......
query resultFuture:[email protected][Not completed]
query resultFuture 4:{"cancelled":false,"completedExceptionally":true,"done":true,"numberOfDependents":0}
query resultFuture 2:[email protected][Completed exceptionally: java.util.concurrent.CompletionException: java.lang.IndexOutOfBoundsException: readerIndex(0) + length(4) exceeds writerIndex(0): PooledSlicedByteBuf(ridx: 0, widx: 0, cap: 0/0, unwrapped: PooledUnsafeDirectByteBuf(ridx: 4, widx: 4, cap: 1024))]
query resultFuture 3:{"cancelled":false,"completedExceptionally":true,"done":true,"numberOfDependents":0}
调了好久,可是结果一直如此。我确认我的代码没问题,各种百度和求助。可是都没有回复。那就只能靠我自己了!
又重新打开官网教程,仔细认真的读。发现果然遗漏了很多重要的细节!
所以现在就很好办了。按照官网写的,我把opt文件夹下面的 flink-queryable-state-runtime_2.11-1.9.1.jar 拷贝到lib下面
但是仍旧不行。重启电脑,还是不行!所以就又在flink-conf.yaml中增加了queryable-state.proxy.ports: 9069的配置。因为我在taskmanager.log的日志中,一直没查不到Queryable proxy的相关信息。
果然不负我所望,加完之后,taskmanager日志里,果然能查到了!
然后更改 remoteHostname 和 remotePort 跟taskmanager.log 里的 Started Queryable State Proxy Server 后面对应的127.0.0.1和9069。就ok啦!
大家都要好好看文档,这样才能解决问题!!!
官方文档:https://ci.apache.org/projects/flink/flink-docs-stable/dev/stream/state/queryable_state.html
对应的代码的queryable state demo: https://github.com/chulili/queryableTest
本文为原创,转载请注明出处!