apache-beam - Google DataFlow Batch 类型作业卡在 BigQueryIO.Write/StreamingInserts 步骤
问题描述
我有一个批处理类型的数据流作业。我正在从 GCS 文件中读取 id,为每个 id 调用一些 API,API 为每个 id 返回 N 个项目。然后我尝试将所有这些项目写入 BigQuery 表。
该过程卡住了以下消息:
Processing stuck in step BigQueryIO.Write/StreamingInserts/StreamingWriteTables/Reshuffle/GroupByKey/Read for at least 05m00s without outputting or completing in state read-shuffle
注意:只有当我使用超过 1 个工人时才会发生这种情况。有 1 名工人一切正常。
更新:数据流参数:
DataflowPipelineOptions options = PipelineOptionsFactory.as(DataflowPipelineOptions.class);
options.setRunner(DataflowRunner.class);
options.setProject("my-project");
options.setJobName("my-job");
options.setRegion("us-east1");
options.setWorkerMachineType("n1-standard-1");
options.setNumWorkers(2);
options.setMaxNumWorkers(2);
options.setSubnetwork("some_subnetwork");
options.setStagingLocation("gs://bla/staging");
options.setGcpTempLocation("gs://bla/temp");
更新 2:对于少量的输入 id,只有 1 个工作人员可以正常工作,因为只有在检索到所有实体后,Reshuffle 才能成功完成。如果我有很多输入 id 重新洗牌卡住等待所有前面的步骤完成。
解决方案
推荐阅读
- python - 我如何匹配 SequenceMatcher 的最佳比例
- javascript - 数月经验 - Javascript
- angular - 我如何在同一个角度项目中实现 2 个 html 主题
- sql - 对 Presto 中的所有按值分组的值执行按位运算
- linq - 将复杂的 IQueryable LINQ 重构为子方法
- javascript - Recaptcha v3 有很多误报
- testing - 为什么 radamsa 不生成请求数量的 testacase?
- java - pdf结果格式错误
- json - Apache Druid – 在平面 JSON 数据中摄取多个对象仅返回单行
- r - R Shiny:numericInputs 使用 observeEvent 相互更新