最后的解决方案是在 kubernetes-session.sh 启动参数中增加:
-Dakka.ask.timeout=100s -Dweb.timeout=100
或者直接修改 configmap 中的 flink-conf.yml
经过多次测试,该问题的根源应该是 slot 太多导致初始的 1ms timeout 不够用,但 1.13 增加参数后仍会出现异常,1.14 则没有问题。
再次感谢 huweihua
On Apr 29 2022, at 9:49 am, Pan Junxun wrote:
> 感谢大佬指点,我换到 1.14.4 后这个问题
timeout 的时间配置项为taskmanager.slot.timeout,如果没有单独配置,则使用 akka.ask.timeout
> 的值(默认为 10s)。
> 可以尝试增加 taskmanager.slot.timeout 超时来避免这个问题,如果仍然有问题,需要进一步通过
> JobManager/TaskManager 日志进行分析。
> > 2022年4月28日 下午8:04,Pan Junxun 写道:
> >
> > 感谢回复!
> >
> > 日志内容如下:
> >
> > 2022-
忘记说了,Flink 版本是 1.13.1
On Apr 28 2022, at 8:04 pm, Pan Junxun wrote:
> 感谢回复!
>
> 日志内容如下:
>
> 2022-04-28 19:58:20
> org.apache.flink.runtime.JobException: Recovery is suppressed by
> NoRestartBackoffTimeStrategy
> at
> org.apache.flink.runtime.ex
)
at
org.apache.flink.runtime.rpc.akka.AkkaRpcActor.handleRpcMessage(AkkaRpcActor.java:208)
... 21 more
Job 内容是从 kafka 读取数据写入到 es,中间还有一些简单操作,任务图上就两个子任务,并行度在前端提交任务的地方设置。启动后可以在
Taskmanager 处看到一共 6 个 slot 空闲一个,但很快就 Failed 然后全部释放掉。
Best,
pan junxun
On Apr 28 2022, at 7:54 pm, huweihua wrote:
> Hi, Jun
万分抱歉!邮件客户端误触发送出去了。。。
请问为什么 slot 总数充足的情况下会出现 slot 不足的异常?如何在 native kubernetes 下正确启动一个多并行度任务?
感谢大家抽空看我的邮件!
Best,
潘
On Apr 28 2022, at 5:28 pm, Pan Junxun wrote:
> 您好,
>
> 我最近在尝试使用 native kubernetes 方式部署 flink 集群。我根据官方文档使用 session
> 模式部署了一个集群,并在上面提交了一个并行度为 5 的测试 Job
您好,
我最近在尝试使用 native kubernetes 方式部署 flink 集群。我根据官方文档使用 session
模式部署了一个集群,并在上面提交了一个并行度为 5 的测试 Job,参数设置了
-D-Dtaskmanager.numberOfTaskSlots=3。提交后可以在前端看到创建了两个 slot 数量为 3 的
Taskmanager,并且其中有一个 Taskmanager 显示 1 slot free。但是 Job 无法正常启动,得到了
has no more allocated slots for job