![](/img/trans.png)
[英]Apache Beam Pipeline to read from REST API runs locally but not on Dataflow
[英]What does an Apache Beam Dataflow job do locally?
我在使用 Apache Beam Python SDK 定义的数据流时遇到一些问题。 如果我逐步执行我的代码,它会到达 pipeline.run() 步骤,我认为这意味着执行图已成功定义。 但是,该作业从未在 Dataflow 监控工具上注册,这让我认为它永远不会到达管道验证步骤。
我想更多地了解这两个步骤之间发生了什么,以帮助调试问题。 我看到 output 表明我的requirements.txt
和apache-beam
中的包正在安装 pip 并且似乎有些东西在发送到谷歌的服务器之前被腌制了。 这是为什么? 如果我已经下载了 apache-beam,为什么还要重新下载呢? 腌制的到底是什么?
我不是在这里寻找解决我的问题的方法,只是想更好地理解这个过程。
在图构造期间,数据流将检查错误和管道中的任何非法操作。 一旦检查成功,执行图将转换为JSON并传输到Dataflow服务。 在Dataflow服务中,JSON图经过验证,并且成为工作。 但是,如果管道在本地执行,则该图不会转换为JSON或传输到Dataflow服务。 因此,该图不会在监视工具中显示为作业,它将在本地计算机上运行[1]。 您可以按照文档配置本地计算机[2]。
使用pip download
requirements.txt 中的包,并将它们暂存到暂存位置。 这个暂存位置将被 Dataflow 用作缓存,并用于在 Dataflow worker 上调用pip install -r requirements.txt
以减少对 pypi 的调用时查找包。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.