我遇到了Apache Beam Python SDK定义的Dataflow的一些问题。如果我单步执行我的代码,它会到达pipeline.run()步骤,我假设这意味着执行图已成功定义。但是,该作业从未在Dataflow监视工具上注册,而this使我认为它永远不会到达管道验证步骤。
我想更多地了解这两个步骤之间发生的事情,以帮助调试问题。我看到我的requirements.txt
和apache-beam
中的输出指示包正在安装pip,似乎有些东西在被发送到Google的服务器之前被腌制。这是为什么?如果我已经下载了apache-beam,为什么还要再次下载?腌菜究竟到底是什么?
我不是在寻找解决问题的方法,只是想更好地理解这个过程。
答案 0 :(得分:0)
在图形构建期间,Dataflow会检查错误以及管道中的任何非法操作。检查成功后,执行图将转换为JSON并传输到Dataflow服务。在Dataflow服务中,JSON图表已经过验证,并且它将成为一项工作。 但是,如果管道在本地执行,则图形不会转换为JSON或传输到Dataflow服务。因此,图形不会显示为监视工具中的作业,它将在本地计算机上运行[1]。您可以按照文档配置本地计算机[2]。