数据流似乎被卡住了。与DirectRunner一起使用,坚持使用DataflowRunner

时间:2018-01-10 17:54:05

标签: google-cloud-dataflow

我一直在尝试按照此处的说明(使用Java SDK 2.2.0)获取wordcount快速入门教程: https://cloud.google.com/dataflow/docs/quickstarts/quickstart-java-maven

当我在本地运行示例管道时,我得到了预期的结果。太好了!

但是,当我在Cloud Dataflow Service上运行示例管道时,服务会启动,但一小时后会显示以下消息:

(b87e004bcb71c8e1): Workflow failed. Causes: (b87e004bcb71c708): The Dataflow appears to be stuck. Please reach out to the Dataflow team at http://stackoverflow.com/questions/tagged/google-cloud-dataflow.

任何人都可以帮助确定在数据流上运行时管道可能出现故障的原因吗?

我尝试了什么...... 选项

我已尝试明确设置管道选项,以解决可能导致两种不同结果的任何问题。现在我可以使用DirectRunner运行以下命令,这会产生预期的结果:

mvn compile exec:java \
  -Dexec.mainClass=com.example.WordCount \
  -Dexec.args=" \
  --project=<my-project> \
  --stagingLocation=gs://<my-project>-dataflow/staging/ \
  --gcpTempLocation=gs://<my-project>-dataflow/temp/ \
  --inputFile=gs://<my-project>-dataflow/testinput.txt \
  --output=gs://<my-project>-dataflow/output \
  --region=europe-west1 \
  --zone=europe-west1-b \
  --network=<my-project>-internal-network-1 \
  --subnetwork=<my-project>-subnet-1 \
  --runner=DirectRunner"

(注意:删除了项目特定名称)

但是,如果我只将运行器选项更改为DataflowRunner,如下所示:

mvn compile exec:java \
  -Dexec.mainClass=com.example.WordCount \
  -Dexec.args=" \
  --project=<my-project> \
  --stagingLocation=gs://<my-project>-dataflow/staging/ \
  --gcpTempLocation=gs://<my-project>-dataflow/temp/ \
  --inputFile=gs://<my-project>-dataflow/testinput.txt \
  --output=gs://<my-project>-dataflow/output \
  --region=europe-west1 \
  --zone=europe-west1-b \
  --network=<my-project>-internal-network-1 \
  --subnetwork=<my-project>-subnet-1 \
  --runner=DataflowRunner"

我希望得到相同的结果,但又得到了

    (xxxxxxxxxx): Workflow failed. Causes: (xxxxxxxxxx): The Dataflow appears to be stuck. Please reach out to the Dataflow team at http://stackoverflow.com/questions/tagged/google-cloud-dataflow.

我尝试了什么...... 权限

在阅读Stack Overflow上的其他类似问题以达到这一点后,我仍然认为这个问题在某种程度上是由权限引起的。

我明白了 https://cloud.google.com/dataflow/security-and-permissions 当在本地运行时,数据流服务可以访问我的Cloud Platform帐户可以访问的文件和资源。

我相信在使用D​​ataflowRunner时,该服务使用Dataflow Service Account和Compute Engine Service Account。

我尝试将“项目 - 编辑”角色分配给这两个服务帐户,以确保他们可以访问项目中的文件和资源,但我得到了同样的“......卡住......”消息。

我尝试了什么...... 防火墙规则

我还设置了防火墙规则,允许计算引擎服务帐户访问网络上的所有实例。

最新职位编号为2018-01-10_09_20_46-12253371190865296267

非常感谢任何建议。

0 个答案:

没有答案