我希望有人可以阐明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.py
,taxi_pipeline_kubeflow.py
,taxi_pipeline_simple.py
没有“ BEAM”示例,也很少描述其用法。
假设即使没有安装气流,taxi_pipeline_simple.py
仍然可以运行吗?我认为不是,因为它使用了“ AirflowDAGRunner”。如果不是,那么您可以仅使用BEAM及其运行程序运行TFX吗?如果是这样,为什么没有这样的例子?
在taxi_pipeline_flink.py
中,使用了AirflowDAGRunner。我假设使用AirFlow作为协调器,然后使用Flink作为其执行器。是吗?
页面指出BEAM是必需的依赖项,但气流没有光束作为其执行者之一。它只有SequentialExecutor,LocalExecutor,CeleryExecutor,DaskExecutor和KubernetesExecutor。因此,仅在不使用气流时需要BEAM 吗?使用气流时,如果需要光束的目的是什么?
谢谢您的见解。
答案 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的提及。
希望它会有所帮助。