AIFlow 是一个基于事件的工作流编排平台,允许用户以编程方式创作和安排流式和批处理任务混合的工作流。
大多数现有的工作流编排平台(例如Apache AirFlow、KubeFlow)根据上游任务执行的状态变化来调度任务执行。虽然此方法适用于保证结束的批处理任务,但它不适用于可能无限运行而不更改状态的流任务。 AIFlow 的提出是为了促进涉及流任务的工作流程的编排。
例如,用户可能希望连续运行 Flink 流作业来组装训练数据,并在每次 Flink 作业处理完过去一小时的所有上游数据时启动机器学习训练作业。为了使用非基于事件的工作流编排平台来安排此工作流,用户需要根据挂钟时间定期安排训练作业。如果出现流量峰值或上游作业失败,则在 TensorFlow 作业启动时 Flink 作业可能尚未处理预期数量的上游数据。上游作业要么继续等待,要么快速失败,要么处理部分数据,这些都不是理想的。相比之下,AIFlow 为 Flink 作业提供了 API,每当基于事件的水印增加一小时时,就会发出一个事件,从而触发执行用户指定的训练作业,而不会遇到上述问题。
了解有关 AIFlow 的更多信息,请访问 https://ai-flow.readthedocs.io
事件驱动:AIFlow 根据事件安排工作流程和作业。这比状态驱动的调度更高效,并且能够调度包含流作业的工作流。
可扩展:用户可以轻松定义自己的操作者和执行者,将各种类型的任务提交到不同的平台。
Exactly-once:AIFlow 提供了具有 Exactly-once 语义的事件处理机制,这意味着即使发生故障转移,您的任务也不会丢失或重复。
B基于AIFlow+Flink在批流融合调度上的实践
我们很高兴地欢迎以任何方式对 AIFlow 做出贡献,无论是报告问题、起草功能还是贡献代码更改。您可以报告问题以请求 GitHub 问题中的功能。如果您想贡献代码更改,请查看贡献文档。
如需了解更多信息,我们建议您加入 Google 网上论坛上的AIFlow 社区群组,以便与我们联系: [email protected] 。
您也可以加入钉钉群组。钉钉群号是35876083
,也可以扫描下面的二维码加入群: