数据流管道运行错误:SDK 断开连接

问题描述 投票:0回答:1

我正在尝试使用 DataflowRunner 和 --no_use_public_ips 运行测试数据流管道。 它正在从 Bigquery 读取一个小表并在存储中写入 csv,所有这些都在同一个项目中。

python3 ./Dataflow/pipeline-v2.py   --project='<>'   --region='<>'   --service_account_email='<>'   --dataset_id='dataset_id'   --ingest_table_name='titanic'   --storage_bucket='<>'   --temp_location='<>'   --runner=DataflowRunner   --subnetwork='<>' --no_use_public_ips

我收到此错误:

信息:apache_beam.runners.dataflow.dataflow_runner:2023-: JOB_MESSAGE_ERROR:工作流程失败。原因:S40:读取自 BigQuery/FilesToRemoveImpulse/Impulse+读取 BigQuery/FilesToRemoveImpulse/FlatMap()+读取 从 BigQuery/FilesToRemoveImpulse/Map(decode)+读取 BigQuery/MapFilesToRemove 失败。作业因工作项而失败 已经失败4次了。查看以前的日志条目以了解每个问题的原因 4个失败之一。如果日志仅包含一般超时错误 与访问外部资源(例如 MongoDB)相关,验证 工作人员服务帐户有权访问该资源的 子网。有关更多信息,请参阅 https://cloud.google.com/dataflow/docs/guides/common-errors。工作 尝试对这些工人进行项目:

  Root cause: SDK disconnect.
  Worker ID: beamapp-root-...,

  Root cause: SDK disconnect.
  Worker ID: beamapp-root-...,

  Root cause: SDK disconnect.
  Worker ID: beamapp-root-...s,

  Root cause: SDK disconnect.
  Worker ID: beamapp-root-...

我怀疑此问题是由于 Dataflow 缺少从 Bigquery 表读取的权限而产生的,但我不确定这是否是原因。 service_account_email 拥有所有需要的 BQ 权限。

data = p | 'Read from BigQuery' >> beam.io.ReadFromBigQuery(query=query, use_standard_sql=True)

我不知道如何调试这个。我拥有的唯一信息来自我启动管道的虚拟机的 CLI 和云日志记录。

google-cloud-platform google-cloud-dataflow apache-beam
1个回答
0
投票

问题解决了。一个组件试图导入默认工作映像中不存在的库。

© www.soinside.com 2019 - 2024. All rights reserved.