我想在 dataproc 上安排我的火车模型,我需要:
1/请求 Bigquery 并加载我的数据集的 BQ 表 2/创建我的 dataproc 集群 3/启动我的pyspark作业 4/删除我的集群
我想为此创建一个 cron,我怎样才能做到这一点?
谢谢
最佳答案
这里有一些不同的选项供您选择,具体取决于您想要了解的复杂程度或深度。
使用非常简单
如果您想以尽可能简单的方式运行,您可能可以创建一个简单调用 Cloud SDK 的 shell 脚本。命令,例如:
#!/bin/sh
CREATION_OUTPUT=`gcloud dataproc clusters create ...`
...
DELETION_OUTPUT=`gcloud dataproc clusters delete...`
如果你想安排它,最简单的方法(恕我直言,每个人可能有不同的意见)是让它在 f1-micro
实例上运行。总成本可能约为 $5/month .
更高级
您可能想要使用 shell + 变量,这样您就不需要对所有内容进行硬编码。例如,您可以根据时间或其他值创建具有唯一 ID 的集群。这可能对您有用,特别是如果您想经常创建集群
但是...
这两种方法都远非安全。例如,如果出现错误,您的整个设置可能会进入并保持错误状态。您可能不知道发生了什么事,也不会捕获详细的调试信息。
更好的解决方案
使用 API 需要做更多的工作,但可能是更好的整体解决方案,特别是如果您想重复运行它或进行错误处理。在这种情况下,我可能会使用 Python 快速编写一个脚本来与 API 交互。这将使我能够捕获错误、处理错误,并可能恢复(如果需要,还可以通知。)
以下是我们的 API 与 Python 一起使用的一些示例:
这些的说明分别如下:
关于scheduled-tasks - 如何安排 BigQuery 和 Dataproc 进行机器学习,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40333879/