我理解Curator和ZooKeeper的各个节点(包括Leader, Followers)之间都是长连接 如果你重启了ZK节点的其中一个,应该会导致和这个节点连着的Curator Client都Suspend, 进而导致相应的JobManager丢掉leader ship,所以会cancel掉当前任务然后重新运行
你可以验证一下是不是重启一个ZK节点只是特定的连到这台上面的Flink任务Failover,而不是全部的 最后,这个问题目前应该是没有办法通过Flink配置直接解决,除非是Curator#LeaderLatch对Suspend的状态处理可以进行改进 同时Flink里也需要在LeaderRetrieval中对Suspend状态的处理进行改进,不是直接notify一个empty leader Best, Yang 赵一旦 <hinobl...@gmail.com> 于2020年12月3日周四 上午10:28写道: > > 那Curator的state为什么会变成suspended或lost呢?我重启zk一般都是一台一台重启,而且我最近才刚刚又试过一次,我是先重启了follower > zk节点,结果刚刚kill一瞬间flink任务全部出问题了。 > > Yang Wang <danrtsey...@gmail.com> 于2020年12月1日周二 下午8:18写道: > > > Flink是利用Curator Framework来进行Leader Election和Retrieval,当时Curator的State > > 变成Suspended或者Lost的时候都会触发leader的revoke,进而导致需要Cancel掉之前的job > > 等待新的leader出现再重新调度 > > > > 你可以提供一下JobManager的log或者自己观察一下JobManager的log是不是有Curator Connection > State的变化 > > 进而导致了Failover > > > > > > Best, > > Yang > > > > 赵一旦 <hinobl...@gmail.com> 于2020年12月1日周二 下午7:13写道: > > > > > 又石沉大海了,有没有懂的人出来解释下。 > > > > > > RS <tinyshr...@163.com> 于2020年11月17日周二 上午9:35写道: > > > > > > > 哈哈, 我的也是, flink和ZK断开连接的话, 任务会全部重启, 这边测试了各种场景, 比如部署HA方案, > > > > 部署多个jobmanager都测试过, 任务都是会重启的, 同样不知道如何解决. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 在 2020-11-16 18:39:29,"赵一旦" <hinobl...@gmail.com> 写道: > > > > > > > > > > > > > > >按照我在工作中经验,有过几次需要重启zk集群,我是单个zk节点逐个重启。结论是导致了flink集群中任务的全部自动重启(基于最近一次的ckpt)。这对任务还是有一定影响的,因为ckpt是10分钟一次,会导致瞬间压力变高。 > > > > > > > > > >问下这个合理嘛,还是我配置的有问题or操作有问题。 > > > > > > > > > >