排定刪除叢集

為了避免閒置的叢集產生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-expiration-timedelete-max-age 標記傳遞 delete-max-idle 標記。若第一個標記值成真則會刪除叢集。
  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 API ClusterLifecycleConfig 欄位中設定下表列出的值,做為 Dataproc cluster.createcluster.patch API 要求的一部分。

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. 您可以在叢集建立或更新要求中,設定或更新 idleDeleteTtlautoDeleteTimeautoDeleteTtl。若第一個標記值成真則會刪除叢集。
  2. 您可以在要求中設定或更新 autoDeleteTimeautoDeleteTtl,但不能同時設定或更新兩者。

控制台

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

查看排定刪除叢集設定

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 是叢集上設定的排定刪除設定值。Dataproc 會產生 idleStartTime 值,這是叢集最近一次進入閒置狀態的時間。如果叢集在 idleStartTime + idleDeleteTtl 仍處於閒置狀態,Dataproc 就會刪除叢集。

REST API

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

控制台

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