集群预定删除功能

为了避免非活跃集群产生 Google Cloud 费用,请在创建集群时使用 Dataproc 的集群预定删除功能。该功能提供了各种选项,根据选项设置,当符合下列其中一项条件时,系统即会删除集群:

  • 在指定的集群闲置期之后
  • 在指定的未来某个时间
  • 在指定的时长(从提交集群创建请求之时算起)之后

集群空闲时间计算

dataproc:dataproc.cluster-ttl.consider-yarn-activity 集群属性会影响集群空闲时间的计算,如下所示:

  • 默认情况下,此属性处于启用状态(设为 true)。
  • 启用此属性后,必须同时让 YARN 和 Dataproc Jobs API 活动处于空闲状态,才能开始并继续递增集群空闲时间计算值。
    • YARN 活动包括待处理和正在运行的 YARN 应用。
    • Dataproc Jobs API 活动包括提交到 Dataproc Jobs API 的待处理作业和正在运行的作业。
  • 将此属性设置为 false 后,Dataproc Jobs API 活动必须处于空闲状态才能启动并继续递增集群空闲时间计算。

使用集群预定删除功能

gcloud 命令

您可以通过将以下预定删除标志传递给 gcloud dataproc clusters create 命令来创建具有集群预定删除功能的集群。

标志说明最精细的粒度最小值最大值
--max-idle1从集群进入闲置状态之时算起,直至集群开始删除那一刻的时长。以 IntegerUnit 格式提供时长,其中,单位可以为“s、m、h、d”(分别为秒、分钟、小时、天)。示例:“30m”或“1d”(从集群开始闲置之时算起,30 分钟或 1 天)。1 秒5 分钟14 天
--expiration-time2开始删除集群的时间(采用 ISO 8601 日期时间格式)。要以正确的格式生成日期时间,一种简单的方法是使用时间戳生成器。例如,“2017-08-22T13:31:48-08:00”指定的到期时间为 13:21:48(UTC -8:00 时区)。1 秒从当前时间算起,10 分钟从当前时间算起,14 天
--max-age2从提交集群创建请求之时算起,直至集群开始删除那一刻的时长。以 IntegerUnit 格式提供时长,其中,单位可以为“s、m、h、d”(分别为秒、分钟、小时、天)。例如:“30m”(从现在算起,30 分钟);“1d”(从现在算起,1 天)。1 秒10 分钟14 天
gcloud dataproc clusters create cluster-name \
    --region=region \
    --max-idle=duration \
    --expiration-time=time \
    ... other flags ...

您可以将以下预定删除标志传递给 gcloud dataproc clusters update 命令(其他集群更新标志不能与预定删除标志组合使用),从而更新使用预定删除功能创建的集群以更改或移除预定删除设置。

标志说明最精细的粒度最小值最大值
--max-idle1从集群进入闲置状态之时算起,直至集群开始删除那一刻的时长。以 IntegerUnit 格式提供时长,其中,单位可以为“s、m、h、d”(分别为秒、分钟、小时、天)。示例:“30m”或“1d”(从集群开始闲置之时算起,30 分钟或 1 天)。1 秒5 分钟14 天
--no-max-idle如果之前通过 max-idle 标志设置了集群闲置时长,则取消在达到此时限时删除集群的操作不适用不适用不适用
--expiration-time2开始删除集群的时间(采用 ISO 8601 日期时间格式)。要以正确的格式生成日期时间,一种简单的方法是使用时间戳生成器。例如,“2017-08-22T13:31:48-08:00”指定的到期时间为 13:21:48(UTC -8:00 时区)。1 秒从当前时间算起,10 分钟;新时间不得早于先前设置的时间。从当前时间算起,14 天
--max-age2从提交集群更新请求之时算起,直至集群开始删除那一刻的时长。以 IntegerUnit 格式提供时长,其中,单位可以为“s、m、h、d”(分别为秒、分钟、小时、天)。例如:“30m”(从现在算起,30 分钟);“1d”(从现在算起,1 天)。1 秒10 分钟,并且更新后的预定删除时间(更新时间 + 新的 max-age 时长)不得早于先前设置的集群删除时间。14 天
--no-max-age如果之前通过 max-age 或 expiration-time 标志设置了集群最长存在时间,则取消在达到此时限时删除集群的操作不适用不适用不适用
gcloud dataproc clusters update cluster-name \
    --region=region \
    --max-idle=duration \
    --no-max-age \
    ... other flags

REST API

您可以通过在 cluster.createcluster.patch API 请求中设置以下 ClusterLifecycleConfig 字段,来创建具有集群预定删除功能的集群。

标志 说明 最精细的粒度 最小值 最大值
idleDeleteTtl1 从集群进入闲置状态之时算起,直至集群开始删除那一刻的时长。以秒为单位提供时长,最多包含九个小数位,并以“s”结束。示例:“3.5s”。 1 秒 从集群的创建或更新时间算起,5 分钟。更新集群时,新值必须大于先前设置的值。通过提交一个时长为空的 cluster.patch 请求,您可以取消先前设置的 idleDeleteTtl 值。 14 天
autoDeleteTime2 开始删除集群的时间。以 RFC 3339 UTC(即“祖鲁时”)格式提供时间戳,精确到纳秒。示例:“2014-10-02T15:01:23.045123456Z”。 1 秒 从当前时间算起,10 分钟。更新集群时,新时间必须晚于先前设置的时间。 从当前时间算起,14 天
autoDeleteTtl2 从提交集群创建或更新请求之时算起,直至集群开始删除那一刻的时长。以秒为单位提供时长,最多包含九个小数位,并以“s”结束。示例:“3.5s”。 1 秒 10 分钟。更新集群时,新的预定删除时间(更新时间 + 新的 max-age 时长)必须晚于先前设置的集群删除时间。通过提交一个时长为空的 cluster.patch 请求,您可以取消先前设置的 autoDeleteTtl 值。 14 天

控制台

  • 打开 Dataproc 创建集群页面,然后选择“自定义集群”面板。向下滚动到“预定删除”部分,然后选择要应用到集群的选项。

查看预定删除集群设置

gcloud 命令

您可以使用 gcloud dataproc clusters list 命令来确认集群已启用预定删除功能。

 gcloud dataproc clusters list \
     --region=region
...
NAME         WORKER_COUNT ... SCHEDULED_DELETE
cluster-id   number       ... enabled
...

您可以使用 gcloud dataproc clusters describe 命令来检查集群的 LifecycleConfig 预定删除设置。

gcloud dataproc clusters describe cluster-name \
    --region=region
...
lifecycleConfig:
  autoDeleteTime: '2018-11-28T19:33:48.146Z'
  idleDeleteTtl: 1800s
  idleStartTime: '2018-11-28T18:33:48.146Z'
...

autoDeleteTimeidleDeleteTtl 是用户先前在集群上设置的预定删除配置值。Dataproc 会生成 idleStartTime 值,该值是最新的集群空闲开始时间。如果集群在 idleStartTime + idleDeleteTtl 期间一直处于空闲状态,Dataproc 将删除该集群。

REST API

您可以提交 clusters.list 请求,确认集群已启用预定删除功能。

控制台

您可以从 Google Cloud 控制台的 Dataproc 集群页面中选择集群名称,以查看集群的预定删除设置。从集群详情页面中,选择“配置”标签页。向下滚动集群配置列表以查看计划的删除设置。