2

这可能看起来很愚蠢,但这是我在这里的第一篇文章。很抱歉做错了什么。

我目前正在使用 python2.7 构建一个带有 TFX 0.11(即 tfdv-tft-tfserving)和 tensorflow 1.11 的简单 ML 管道。我目前有一个 apache-flink 集群,我想将它用于 TFX。我知道 TFX 背后的框架是 apache-beams 2.8,它 (apache-beams) 目前通过可移植的运行器层支持使用 python SDK 的 flink。

但问题是我如何通过这个便携式运行器概念使用带有 flink 运行器的 apache-beams 在 TFX (tfdv-tft) 中编码,因为 TFX 目前似乎只支持 DirectRunner 和 DataFlowRunner (Google Cloud)。

我在网上搜索了一段时间,看到TFX网站的最后一行,

“请使用 tensorflow-transform 标签将有关使用 tf.Transform 的任何问题直接提交给 Stack Overflow。”

这就是我在这里的原因。任何想法或解决方法都非常感谢。谢谢!

4

1 回答 1

3

谢谢你的问题。

免责声明:Portable Flink Runner 仍处于实验阶段,仅适用于少量输入数据。

这是通过 Beam 在 Flink 上运行 TFX 的方法。

先决条件

运行 python 管道的说明:https
://beam.apache.org/roadmap/portability/#python-on-flink 注意:我们目前只支持 Flink 1.5.5

指示

1)构建工作容器:

  • 转到 Beam 结帐目录
  • 运行 gradle 命令: ./gradlew :beam-sdks-python-container:docker

2) 为 Flink 运行 Beam JobServer:

  • 转到 Beam 结帐目录
  • 运行 gradle 命令:./gradlew beam-runners-flink_2.11-job-server:runShadow 注意:此命令不会完成,因为它会启动作业服务器并使其保持运行。

3) 提交管道

--experiments=beam_fn_api --runner PortableRunner --job_endpoint=localhost:8099 --experiments=worker_threads=100 --execution_mode_for_batch=BATCH_FORCED

于 2018-12-20T21:18:39.407 回答