开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

Flink中failover后,会创建新的jobId吗?

Flink中failover后,会创建新的jobId吗?想确认一下这一点,因为我发现每次手动停止启动的时候会创建新的jobid

展开
收起
三分钟热度的鱼 2023-11-22 19:48:43 73 0
5 条回答
写回答
取消 提交回答
  • Apache Flink的故障恢复机制会在任务失败时重新启动任务,而不是创建新的Job。这意味着,如果一个Job因为某些原因失败了,Flink会尝试重新启动这个Job,而不是创建一个新的Job。

    当你手动停止或启动一个Job时,Flink会改变这个Job的状态,但不会创建新的Job。这就是为什么你每次手动停止或启动一个Job时,JobId不会改变的原因。

    如果你想要创建新的Job,你可以通过调用Flink的REST API来创建新的Job。在创建新的Job时,你可以指定一个新的JobId。

    2023-11-28 10:58:16
    赞同 展开评论 打赏
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    在阿里云Flink中,如果你使用的是HA(高可用)模式,并且启用了自动故障转移(Failover)功能,那么在进行故障转移时会创建一个新的作业实例(Job Instance),但不会创建新的 Job ID。

    具体来说,当发生故障转移时,Flink会根据配置的故障转移策略重新启动作业。这时,新的作业实例会采用相同的 Job ID 和 Job Name,但会分配一个新的 Task Manager(任务管理器)来承载该作业实例,以保证故障转移后的作业能够继续运行。因此,在进行故障转移时,你可能会看到同一作业实例对应的多个 Task Manager。

    如果你手动停止和启动作业,每次启动都会创建一个新的作业实例,因此也会生成新的 Job ID。这是正常情况,与故障转移无关。

    2023-11-24 22:01:44
    赞同 展开评论 打赏
  • 在Flink中,当一个作业失败时,它会触发故障转移(failover)机制,尝试重新执行该作业。在这个过程中,Flink会创建一个新的job ID来标识这个重新执行的作业。

    然而,需要注意的是,Flink的job ID是在作业启动时生成的,而不是在作业失败时重新生成的。因此,当你手动停止并重新启动一个作业时,它通常会使用相同的job ID,而不是创建一个新的job ID。

    但是,如果你在Flink的Web界面或API中手动终止了一个作业,然后再重新提交相同的作业,那么它会被视为一个新的作业,并生成一个新的job ID。

    2023-11-23 09:52:36
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    当 Flink 重新启动并恢复任务时,它不会创建一个新的 jobId。相反,Flink 会在恢复过程中使用原始的 jobId。但是,在手动停止并重新启动 Flink 作业的情况下,确实会出现一个新的 jobId。
    原因是,当你手动停止一个 Flink 作业然后再次启动它时,你会触发一次完整的重新部署过程,这实际上会创建一个新的 Flink 作业实例,并且会有新的 jobId。所以如果要避免这个情况,你可以选择使用 Flink 的 savepoint 功能来保存作业状态,然后在出错时从保存点恢复,这样就能保持原来的 jobId 不变。

    2023-11-22 22:00:32
    赞同 展开评论 打赏
  • 不会,你那种手动的会。此回答整理自钉群“实时计算Flink产品交流群”

    2023-11-22 19:53:33
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载