由于 Dataflow 工作人员在启动时卡住,TFX 管道停止工作

问题描述

我有一个在 GCP AI Platform Pipelines(托管 Kubeflow)中运行的 TFX Pipeline。它运行良好有一段时间,但在 BigQuery ExampleGen 步骤中突然停止正常工作。

BQ ExampleGen 利用 Dataflow 从 BQ 读取数据并保存到 TRecords。 Dataflow 作业已启动但未执行任何操作 - 在工作器启动/准备期间卡住。

工作日志显示正在使用 pip 安装 python 依赖项。问题是pip为了解决依赖冲突不断下载同一个包的不同版本,但是没有显示冲突是什么。 我在工作虚拟机启动时连接到它,但它没有显示 pip 持续运行并消耗 100% cpu - 我在停止作业之前等了一个多小时,它没有完成。

TFX 版本:0.26.3(与 0.26.4 并列,结果相同) Apache Beam SDL:2.28(用 2.29 尝试,结果相同)

我什至尝试在 Apache Beam docker 映像(Dataflow 工作人员使用的同一个映像)中对 TFX 0.26.3 进行 pip 安装,但在尝试安装时也卡住了。

我已尝试在 Apache Beam docker 映像中安装 TFX 0.30.0,并且安装正常,但我无法在我的 AI Platform Pipeline 中使用 TFX 0.30,因为它似乎只支持 TFX 0.26。

有没有其他人遇到过同样的问题并且可能解决了这个问题?

解决方法

我最终通过将 TFX 容器版本设置为 0.26.1 而不是 0.26.3 解决了这个问题,因为它是 TFX 模板中的默认设置。