Google Bigtable导出挂起,卡住,然后在Dataflow中失败。工人从未分配

时间:2018-03-27 16:22:17

标签: google-cloud-dataflow google-cloud-bigtable

我正在尝试使用此过程:

https://cloud.google.com/bigtable/docs/exporting-sequence-files

导出我的bigtable进行备份。我已经尝试过bigtable-beam-import版本1.1.2和1.3.0但没有成功。该程序似乎正确启动了数据流,但无论我使用什么设置,工作人员似乎永远不会被分配到工作中。日志总是说:

Autoscaling: Raised the number of workers to 0 based on the rate of progress in the currently running step(s).

然后它挂起,工人永远不会被分配。如果我让它运行,日志说:

2018-03-26 (18:15:03) Workflow failed. Causes: The Dataflow appears to be stuck. Workflow failed. Causes: The Dataflow appears to be stuck. You can get help with Cloud Dataflow at https://cloud.google.com/dataflow/support.

然后它被取消了:

Cancel request is committed for workflow job...

我想我已经尝试更改所有可能的管道选项:

https://cloud.google.com/dataflow/pipelines/specifying-exec-params

我尝试关闭Autoscaling并指定这样的工作人员数量:

java -jar bigtable-beam-import-1.3.0-shaded.jar export \
    --runner=DataflowRunner \
    --project=mshn-preprod \
    --bigtableInstanceId=[something]\
    --bigtableTableId=[something] \
    --destinationPath=gs://[something] \
    --tempLocation=gs://[something] \
    --maxNumWorkers=10 \
    --zone=us-central1-c \
    --bigtableMaxVersions=1 \
    --numWorkers=10 \
    --autoscalingAlgorithm=NONE \
    --stagingLocation=gs:[something] \
    --workerMachineType=n1-standard-4

我也尝试过指定工人机器类型。没有什么变化。始终自动缩放为0并失败。如果Dataflow团队中有人,您可以查看失败的作业ID:exportjob-danleng-0327001448-2d391b80。

其他人有此体验吗?

1 个答案:

答案 0 :(得分:3)

在对我的GCloud项目权限进行了大量更改后,检查了我的配额等,结果发现我的问题出在网络上。这个Stack Overflow问题/答案非常有用:

Dataflow appears to be stuck 3

事实证明,我们的团队在gcloud项目中创建了一些网络/子网,并删除了默认网络。当数据流试图为工作程序创建VM时,它失败了,因为它无法在"默认"网络

数据流日志中没有错误,只有上面的数据流被卡住了。"数据流被卡住了。我们最终在" Activity"中找到了有用的错误消息。在gloud主页上流。然后,我们通过创建一个字面上称为"默认"的子网来解决问题,子网称为"默认"在所有地区。然后,Dataflow能够正确分配VM。

您应该能够将networksubnet作为管道参数传递,但是对于我们来说,使用提供的BigTable导出脚本(问题中的链接)并不起作用,但如果您和#39;直接针对Dataflow API编写Java代码,您可以通过从代码中设置正确的networksubnet来解决我遇到的问题。

希望这有助于处理我们所看到的症状的任何人。