gpt4 book ai didi

google-cloud-dataflow - 使用 --experiments=upload_graph 让 Dataflowrunner 工作

转载 作者:行者123 更新时间:2023-12-03 00:35:05 26 4
gpt4 key购买 nike

我有一个管道,它生成的数据流图(序列化 JSON 表示)超出了 API 允许的限制,因此无法像通常那样通过 apache beam 的数据流运行程序启动。并且使用指示参数 --experiments=upload_graph 运行数据流运行程序不起作用,并且失败并提示没有指定步骤。

当通过错误收到有关此尺寸问题的通知时,会提供以下信息:

the size of the serialized JSON representation of the pipeline exceeds the allowable limit for the API. 

Use experiment 'upload_graph' (--experiments=upload_graph)
to direct the runner to upload the JSON to your
GCS staging bucket instead of embedding in the API request.

现在使用此参数确实会导致数据流运行程序将额外的 dataflow_graph.pb 文件上传到通常的 pipeline.pb 文件旁边的暂存位置。我验证了它确实存在于 gcp 存储中。

但是,gcp 数据流中的作业在启动后立即失败,并出现以下错误:

Runnable workflow has no steps specified.

我已经在各种管道上尝试过这个标志,甚至是 Apache Beam 示例管道,并看到了相同的行为。

这可以通过使用字数统计示例来重现:

mvn archetype:generate \
-DarchetypeGroupId=org.apache.beam \
-DarchetypeArtifactId=beam-sdks-java-maven-archetypes-examples \
-DarchetypeVersion=2.11.0 \
-DgroupId=org.example \
-DartifactId=word-count-beam \
-Dversion="0.1" \
-Dpackage=org.apache.beam.examples \
-DinteractiveMode=false
cd word-count-beam/

在没有 experiments=upload_graph 参数的情况下运行它是有效的:(如果您想运行它,请确保指定您的项目和存储桶)

mvn compile exec:java -Dexec.mainClass=org.apache.beam.examples.WordCount \
-Dexec.args="--runner=DataflowRunner --project=<your-gcp-project> \
--gcpTempLocation=gs://<your-gcs-bucket>/tmp \
--inputFile=gs://apache-beam-samples/shakespeare/* --output=gs://<your-gcs-bucket>/counts" \
-Pdataflow-runner

使用 experiments=upload_graph 运行它会导致管道失败,并显示消息工作流程没有指定步骤

mvn compile exec:java -Dexec.mainClass=org.apache.beam.examples.WordCount \
-Dexec.args="--runner=DataflowRunner --project=<your-gcp-project> \
--gcpTempLocation=gs://<your-gcs-bucket>/tmp \
--experiments=upload_graph \
--inputFile=gs://apache-beam-samples/shakespeare/* --output=gs://<your-gcs-bucket>/counts" \
-Pdataflow-runner

现在我希望数据流运行程序会指示 gcp 数据流从源代码中所示的指定存储桶中读取步骤:

https://github.com/apache/beam/blob/master/runners/google-cloud-dataflow-java/src/main/java/org/apache/beam/runners/dataflow/DataflowRunner.java#L881

然而事实似乎并非如此。有没有人让它工作,或者找到一些有关此功能的文档可以为我指明正确的方向?

最佳答案

该实验已被恢复,并且消息将在 Beam 2.13.0 中得到纠正

恢复PR

关于google-cloud-dataflow - 使用 --experiments=upload_graph 让 Dataflowrunner 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55828681/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com