TensorFlow Extended (TFX):阐明 Beam、Airflow 和 Kubeflow 的使用

Rob*_*ugg 5 python apache-flink airflow tensorflow apache-beam

我希望有人能澄清 TensorFlow 与其依赖项(Beam、AirFlow、Flink 等)之间的关系

我正在引用主 TFX 页面:https ://www.tensorflow.org/tfx/guide#creating_a_tfx_pipeline_with_airflow 等。

在示例中,我看到了三个变体: https://github.com/tensorflow/tfx/tree/master/tfx/examples/chicago_taxi_pipeline taxi_pipeline_flink.py , taxi_pipeline_kubeflow.py,taxi_pipeline_simple.py

梁示例?

没有“BEAM”示例,也很少描述其用途。

假设taxi_pipeline_simple.py即使没有安装气流也会运行是否正确?我认为不是,因为它使用“AirflowDAGRunner”。如果没有,那么您可以仅使用 BEAM 及其运行器运行 TFX 吗?如果是这样,为什么没有这样的例子?

Flink 示例

在 中taxi_pipeline_flink.py,使用了 AirflowDAGRunner。我假设使用 AirFlow 作为协调器,而后者又使用 Flink 作为其执行器。正确的?

气流示例

该页面指出 BEAM 是必需的依赖项,但气流没有将梁作为其执行器之一。它只有 SequentialExecutor、LocalExecutor、CeleryExecutor、DaskExecutor 和 KubernetesExecutor。因此,仅在不使用 Airflow 时才需要BEAM吗?使用气流时,如果需要,光束的目的是什么?

感谢您提供任何见解。

Eli*_*ino 5

A) 为了运行 TFX 管道,您需要协调器。例如 Apache Airflow、Kubeflow Pipelines 和 Apache Beam。

B) Apache Beam 也(可能主要)用于某些 TFX 组件中的分布式数据处理。因此,您选择的任何编排器都需要 Apache Beam(即使您不使用 Apache Beam 作为编排器!)

回答你的观点:

1) BEAM 示例 - 现在https://github.com/tensorflow/tfx/blob/master/tfx/examples/chicago_taxi_pipeline/taxi_pipeline_beam.py 上有一个 Beam 示例。正如您所料,那里没有 AirflowDAGRunner,因为此示例不使用 Airflow 作为协调器。

2) 气流示例 - 由于上述原因,BEAM 是必需的依赖项:TFX 始终使用 BEAM 来在某些组件中进行分布式数据处理。因此,即使使用 Airflow(或任何其他)作为协调器,您也需要 BEAM。

3) Flink 示例 - 目前,我在任何地方都找不到此示例(可能是由于您发布后链接发生了更改),但是 Flink 可能会用作运行器,而 Airflow 是协调器。但是,我在 Airflow 的文档中找不到对 Flink 的提及。

希望它在某种程度上有所帮助。