流处理应用程序在Flink集群上运行,使用原始Flink支持快照,然后通过Flink REST API从快照重新启动作业,例如停止保存点。使用Flink runner的Apache Beam是否支持使用快照启动/停止?如果是,那么启动Beam作业是什么样子的?如果作业是用Python编写的,这会发生什么变化?
qjp7pelc1#
Apache Beam的Flink runner不像原生Flink应用程序那样直接支持使用Flink REST API(例如,使用保存点停止)使用快照启动和停止作业。Apache Beam中的Flink runner允许您在Apache Flink上执行Apache Beam管道,但与Flink的交互是通过Beam API抽象的。在Flink runner上启动Beam作业时,通常使用标准的Beam管道执行方法,例如pipeline.run()或将作业提交给Beam runner,然后将执行委托给Flink。Beam runner处理Beam管道到Flink执行计划的转换。如果作业是用Java编写的,启动过程通常很简单,因为Flink runner更成熟,并且与Java SDK集成得更好。但是,如果作业是用Python编写的,则Beam Flink runner依赖于Flink Python API来执行管道,与Java SDK相比,这可能具有某些限制。在Flink runner上启动Python Beam作业将涉及以下步骤:1.确保您已经设置了所需的环境,包括Python,Apache Beam和Flink runner。1.使用Python SDK编写Beam管道。1.使用beam.runners.flink.FlinkRunner提交管道以供执行。
1条答案
按热度按时间qjp7pelc1#
Apache Beam的Flink runner不像原生Flink应用程序那样直接支持使用Flink REST API(例如,使用保存点停止)使用快照启动和停止作业。Apache Beam中的Flink runner允许您在Apache Flink上执行Apache Beam管道,但与Flink的交互是通过Beam API抽象的。
在Flink runner上启动Beam作业时,通常使用标准的Beam管道执行方法,例如pipeline.run()或将作业提交给Beam runner,然后将执行委托给Flink。Beam runner处理Beam管道到Flink执行计划的转换。
如果作业是用Java编写的,启动过程通常很简单,因为Flink runner更成熟,并且与Java SDK集成得更好。但是,如果作业是用Python编写的,则Beam Flink runner依赖于Flink Python API来执行管道,与Java SDK相比,这可能具有某些限制。
在Flink runner上启动Python Beam作业将涉及以下步骤:
1.确保您已经设置了所需的环境,包括Python,Apache Beam和Flink runner。
1.使用Python SDK编写Beam管道。
1.使用beam.runners.flink.FlinkRunner提交管道以供执行。