0

我发现这篇关于在抢占式机器上运行数据流批处理的文章。

我尝试使用此脚本使用此功能:

gcloud beta dataflow jobs run $JOB_NAME \
    --gcs-location gs://.../Datastore_to_Datastore_Delete \
    --flexRSGoal=COST_OPTIMIZED \
    --region ...1 \
    --staging-location gs://.../temp \
    --network XXX \
    --subnetwork regions/...1/subnetworks/... \
    --max-workers 1 \
    --parameters \
datastoreReadGqlQuery="$QUERY",\
datastoreReadProjectId=$PROJECTID,\
datastoreDeleteProjectId=$PROJECTID

但这是结果:

错误:(gcloud.beta.dataflow.jobs.run)无法识别的参数:--flexRSGoal=COST_OPTIMIZED

要搜索 gcloud 命令的帮助文本,请运行: gcloud help -- SEARCH_TERMS

我运行命令gcloud beta dataflow jobs run help,似乎没有这个选项flexRSGoal......

# gcloud version
Google Cloud SDK 319.0.0
alpha 2020.11.13
beta 2020.11.13
bq 2.0.62
core 2020.11.13
gsutil 4.55
kubectl 1.16.13

我错过了什么?

4

2 回答 2

0

你有没有遵循这个?看来正确的命令应该是:

--flexrs_goal=COST_OPTIMIZED

于 2020-11-19T14:04:19.657 回答
0

似乎--flexrs_goal标志 [1] 不是用于gcloud beta dataflow jobs run命令工具,而是用于 java/python 命令工具。例如 python3 -m ...[2] 中的命令(推荐本文档的完整讲座)。

所以不要使用:

gcloud beta dataflow jobs run <job_name> 
    --flexRSGoal=COST_OPTIMIZE ...

跑:

python3 <my-pipeline-script.py> \
  --flexrs_goal=COST_OPTIMIZED ...

如果您更喜欢使用 java,只需将--flexRSGoal标志切换为--flexRSGoal并遵循 [3] 而不是 [2]。

[1] https://cloud.google.com/dataflow/docs/guides/flexrs#python

[2] https://cloud.google.com/dataflow/docs/quickstarts/quickstart-python#run-wordcount-on-the-dataflow-service

[3] https://cloud.google.com/dataflow/docs/quickstarts/quickstart-java-maven

于 2020-11-26T10:35:01.657 回答