TensorFlow Extended(TFX):澄清光束,气流和Kubeflow的使用

时间:2019-05-17 20:06:08

标签: python tensorflow apache-flink airflow apache-beam

我希望有人可以阐明TensorFlow及其依赖关系(光束,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.pytaxi_pipeline_kubeflow.pytaxi_pipeline_simple.py

BEAM示例?

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

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

链接示例

taxi_pipeline_flink.py中,使用了AirflowDAGRunner。我假设使用AirFlow作为协调器,然后使用Flink作为其执行器。是吗?

气流示例

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

谢谢您的见解。

1 个答案:

答案 0 :(得分:2)

A)为了运行TFX管道,您需要协调器。示例包括Apache Airflow,Kubeflow管道和Apache Beam。

B)Apache Beam是ALSO(也许主要是)用于某些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的提及。

希望它会有所帮助。