Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flink 弗林克:当一个任务经理被解雇时,工作就失败了?_Apache Flink - Fatal编程技术网

Apache flink 弗林克:当一个任务经理被解雇时,工作就失败了?

Apache flink 弗林克:当一个任务经理被解雇时,工作就失败了?,apache-flink,Apache Flink,我在Kubernetes上运行Flink 1.8 WordCount示例作业时,注意到一个行为。有时,TaskManager pod被OOMKilled并重新启动(现在不需要担心),但整个作业失败,JobManager日志显示已删除分配的插槽XXX 我的问题是,为什么整个工作都失败了?是否有一种方法可以配置Flink,使作业更能容忍暂时性TaskManager故障?Pod中的容器可能会由于多种原因而失败,例如其中的进程以非零退出代码退出,或者容器因超过内存限制而被终止 您可以使用作业规范 .sp

我在Kubernetes上运行Flink 1.8 WordCount示例作业时,注意到一个行为。有时,TaskManager pod被
OOMKilled
并重新启动(现在不需要担心),但整个作业失败,JobManager日志显示
已删除分配的插槽XXX


我的问题是,为什么整个工作都失败了?是否有一种方法可以配置Flink,使作业更能容忍暂时性TaskManager故障?

Pod中的容器可能会由于多种原因而失败,例如其中的进程以非零退出代码退出,或者容器因超过内存限制而被终止

您可以使用作业规范

.spec.template.spec.restartPolicy = "OnFailure"
因此,使用该吊舱将留在系统中,容器将重新运行


有关也请查看正式作业文档的更多信息:

Pod中的容器可能会由于多种原因而失败,例如,其中的进程以非零退出代码退出,或者容器因超过内存限制而被终止

您可以使用作业规范

.spec.template.spec.restartPolicy = "OnFailure"
因此,使用该吊舱将留在系统中,容器将重新运行


有关还检查正式作业文档的更多信息:

Apache Flink的容错机制基于定期检查点,可以保证一次状态一致性,即从故障中恢复后,状态一致,与从未发生故障的状态相同(当然假设确定性应用逻辑)

为了实现这一点,Flink定期拍摄应用程序状态(所谓的检查点)的一致快照。如果出现故障,整个应用程序将重置为最新的竞争检查点。为此,Flink(直到Flink 1.8)始终重新启动整个应用程序。失败是终止工作进程的任何原因,包括应用程序失败、JVM OOM、终止容器、硬件故障等


在Flink 1.9(一周前发布,请参阅)中,Flink添加了所谓的故障转移区域(请参阅),这可以减少重新启动的任务数。对于连续流式应用程序,这仅适用于应用程序没有混洗(按键、广播、分区等)的情况操作。在这种情况下,只有受影响的管道重新启动,所有其他管道继续处理数据。

Apache Flink的容错机制基于定期检查点,可以保证一次状态一致性,即从故障中恢复后,状态一致,就好像从未发生故障一样佩内德(当然假设确定性应用逻辑)

为了实现这一点,Flink定期拍摄应用程序状态(所谓的检查点)的一致快照。如果出现故障,整个应用程序将重置为最新的竞争检查点。为此,Flink(直到Flink 1.8)始终重新启动整个应用程序。失败是终止工作进程的任何原因,包括应用程序失败、JVM OOM、终止容器、硬件故障等


在Flink 1.9(一周前发布,请参阅)中,Flink添加了所谓的故障转移区域(请参阅),这可以减少重新启动的任务数。对于连续流式应用程序,这仅适用于应用程序没有混洗(按键、广播、分区等)的情况操作。在这种情况下,只有受影响的管道重新启动,所有其他管道继续处理数据。

运行Flink作业之前,您应该执行容量计划,否则,您将经常遇到OOM问题,在kubernetes环境中,您应该计算作业将消耗多少内存并设置资源.requests.memory如果部署的资源.requests.memory远低于您的工作实际成本,则部署的限制.memory会高于部署的资源.requests.memory,这也会导致您的工作失败。

运行Flink jobs你应该事先做一个容量计划,否则,你会经常遇到OOM问题,在kubernetes环境中,你应该计算你的工作将花费多少内存,并设置部署的资源.限制.内存,以及资源.请求.内存,如果e资源。请求。内存远低于您的作业实际成本。您的Pod将处于退出状态,这也会导致您的作业失败。

如果我通过flink CLI提交作业,重新启动整个作业是否对CLI透明?或者我必须重新提交它?我观察到,CLI将以非0,我必须重新提交。事实上,我在日志中看到此错误消息:无法重新启动作业字数示例(5A503E6233D3D2D82021547CCB9A4 BCC6)因为重新启动策略阻止了它。谢谢!很高兴在这里见到你,我正在阅读你关于Flink的书,我从中学到了很多,干得好!如果我通过Flink CLI提交作业,重新启动整个作业对CLI是透明的吗?还是我必须重新提交它?我观察到的是,CLI以非0退出,我必须重新提交。实际上,我看到了这一点日志中的错误消息:无法重新启动job WordCount示例(5A503E6233D3D2D82021547CCB9A4 BCC6),因为重新启动策略阻止了它。谢谢!很高兴在这里看到你,我正在阅读你关于Flink的书,我从中学到了很多,很棒!