升级到 Beam 2.30.0 后,Cloud Build 不再工作
Cloud Build does not work anymore after upgrading to beam 2.30.0
我一直在使用这个 yaml 文件来启动我的 dataflow flex workflow with beam 2.27.0,它一直运行良好
- name: gcr.io/$PROJECT_ID/$_IMAGE
entrypoint: python
args:
- /dataflow/template/main.py
- --runner=DataflowRunner
- --project=$PROJECT_ID
- --region=$_REGION
- --job_name=$_JOB_NAME
- --temp_location=$_TEMP_LOCATION
- --sdk_container_image=gcr.io/$PROJECT_ID/$_IMAGE
- --disk_size_gb=50
- --year=2018
- --quarter=QTR1
- --fmpkey=$_FMPKEY
- --setup_file=/dataflow/template/setup.py
今天我决定将 Beam 升级到 2.30.0,当 运行我得到的是完全相同的文件时
这个
Unrecognized SDK container image: gcr.io/datascience-projects/pipeline:latestRun. Custom container images are only supportedfor Dataflow Runner v2.
谁能告诉我需要修复什么?我怀疑我需要 运行 使用 cloud-sdk 而不是 python.....
亲切的问候
马可
当使用 Apache Beam 2.30.0 或更高版本时,您需要添加 --experiment=use_runner_v2
作为参数,因为文档是 covering。
因此,您更新后的 yaml 将如下所示:
- name: gcr.io/$PROJECT_ID/$_IMAGE
entrypoint: python
args:
- /dataflow/template/main.py
- --runner=DataflowRunner
- --project=$PROJECT_ID
- --region=$_REGION
- --job_name=$_JOB_NAME
- --temp_location=$_TEMP_LOCATION
- --sdk_container_image=gcr.io/$PROJECT_ID/$_IMAGE
- --disk_size_gb=50
- --year=2018
- --quarter=QTR1
- --fmpkey=$_FMPKEY
- --setup_file=/dataflow/template/setup.py
- --experiment=use_runner_v2
在开始使用云构建部署和启动 python 数据流管道之前,您能否先看一下下面的清单。
Custom Containers support Dataflow Runner v2
新的 Dataflow 运行ner,Dataflow Runner v2,现在是
Python 流式管道(2.21.0 或更高版本)和滚动
Python 批处理管道(版本 2.21.0 或更高版本)默认输出
从 2021 年 2 月开始。您无需对您的
流水线代码以利用这种新架构。在下面
在某些情况下,您的管道可能不使用 Runner V2,
虽然管道 运行s 在受支持的 SDK 版本上。
你必须 运行 带有 --experiments=use_runner_v2 标志的作业
Dataflow Runner v2 需要 Apache Beam SDK 版本 2.21.0 或
Python 的版本更高,Java 的版本为 2.30.0 或更高版本。什么时候
运行宁你的管道,make sure to launch the pipeline使用
具有相同版本(例如 2.XX.0)和语言的 Apache Beam SDK
版本(例如 Python 3.X)作为自定义容器映像上的 SDK
自定义容器必须运行默认入口点脚本/opt/apache/beam/boot,它初始化工作环境并启动 SDK 工作进程。如果你不这样做 set this entrypoint,你的 worker 将挂起并且永远不会正常启动。
注意:Dataflow 已停止支持使用 Python2 的管道。因此,请确保您使用 python3 作为管道的 运行时间。
我一直在使用这个 yaml 文件来启动我的 dataflow flex workflow with beam 2.27.0,它一直运行良好
- name: gcr.io/$PROJECT_ID/$_IMAGE
entrypoint: python
args:
- /dataflow/template/main.py
- --runner=DataflowRunner
- --project=$PROJECT_ID
- --region=$_REGION
- --job_name=$_JOB_NAME
- --temp_location=$_TEMP_LOCATION
- --sdk_container_image=gcr.io/$PROJECT_ID/$_IMAGE
- --disk_size_gb=50
- --year=2018
- --quarter=QTR1
- --fmpkey=$_FMPKEY
- --setup_file=/dataflow/template/setup.py
今天我决定将 Beam 升级到 2.30.0,当 运行我得到的是完全相同的文件时 这个
Unrecognized SDK container image: gcr.io/datascience-projects/pipeline:latestRun. Custom container images are only supportedfor Dataflow Runner v2.
谁能告诉我需要修复什么?我怀疑我需要 运行 使用 cloud-sdk 而不是 python.....
亲切的问候 马可
当使用 Apache Beam 2.30.0 或更高版本时,您需要添加 --experiment=use_runner_v2
作为参数,因为文档是 covering。
因此,您更新后的 yaml 将如下所示:
- name: gcr.io/$PROJECT_ID/$_IMAGE
entrypoint: python
args:
- /dataflow/template/main.py
- --runner=DataflowRunner
- --project=$PROJECT_ID
- --region=$_REGION
- --job_name=$_JOB_NAME
- --temp_location=$_TEMP_LOCATION
- --sdk_container_image=gcr.io/$PROJECT_ID/$_IMAGE
- --disk_size_gb=50
- --year=2018
- --quarter=QTR1
- --fmpkey=$_FMPKEY
- --setup_file=/dataflow/template/setup.py
- --experiment=use_runner_v2
在开始使用云构建部署和启动 python 数据流管道之前,您能否先看一下下面的清单。
Custom Containers support Dataflow Runner v2
新的 Dataflow 运行ner,Dataflow Runner v2,现在是 Python 流式管道(2.21.0 或更高版本)和滚动 Python 批处理管道(版本 2.21.0 或更高版本)默认输出 从 2021 年 2 月开始。您无需对您的 流水线代码以利用这种新架构。在下面 在某些情况下,您的管道可能不使用 Runner V2, 虽然管道 运行s 在受支持的 SDK 版本上。
你必须 运行 带有 --experiments=use_runner_v2 标志的作业
Dataflow Runner v2 需要 Apache Beam SDK 版本 2.21.0 或 Python 的版本更高,Java 的版本为 2.30.0 或更高版本。什么时候 运行宁你的管道,make sure to launch the pipeline使用 具有相同版本(例如 2.XX.0)和语言的 Apache Beam SDK 版本(例如 Python 3.X)作为自定义容器映像上的 SDK
自定义容器必须运行默认入口点脚本/opt/apache/beam/boot,它初始化工作环境并启动 SDK 工作进程。如果你不这样做 set this entrypoint,你的 worker 将挂起并且永远不会正常启动。
注意:Dataflow 已停止支持使用 Python2 的管道。因此,请确保您使用 python3 作为管道的 运行时间。