1

我有一个接受用户工作的系统。这些作业在 dataproc 上作为 spark 作业运行。白天有很多工作在运行,但晚上可能没有。我想知道在这些停机期间终止集群并在收到新作业后重新启动或重新创建集群的最佳方法是什么?这里的目标是在不活动期间不收费。

4

3 回答 3

2

Dataproc 现在原生支持计划的集群删除。您可以安排在特定时间(例如晚上 7 点)删除集群,或者如果它们空闲了一段时间(例如 1 小时)。

您还可以查看集群自动缩放

于 2018-08-03T08:19:00.083 回答
2

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

于 2019-11-09T00:06:48.800 回答
1

您可以使用以下两种主要方法之一:

  1. 将集群缩减到最少的工作人员(2 个工作人员)[1]
  2. 删除集群并稍后重新创建 [2]

当您使用 Google Cloud Storage Connector [3] 而不是 HDFS 来存储数据时,这两种方法都最有效。

要缩减集群规模,您可以在非高峰时间运行以下命令:

gcloud dataproc clusters update <cluster-name> --num-workers <new-number-of-workers>

要在非高峰时段删除集群,请使用以下命令:

gcloud dataproc clusters delete my-dataproc-cluster-name

通过 Dataproc 完全支持的 Preemptible VM [4],您可以将 Dataproc 的持续成本降低多达 70%。

[1]扩展 Dataproc 集群

[2]管理 Dataproc 集群

[3]适用于 Spark/Hadoop 的 Google 云存储连接器

[4]抢占式虚拟机

于 2016-04-05T14:27:41.107 回答