【发布时间】:2016-04-05 13:06:22
【问题描述】:
我有一个接受用户工作的系统。这些作业在 dataproc 上作为 spark 作业运行。白天有很多工作在运行,但晚上可能没有。我想知道在这些停机期间终止集群并在收到新作业后重新启动或重新创建集群的最佳方法是什么?这里的目标是在不活动期间不收费。
【问题讨论】:
标签: google-cloud-platform google-cloud-dataproc
我有一个接受用户工作的系统。这些作业在 dataproc 上作为 spark 作业运行。白天有很多工作在运行,但晚上可能没有。我想知道在这些停机期间终止集群并在收到新作业后重新启动或重新创建集群的最佳方法是什么?这里的目标是在不活动期间不收费。
【问题讨论】:
标签: google-cloud-platform google-cloud-dataproc
Dataproc 现在原生支持scheduled cluster deletion。您可以安排在特定时间(例如晚上 7 点)删除集群,或者如果它们已经空闲了一段时间(例如 1 小时)。
您也可以查看cluster autoscaling。
【讨论】:
https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/scheduled-deletion
您似乎正在寻找可在集群创建期间使用的 --max-idle 选项。
来自文档:
--max-idle :从集群进入空闲状态到集群开始删除的时间。以 IntegerUnit 格式提供持续时间,其中单位可以是“s、m、h、d”(分别为秒、分钟、小时、天)。示例:“30m”或“1d”(集群空闲后 30 分钟或 1 天)。 1 秒 10 分钟 14 天
--expiration-time :开始以 ISO 8601 日期时间格式删除集群的时间。以正确格式生成日期时间的一种简单方法是通过时间戳生成器。例如,“2017-08-22T13:31:48-08:00”指定 UTC -8:00 时区的 13:21:48 到期时间。 1 秒 距当前时间 10 分钟 距当前时间 14 天
--max-age :从提交集群创建请求到集群开始删除的时间。以 IntegerUnit 格式提供持续时间,其中单位可以是“s、m、h、d”(分别为秒、分钟、小时、天)。示例:“30m”(从现在起 30 分钟); “1d”(从现在起 1 天)。 1
【讨论】:
您可以使用以下两种主要方法之一:
当您使用 Google 云存储连接器 [3] 而不是 HDFS 来存储数据时,这两种方法的效果最佳。
要缩减集群规模,您可以在非高峰时间运行此命令:
gcloud dataproc clusters update <cluster-name> --num-workers <new-number-of-workers>
要在非高峰时段删除集群,请使用以下命令:
gcloud dataproc clusters delete my-dataproc-cluster-name
使用 Dataproc 完全支持的抢占式虚拟机 [4],您可以将 Dataproc 的持续成本降低多达 70%。
【讨论】: