如何查询Flink的可查询状态

时间:2019-06-25 17:49:45

标签: scala apache-flink flink-sql

我正在使用flink 1.8.0,并且试图查询我的工作状态。

val descriptor = new ValueStateDescriptor("myState", Types.CASE_CLASS[Foo])
    descriptor.setQueryable("my-queryable-State")

我使用了9067端口,这是this客户端的默认端口:

val client = new QueryableStateClient("127.0.0.1", 9067)
val jobId = JobID.fromHexString("d48a6c980d1a147e0622565700158d9e")

      val execConfig = new ExecutionConfig
       val descriptor = new ValueStateDescriptor("my-queryable-State", Types.CASE_CLASS[Foo])
      val res: Future[ValueState[Foo]] = client.getKvState(jobId, "my-queryable-State","a", BasicTypeInfo.STRING_TYPE_INFO, descriptor)
      res.map(_.toString).pipeTo(sender)

但是我得到了:

[ERROR] [06/25/2019 20:37:05.499] [bvAkkaHttpServer-akka.actor.default-dispatcher-5] [akka.actor.ActorSystemImpl(bvAkkaHttpServer)] Error during processing of request: 'org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: /127.0.0.1:9067'. Completing with 500 Internal Server Error response. To change default exception handling behavior, provide a custom ExceptionHandler.
java.util.concurrent.CompletionException: org.apache.flink.shaded.netty4.io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: /127.0.0.1:9067
  1. 我在做什么错了?
  2. 如何以及在哪里定义QueryableStateOptions

1 个答案:

答案 0 :(得分:0)

因此,如果您想使用error_one_message,则需要在flink中添加适当的Jar。该jar为QueryableState,可以在您的flink发行版的flink-queryable-state-runtime文件夹中找到它,您应该将其移至opt文件夹中。

对于第二个问题,lib只是一个用于创建静态QueryableStateOption定义的类。然后使用定义从ConfigOption文件中读取配置。因此,当前配置flink-conf.yaml的唯一选择是在flink发行版中使用flink-conf文件。

编辑:另外,请尝试阅读此内容。1它提供了有关可查询状态如何工作的更多信息。您不应该真正直接连接到服务器端口,而应使用默认为QueryableState的代理端口。