使用 flink runner 对梁进行 Tensorflow 变换

Tensorflow transform on beams with flink runner

这可能看起来很愚蠢,但这是我第一次 post 来这里。抱歉做错了什么。

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

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

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

"Please direct any questions about working with tf.Transform to Stack Overflow using the tensorflow-transform tag."

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

感谢提问。

免责声明:便携式 Flink 运行ner 仍处于实验阶段,只能处理少量输入数据。

以下是您可以如何通过 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:运行Shadow 注意:此命令不会完成,因为它会启动作业服务器并保持 运行ning.

3) 提交管道

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