dear all: 如题,我在调用RestClusterClient#cancel(JobID jobId)方法取消作业时,get不到结果,但作业能正常停止。
用future.get()会报错如下: Number of retries has been exhausted. 用future.get(10, TimeUnit.SECONDS)会报错timeout. 调用#cancelWithSavepoint(...)和#stopWithSavepoint(...)就没问题,可以正常获取到结果,不报错。 作业运行于cdh yarn集群,版本2.6.0 作业部署,per-job 代码如下: try (ClusterClient<?> clusterClient = new RestClusterClient<>(configuration, clusterId)) { clusterClient .cancel(jobId) .get(20, TimeUnit.SECONDS) } catch (Exception e) { // } 有谁知道如何解决此问题吗? 非常感谢! ---- 回复的原邮件 ---- | 发件人 | Yun Tang<myas...@live.com> | | 日期 | 2021年12月09日 10:57 | | 收件人 | user-zh<user-zh@flink.apache.org> | | 抄送至 | | | 主题 | Re: flink sql支持细粒度的状态配置 | Hi 你好, 我认为这是一个很好的需求,对于data stream以及python API来说,state TTL都是通过API逐个配置的,你的需求就可以直接满足。但是对于SQL来说,由于相同的SQL语句,不同优化器其生成的执行plan可能会差异很大,很难对某个operator内的state进行TTL进行配置,可能一种方式是增加一些SQL的优化hint,对于你示例中的join语句和groupBy 的count语句配以不同的TTL,但是目前Flink SQL尚未支持该功能。 祝好 唐云 ________________________________ From: gygz...@163.com <gygz...@163.com> Sent: Tuesday, December 7, 2021 18:38 To: user-zh <user-zh@flink.apache.org> Subject: flink sql支持细粒度的状态配置 Hi all 在我们生产中发现,如果在sql中配置状态的TTL会导致这个 ttl时间全局生效 如果我存在一个如下sql select count(1),region from (select * from A join B on a.uid = b.uid) group by region 如果我配置一个全局的TTL会导致count这个GroupAggFunction的状态被淘汰掉,比如说一天以后累计就被清零 如果不配置,又会导致Regular join的状态增大 这是其中一个场景,这里只是举一个例子 主要是想询问针对 Sql中需要配置局部State的ttl时间,或者同一个任务每个sql配置不同的TTL时间,这种场景应该如何去做 ? gygz...@163.com