Apache flink FlinkQueryableState:本地群集上的配置问题

Apache flink FlinkQueryableState:本地群集上的配置问题,apache-flink,flink-streaming,Apache Flink,Flink Streaming,我正在从IDE运行flink。在queryable中存储数据正在工作, 但不知怎的,当我查询它时,它抛出了一个异常 例外情况 我的代码: 我没有生成新的迷你群集或群集。提交 喜欢 正如我所希望的,这是在与使用env.execute运行的主应用程序相同的环境中的同一集群中实现的。这一步骤是否必要 从文档中,默认情况下flink在localhost:6123上运行 连接有问题吗?我需要在单独的集群中提交作业吗?经过大量的谷歌搜索,我找到了一个解决方案 我正在使用LocalStreamenEnviro

我正在从IDE运行flink。在queryable中存储数据正在工作, 但不知怎的,当我查询它时,它抛出了一个异常

例外情况 我的代码: 我没有生成新的迷你群集或群集。提交 喜欢 正如我所希望的,这是在与使用env.execute运行的主应用程序相同的环境中的同一集群中实现的。这一步骤是否必要

从文档中,默认情况下flink在localhost:6123上运行
连接有问题吗?我需要在单独的集群中提交作业吗?

经过大量的谷歌搜索,我找到了一个解决方案

我正在使用LocalStreamenEnvironment,并且得到了相同的错误,直到a发现了这个线程。描述的错误是针对不同的设置(不是本地设置),但用于测试的主题中包含的示例是创建LocalFlinkMiniCluster,参数“useSingleActorSystem”设置为false

查看LocalStreamEnvironment的实现情况,创建微型集群时将“useSingleActorSystem”设置为true

我只是创建了一个扩展LocalStreamEnvironment的类,其中创建的小型集群的“useSingleActorSystem”设置为true,并且所有内容都在IDE中工作

现在我的代码如下:

配置:

Configuration config = new Configuration();
config.setLong(TaskManagerOptions.MANAGED_MEMORY_SIZE, 6);
config.setBoolean(ConfigConstants.LOCAL_START_WEBSERVER, true);
config.setInteger(JobManagerOptions.WEB_PORT, JobManagerOptions.WEB_PORT.defaultValue());
config.setBoolean(QueryableStateOptions.SERVER_ENABLE, true);
config.setString(JobManagerOptions.ADDRESS, "localhost");
config.setInteger(JobManagerOptions.PORT,JobManagerOptions.PORT.defaultValue());
**config.setInteger(ConfigConstants.LOCAL_NUMBER_TASK_MANAGER, 2);**
注意:QueryableState仅适用于此配置本地\u编号\u任务\u管理器设置为大于1的值

实例化/执行环境:

LocalQueryableStreamEnvironment env = LocalQueryableStreamEnvironment.createLocalEnvironment(3, config);
...
env.addSource(anySource)
   .keyby(anyAtribute)
   .flatmap(new UpdateMyStateToBeQueriedLaterMapper())
   .addSink(..); //etc
...
env.execute("JobNameHere");
要创建客户端,请执行以下操作:

final Configuration config = new Configuration();
config.setString(JobManagerOptions.ADDRESS, "localhost");
config.setInteger(JobManagerOptions.PORT, JobManagerOptions.PORT.defaultValue());

HighAvailabilityServices highAvailabilityServices = HighAvailabilityServicesUtils
    .createHighAvailabilityServices(
                   config, 
                   Executors.newSingleThreadScheduledExecutor(),
                   HighAvailabilityServicesUtils.AddressResolution.TRY_ADDRESS_RESOLUTION
    );
return new QueryableStateClient(config,highAvailabilityServices);
有关更多信息访问:

我的依赖项:

compile group: 'org.apache.flink', name: 'flink-java', version: '1.3.1'
compile group: 'org.apache.flink', name: 'flink-jdbc', version: '1.3.1'
compile group: 'org.apache.flink', name: 'flink-streaming-java_2.11', version: '1.3.1'
compile group: 'org.apache.flink', name: 'flink-clients_2.11', version: '1.3.1'
compile group: 'org.apache.flink', name: 'flink-cep_2.11', version: '1.3.1'
compile group: 'org.apache.flink', name: 'flink-connector-kafka-0.10_2.11', version: '1.3.1'
compile 'org.apache.flink:flink-runtime-web_2.11:1.3.1'

还有一种方法可以知道jobmanager在哪里运行。我找不到API你怎么提交你的工作?你能分享你的作业提交日志吗?我是从IDE运行作业的,我想当你从IDE运行作业时,没有办法连接到作业管理器。我使用纱线/集群模式工作是的,没错。
final Configuration config = new Configuration();
config.setString(JobManagerOptions.ADDRESS, "localhost");
config.setInteger(JobManagerOptions.PORT, JobManagerOptions.PORT.defaultValue());

HighAvailabilityServices highAvailabilityServices = HighAvailabilityServicesUtils
    .createHighAvailabilityServices(
                   config, 
                   Executors.newSingleThreadScheduledExecutor(),
                   HighAvailabilityServicesUtils.AddressResolution.TRY_ADDRESS_RESOLUTION
    );
return new QueryableStateClient(config,highAvailabilityServices);
compile group: 'org.apache.flink', name: 'flink-java', version: '1.3.1'
compile group: 'org.apache.flink', name: 'flink-jdbc', version: '1.3.1'
compile group: 'org.apache.flink', name: 'flink-streaming-java_2.11', version: '1.3.1'
compile group: 'org.apache.flink', name: 'flink-clients_2.11', version: '1.3.1'
compile group: 'org.apache.flink', name: 'flink-cep_2.11', version: '1.3.1'
compile group: 'org.apache.flink', name: 'flink-connector-kafka-0.10_2.11', version: '1.3.1'
compile 'org.apache.flink:flink-runtime-web_2.11:1.3.1'