【问题标题】:Google Cloud Dataflow Dependencies谷歌云数据流依赖项
【发布时间】:2019-11-21 13:49:11
【问题描述】:

我想使用数据流并行处理我存储在谷歌存储中的一堆视频剪辑。我的处理算法具有非 python 依赖项,预计会随着开发迭代而改变。


我的偏好是使用带有逻辑的 dockerized 容器来处理剪辑,但似乎不支持自定义容器(2017 年):

use docker for google cloud data flow dependencies

虽然现在可能支持它们 - 因为它正在开发中:

Posthoc connect FFMPEG to opencv-python binary for Google Cloud Dataflow job

根据此问题,可能会提取自定义 docker 映像,但我找不到任何有关如何使用数据流执行此操作的文档。

https://issues.apache.org/jira/browse/BEAM-6706?focusedCommentId=16773376&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-16773376

另一个选项可能是使用 setup.py 安装任何依赖项,如这个过时的示例中所述:

https://cloud.google.com/blog/products/gcp/how-to-do-distributed-processing-of-landsat-data-in-python

但是,在运行示例时,我收到一个错误,即没有名为 osgeo.gdal 的模块。

对于纯 python 依赖项,我也尝试传递 --requirements_file 参数,但我仍然收到错误:Pip install failed for package: -r

根据我对--requirements_file--setup_file 的测试,我可以找到将依赖项添加到 apache_beam 而非数据流的文档,并且似乎 apache_beam 指令不起作用。

【问题讨论】:

  • 您说您尝试过使用--setup_file,但没有成功。那正确吗?我们在 Beam 中有一个依赖它的示例。你能检查一下,看看有没有帮助? github.com/apache/beam/tree/master/sdks/python/apache_beam/…
  • 使用 setup_file 的 landsat 示例对我不起作用。我尝试了 juliaset 示例,它确实有效!谢谢!问题解决了。未来有计划支持 docker 镜像吗?
  • Docker 镜像将支持使用可移植框架的管道。我无法对时间表做出很好的预测,但计划是支持自定义容器,是的。

标签: python tensorflow google-cloud-platform google-cloud-dataflow apache-beam


【解决方案1】:

这在 cmets 中得到了回答,为清楚起见在此重写:

在 Apache Beam 中,您可以修改 setup.py 文件,同时每个容器在启动时运行一次。该文件允许您在 SDK Harness 开始接收来自 Runner Harness 的命令之前执行任意命令。

完整的 example 可以在 Apache Beam 存储库中找到。

【讨论】:

    【解决方案2】:

    从 2020 年起,您可以使用 Dataflow Flex Templates,它允许您指定一个自定义 Docker 容器来执行您的管道。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-06
      相关资源
      最近更新 更多