小编kry*_*anh的帖子

使用 --experiments=upload_graph 使 Dataflowrunner 工作

我有一个管道,它生成的数据流图(序列化 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.
Run Code Online (Sandbox Code Playgroud)

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

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

Runnable workflow has no steps specified.
Run Code Online (Sandbox Code Playgroud)

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

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

mvn archetype:generate \
      -DarchetypeGroupId=org.apache.beam \
      -DarchetypeArtifactId=beam-sdks-java-maven-archetypes-examples \
      -DarchetypeVersion=2.11.0 \ …
Run Code Online (Sandbox Code Playgroud)

google-cloud-dataflow apache-beam

5
推荐指数
1
解决办法
1331
查看次数

标签 统计

apache-beam ×1

google-cloud-dataflow ×1