在 Dataflow 中使用自定义 docker 容器

Jon*_*ter 8 google-cloud-dataflow

通过此链接,我发现 Google Cloud Dataflow 为其工作人员使用 Docker 容器:Google Cloud Dataflow 实例的映像

我看到可以找出 docker 容器的图像名称。

但是,有没有办法获取这个 docker 容器(即我应该从哪个存储库获取它?),修改它,然后指示我的 Dataflow 作业使用这个新的 docker 容器?

我问的原因是我们需要在我们的 docker 上安装各种 C++ 和 Fortran 以及其他库代码,以便 Dataflow 作业可以调用它们,但是这些安装非常耗时,所以我们不想使用“资源”属性df 中的选项。

Pab*_*blo 6

2020 年 5 月更新

自定义容器仅在 Beam 可移植性框架内受支持。

当前在可移植性框架内启动的管道必须--experiments=beam_fn_api显式(用户提供的标志)或隐式(例如,所有 Python 流管道都通过)。

请参阅此处的文档:https : //cloud.google.com/dataflow/docs/guides/using-custom-containers?hl=en#docker

一旦 Dataflow 运行器完全支持自定义容器,就会有更多特定于 Dataflow 的文档。有关其他 Beam runner 中自定义容器的支持,请参阅:http : //beam.apache.org/documentation/runtime/environments


用于 Dataflow 工作器的 docker 容器目前是私有的,无法修改或自定义。

实际上,它们是从私有 docker 存储库提供的,因此我认为您无法将它们安装在您的机器上。

  • 这在 2020 年仍然有效吗?还是 Dataflow 团队将在不久的将来提供的功能? (2认同)
  • @Dr.FabienTarrade 自定义容器仅在 Beam 可移植性框架内受支持。目前,在可移植性框架内启动的管道必须显式(用户提供的标志)或隐式传递 --experiments=beam_fn_api (例如,所有 Python 流管道都传递该传递)。一旦 Dataflow 运行程序完全支持自定义容器,将会有更多特定于 Dataflow 的文档。有关其他 Beam 运行程序中自定义容器的支持,请参阅:https://beam.apache.org/documentation/runtime/environments/。 (2认同)
  • @Dr.FabienTarrade您还可以在管道启动时暂存所需的管道依赖项,请参阅https://beam.apache.org/documentation/sdks/python-pipeline-dependencies/。 (2认同)