多个google-dataflow和dataproc作业

时间:2016-05-26 10:55:58

标签: google-cloud-dataflow google-cloud-dataproc

我有多个google-dataflow作业用于数据收集和ETL目的。 然后google dataproc job(Spark)进行进一步的机器学习。

我想像工作流一样将这些工作联系在一起,然后我应该能够安排整个工作流程。

你有什么建议/产品可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

我现在还不知道GCP上有什么好的答案,但这里有几个选择:

  • 使用Google App Engine任务队列
  • 使用以下模式在Dataflow作业完成后触发DataProc作业:使用Create创建具有单个元素的虚拟PCollection。在该集合上写一个ParDo,其中DoFn的主体包含调用DataProc作业的java代码。因为它处理包含一个元素的集合,所以它将执行一次(模重试)。获取Dataflow作业的最终输出,使用不输出任何内容的ParDo处理它,并为您提供一个空的PCollection。将该PCollection作为侧输入传递到调用DataProc的ParDo中。换句话说,使用伪数据依赖关系强制在Dataflow作业的主体和创建DataProc作业的最后一步之间进行排序。

答案 1 :(得分:0)

我们为此实施了两种方法......

  1. 用于调用数据业务作业的自定义解决方案。这包括Spring调度程序来调用Dataproc&使用Google Sdk API的数据流

  2. 在流模式下运行的一个数据业务作业,此流式模式数据业务作业管理其他数据业务和数据流作业。我们将消息发送到pub-sub,流模式接收消息,然后再调用链。

  3. 我更喜欢第二种解决方案,因为我们使用云形成等管理Spring应用程序

    第二种解决方案需要额外支付24 * 7运行数据业务作业的成本。