Ala*_*hra 5 cron google-cloud-platform google-cloud-dataproc google-cloud-scheduler
我目前有一个部署在 DataProc 集群上的 PySpark 作业(1 个主节点和 4 个具有足够内核和内存的工作节点)。此作业在数百万条记录上运行并执行昂贵的计算(多边形中的点)。我能够自己成功地运行这项工作。但是,我想将作业安排在每个月的 7 号运行。
我正在寻找的是在 DataProc 集群上设置 cron 作业的最有效方法。我试图阅读 Cloud Scheduler,但它并没有完全解释它如何与 DataProc 集群结合使用。看到 DataProc 上的 cron 作业示例或 DataProc 上的一些文档专门与 Scheduler 一起工作会非常有帮助。
提前致谢!
对于计划的 Dataproc 交互(创建集群、提交作业、等待作业、删除集群,同时处理错误),Dataproc 的工作流模板 API 是比尝试自行编排这些交互更好的选择。一个关键优势是工作流程是即发即忘的,创建的任何集群也将在完成后删除。
如果您的工作流模板相对简单,其参数在调用之间不会更改,则更简单的安排方法是使用Cloud Scheduler. Cloud Functions如果您需要运行工作流程来响应 GCS 中的文件或 PubSub 中的事件,那么这是一个不错的选择。最后,Cloud Composer如果您的工作流程参数是动态的或者混合了其他 GCP 产品,那就太棒了。
假设您的用例是经常使用相同参数的简单运行工作流程,我将使用以下方法进行演示Cloud Scheduler:
我在我的项目中创建了一个名为 的工作流程terasort-example。
然后,我在我的项目中创建了一个新的服务帐户,调用workflow-starter@example.iam.gserviceaccount.com并赋予它Dataproc Editor角色;然而,一些更受限制的 justdataproc.workflows.instantiate也足够了。
启用 API 后Cloud Scheduler,我转到开发人员控制台中的 Cloud Scheduler。我创建了一个工作,如下所示:
目标:HTTP
HTTP 方法:POST
身体: {}
身份验证标头:OAuth 令牌
服务帐户:workflow-starter@example.iam.gserviceaccount.com
范围:(留空)
您可以通过单击进行测试Run Now。
请注意,您还可以将正文中的整个工作流程内容复制为 JSON 负载。URL 的最后一部分将变为workflowTemplates:instantiateInline?alt=json
查看此官方文档,其中讨论了其他调度选项。
请参阅其他答案以获得更全面的解决方案
您需要做的是将事件从 Cloud Scheduler 发布到 pubsub 主题,然后让 Cloud Function 对该事件做出反应。
以下是使用 Cloud Function 触发 Dataproc 的完整示例: 如何运行创建 Dataproc 集群、运行作业、从 Cloud Function 删除集群
| 归档时间: |
|
| 查看次数: |
1237 次 |
| 最近记录: |