这可能看起来很愚蠢,但这是我在这里的第一个职位。抱歉做错了什么。
我目前正在使用python2.7构建一个简单的ml管道,其中tfx0.11(即tfdv-tft-tfserving)和tensorflow 1.11。我目前有一个apache flink集群,我想将其用于tfx。我知道tfx背后的框架是apachebeams2.8,它(apachebeams)通过一个可移植的runner层支持带有pythonsdk的flink。
但问题是如何通过这个可移植的runner概念使用apachebeams和flinkrunner在tfx(tfdv-tft)中进行编码,因为tfx目前似乎只支持directrunner和dataflowrunner(googlecloud)。
我在网上搜索了一段时间,看到了tfx网站的最后一行,
“有关使用tf.transform的任何问题,请使用tensorflow transform标记将其指向堆栈溢出。”
所以我才在这里。任何想法或解决方法都非常感谢。谢谢您!
1条答案
按热度按时间fsi0uk1n1#
谢谢你的提问。
免责声明:便携式flink runner仍处于实验阶段,只能处理少量的输入数据。
下面是如何通过beam在flink上运行tfx。
先决条件
linux操作系统
Docker
梁式回购:https://github.com/apache/beam
用于输入和输出的分布式文件系统。
运行python管道的说明:https://beam.apache.org/roadmap/portability/#python-在Flink
注意:我们目前只支持flink 1.5.5
说明
1) 生成辅助容器:
转到梁检出方向
运行gradle命令:./gradlew:beam sdks python-container:docker
2) 为flink运行beam jobserver:
转到梁检出方向
运行gradle命令:./gradlew beam-runners-flink_2.11-job-server:runshadow note:此命令不会在启动作业服务器并保持其运行时完成。
3) 提交管道
请参阅https://github.com/angoenka/model-analysis/blob/hack_1/examples/chicago_taxi/preprocess_flink.sh
注意:确保将以下标志传递给管道
--experiments=beam_fn_api --runner PortableRunner --job_endpoint=localhost:8099 --experiments=worker_threads=100 --execution_mode_for_batch=BATCH_FORCED