排定刪除叢集

為避免閒置的叢集產生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 活動閒置時開始持續計算叢集閒置時間。

dataproc:dataproc.cluster-ttl.consider-yarn-activity 屬性適用於以 1.4.641.5.392.0.13 及後續版本建立的叢集。若是以早於上述版本映像檔所建立的叢集,系統只會將 Dataproc Jobs API 活動納入叢集閒置時間的計算。

使用叢集排定刪除功能

在使用 Google Cloud CLI、Dataproc API 或 Google Cloud 控制台建立叢集時,可以設定排定刪除功能參數。建立叢集後,您可以更新叢集,藉此變更或刪除先前在叢集上設定的排定刪除功能參數。

gcloud CLI

如要建立或更新叢集的排定刪除功能值,請將下表列出的旗標和值傳遞至 gcloud dataproc clusters creategcloud dataproc clusters update 指令。

gcloud CLI 旗標 說明 值的精細程度 最小值 最大值
--delete-max-idle1 適用於叢集建立和叢集更新指令。自叢集建立或更新並處於就緒可用狀態後,進入閒置直到叢集開始刪除為止的持續時間。以 IntegerUnit 格式提供持續時間,單位可以是「s、m、h、d」(秒、分鐘、小時、天)。範例:「30m」:叢集進入閒置狀態後 30 分鐘。 1 秒 5 分鐘 14 天
--no-delete-max-idle 僅適用於叢集更新指令。取消先前由 delete-max-idle 旗標所設定的叢集刪除作業。 不適用 不適用 不適用
--delete-expiration-time2 適用於叢集建立和叢集更新指令。開始刪除叢集的時間,使用 ISO 8601 日期時間格式。使用時間戳記產生器,即可產生格式正確的日期時間。例如「2017-08-22T13:31:48-08:00」指定到期時間為 UTC -8:00 時區 13:21:48。1 秒 自現在時間起 10 分鐘 自現在時間起 14 天
--delete-max-age2 適用於叢集建立和叢集更新指令。自提交叢集建立要求起,到叢集開始刪除為止的持續時間。以 IntegerUnit 格式提供持續時間,單位可以是「s、m、h、d」(秒、分鐘、小時、天)。範例:「30m」(自現在起 30 分鐘);「1d」(自現在起 1 天)。 1 秒 10 分鐘 14 天
--no-delete-max-age 僅適用於叢集更新指令。取消先前由 delete-max-agedelete-expiration-time 旗標所設定的叢集自動刪除作業。 不適用 不適用 不適用
附註
  1. 在叢集建立或更新要求中,delete-max-idle 旗標可以搭配 delete-expiration-timedelete-max-age 旗標一起傳遞。首先滿足條件 (值變成true) 的旗標將會生效並刪除叢集。
  2. 您可以將 cdelete-expiration-time 旗標或 delete-max-age 旗標傳遞至叢集建立或更新指令,但不可同時傳遞兩者。

叢集建立範例:

gcloud dataproc clusters create CLUSTER_NAME \
    --region=REGION \
    --delete-max-idle=DURATION \
    --delete-expiration-time=TIME \
    ... other flags ...

叢集更新範例:

gcloud dataproc clusters update CLUSTER_NAME \
    --region=REGION \
    --delete-max-idle=DURATION \
    --no-delete-max-age \
    ... other flags

REST API

如要建立或更新叢集的排定刪除參數,請在 Dataproc cluster.createcluster.patch API 要求中,設定下表所列的 Dataproc API ClusterLifecycleConfig 欄位與值。

API 欄位 說明 值的精細程度 最小值 最大值
idleDeleteTtl1 適用於叢集建立和叢集更新指令。自叢集建立或更新並處於就緒可用狀態後,進入閒置直到叢集開始刪除為止的持續時間。若使用新的值更新叢集,新值必須大於先前設定的值。提供以秒為單位的持續時間,最多可以有 9 個小數位數,以「s」結尾。例如:「3.5s」。若要取消先前設定的 idleDeleteTtl 值,請提交一個空的持續時間值。 1 秒 5 分鐘 14 天
autoDeleteTime2 適用於叢集建立和叢集更新指令。開始刪除叢集的時間。若使用新的時間更新叢集,新時間必須晚於先前設定的時間。更新時,如果為 autoDeleteTime 設定空白值,系統會取消現有的自動刪除設定。
提供 RFC 3339 UTC「Zulu」格式的時間戳記,精確度可達奈秒。例如:「2014-10-02T15:01:23.045123456Z」。
1 秒 自現在時間起 10 分鐘 自現在時間起 14 天
autoDeleteTtl2 自提交叢集建立或更新要求起,到叢集開始刪除為止的持續時間。更新叢集時,新的排定刪除時間 (更新要求的時間加上新的持續時間) 必須晚於先前設定的叢集刪除時間。若要取消先前設定的 autoDeleteTtl 值,請提交一個空白值。提供以秒為單位的持續時間,最多可以有 9 個小數位數,以「s」結尾。例如:「3.5s」。 1 秒 10 分鐘 14 天
附註
  1. 在叢集建立或更新要求中,idleDeleteTtl 可以搭配 autoDeleteTimeautoDeleteTtl 一起設定或更新。首先滿足條件 (值變成true) 者將會生效並刪除叢集。
  2. 您可以在要求中設定或更新 autoDeleteTimeautoDeleteTtl,但不可同時設定或更新兩者。

控制台

  1. 開啟 Dataproc 的「Create a cluster」(建立叢集)頁面。
  2. 選取「Customize cluster」(自訂叢集) 面板。
  3. 在「Scheduled deletion」(排定刪除)部分,選取要套用至叢集的選項。

查看排定刪除叢集設定

gcloud CLI

可以使用 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 是叢集的排定刪除設定值。idleStartTime 是由 Dataproc 系統產生,代表叢集最近一次進入閒置狀態的開始時間。如果叢集在 idleStartTime + idleDeleteTtl 仍處於閒置狀態,Dataproc 就會刪除叢集。

REST API

您可以發出 clusters.list 要求,確認叢集是否已啟用排定刪除功能。

控制台

  • 如要查看叢集排定刪除時間的設定,請在 Google Cloud 控制台的 Dataproc「Clusters」(叢集) 頁面選取叢集名稱。
  • 請在叢集詳細資料頁面中,選取「Configuration」(設定)分頁標籤,即可前往叢集設定清單查看排定刪除設定。