Suppression planifiée du cluster

Pour éviter les frais liés à un cluster inactif, utilisez la fonctionnalité de suppression planifiée de cluster de Managed Service pour Apache Spark lorsque vous créez un cluster.Google Cloud Cette fonctionnalité fournit des options pour supprimer un cluster lorsque les événements suivants se produisent :

  • après une période d'inactivité spécifiée du cluster ;
  • à une heure spécifiée ;
  • après une période spécifiée commençant à partir de la soumission de la requête de création du cluster.

Actions qui désactivent la suppression planifiée

Lorsqu'un cluster est en cours d'exécution, les actions suivantes désactivent la suppression planifiée jusqu'à ce qu'elles soient annulées :

Calculer la durée d'inactivité du cluster

Vous pouvez utiliser la suppression planifiée pour supprimer un cluster après une durée d'inactivité spécifiée. La durée d'inactivité est calculée une fois le cluster créé et le provisionnement terminé. Le calcul de la durée d'inactivité commence lorsqu'aucune tâche n'est en cours d'exécution sur un cluster.

La propriété de cluster dataproc:dataproc.cluster-ttl.consider-yarn-activity affecte le calcul de la durée d'inactivité du cluster comme suit :

  • Cette propriété est activée (définie sur true) par défaut.
  • Lorsque cette propriété est activée, l'activité de l'API YARN et de l'API Managed Service pour Apache Spark Jobs doit être inactive pour que le calcul de la durée d'inactivité du cluster commence et continue d'augmenter.
    • L'activité YARN inclut les applications YARN en attente et en cours d'exécution.
    • L'activité de l'API Managed Service pour Apache Spark Jobs inclut les tâches en attente et en cours d'exécution envoyées à l'API Managed Service pour Apache Spark Jobs.
  • Lorsque cette propriété est définie sur false, le calcul de la durée d'inactivité du cluster ne commence et ne se poursuit que lorsque l'activité de l'API Managed Service pour Apache Spark Jobs est inactive.

La propriété dataproc:dataproc.cluster-ttl.consider-yarn-activity s'applique aux clusters créés avec des versions d'image publiées à partir de 1.4.64, 1.5.39, 2.0.13 et versions ultérieures. Pour les clusters créés avec des versions d'image antérieures, seule l'activité de l'API Managed Service pour Apache Spark Jobs est prise en compte dans le calcul de la durée d'inactivité du cluster.

Utiliser la suppression planifiée du cluster

Vous pouvez définir des valeurs de suppression planifiée lorsque vous créez un cluster à l'aide de la Google Cloud CLI, de l'API Dataproc ou de la Google Cloud console. Une fois le cluster créé, vous pouvez le mettre à jour pour modifier ou supprimer les valeurs de suppression planifiée précédemment définies.

gcloud CLI

Vous pouvez créer ou mettre à jour des valeurs de suppression planifiée sur un cluster en transmettant les options et les valeurs listées dans le tableau suivant aux gcloud dataproc clusters create ou gcloud dataproc clusters update commandes.

Option de gcloud CLI Description Précision de la valeur Valeur minimale Valeur maximale
--delete-max-idle1 S'applique aux commandes de création et de mise à jour de cluster. Durée entre le moment où le cluster devient inactif après sa création ou sa mise à jour et où il est prêt à être utilisé, et le moment où il commence à être supprimé. Indiquez la durée au IntegerUnit format, où l'unité peut être "s, m, h, d" (secondes, minutes, heures, jours). Exemple : "30m" : 30 minutes à partir du moment où le cluster devient inactif. 1 seconde 5 minutes 14 jours
--no-delete-max-idle S'applique uniquement à la commande de mise à jour de cluster. Annule la suppression du cluster par le paramètre d'option delete-max-idle précédent. Non applicable Non applicable Non applicable
--delete-expiration-time2 S'applique aux commandes de création et de mise à jour de cluster. Heure de début de la suppression du cluster au format date/heure ISO 8601. Pour générer la date et l'heure au format correct, vous pouvez utiliser le générateur d'horodatage. Par exemple, "2017-08-22T13:31:48-08:00" définit l'heure d'expiration sur 13:21:48 dans le fuseau horaire UTC -8:00.1 seconde 10 minutes à partir de l'heure actuelle 14 jours à partir de l'heure actuelle
--delete-max-age2 S'applique aux commandes de création et de mise à jour de cluster. Durée entre la soumission de la requête de création du cluster et le moment où le cluster commence à être supprimé. Indiquez la durée au IntegerUnit format, où l'unité peut être "s, m, h, d" (secondes, minutes, heures, jours). Exemples : "30m" : 30 minutes à partir de maintenant ; "1d" : 1 jour à partir de maintenant. 1 seconde 10 minutes 14 jours
--no-delete-max-age S'applique uniquement à la commande de mise à jour de cluster. Annule la suppression automatique du cluster par le paramètre d'option précédent delete-max-age ou delete-expiration-time. Non applicable Non applicable Non applicable
Remarques :
  1. Vous pouvez transmettre l'option delete-max-idle avec l'option delete-expiration-time ou delete-max-age dans votre requête de création ou de mise à jour de cluster. La première à devenir vraie prend effet pour supprimer le cluster.
  2. Vous pouvez transmettre l'option delete-expiration-time ou l'option delete-max-age à la commande de création ou de mise à jour de cluster, mais pas les deux.

Exemple de création de cluster :

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

Exemple de mise à jour de cluster :

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

API REST

Vous pouvez créer ou mettre à jour des valeurs de suppression planifiée sur un cluster en définissant les champs et les valeurs ClusterLifecycleConfig de l'API Managed Service pour Apache Spark listés dans le tableau suivant dans le cadre d'une requête d'API cluster.create ou cluster.patch de Managed Service pour Apache Spark.

Champ de l'API Description Précision de la valeur Valeur minimale Valeur maximale
idleDeleteTtl1 S'applique aux commandes de création et de mise à jour de cluster. Durée entre le moment où le cluster devient inactif après sa création ou sa mise à jour et où il est prêt à être utilisé, et le moment où il commence à être supprimé. Lorsque vous mettez à jour un cluster avec une nouvelle valeur, celle-ci doit être supérieure à la valeur précédemment définie. Indiquez une durée en secondes avec un maximum de neuf chiffres après la virgule. Se termine par 's'. Exemple : "3.5s". Envoyez une durée vide pour annuler une valeur idleDeleteTtl précédemment définie. 1 seconde 5 minutes 14 jours
autoDeleteTime2 S'applique aux commandes de création et de mise à jour de cluster. Heure de début de la suppression du cluster. Lorsque vous mettez à jour un cluster avec une nouvelle heure, celle-ci doit être postérieure à l'heure précédemment définie. Lors de la mise à jour, si une valeur vide est définie pour autoDeleteTime, la suppression automatique existante est annulée.
Fournit un horodatage au format RFC 3339 UTC "Zulu", d'une justesse à la nanoseconde près. Exemple : "2014-10-02T15:01:23.045123456Z".
1 seconde 10 minutes à partir de l'heure actuelle 14 jours à partir de l'heure actuelle
autoDeleteTtl2 Durée entre la soumission de la requête de création ou de mise à jour du cluster et le moment où le cluster commence à être supprimé. Lorsque vous mettez à jour un cluster, la nouvelle heure de suppression planifiée (heure de la requête de mise à jour plus la nouvelle durée) doit être postérieure à l'heure de suppression du cluster précédemment définie. Envoyez une valeur vide pour annuler une valeur autoDeleteTtl précédemment définie. Indiquez une durée en secondes avec un maximum de neuf chiffres après la virgule. Se termine par "s". Exemple : "3.5s". 1 seconde 10 minutes 14 jours
Remarques :
  1. Vous pouvez définir ou mettre à jour à la fois idleDeleteTtl et autoDeleteTime ou autoDeleteTtl dans votre requête de création ou de mise à jour de cluster. La première à devenir vraie prend effet pour supprimer le cluster.
  2. Vous pouvez définir ou mettre à jour autoDeleteTime ou autoDeleteTtl dans votre requête, mais pas les deux.

Console

  1. Ouvrez la page Créer un cluster de Managed Service pour Apache Spark.
  2. Sélectionnez le panneau Personnaliser le cluster.
  3. Dans la section Suppression planifiée, sélectionnez les options à appliquer à votre cluster.

Afficher les paramètres du cluster avec suppression planifiée

gcloud CLI

Vous pouvez utiliser la commande gcloud dataproc clusters list pour confirmer que la suppression planifiée d'un cluster est activée.

 gcloud dataproc clusters list \
     --region=REGION
Exemple de résultat :
...
NAME         WORKER_COUNT ... SCHEDULED_DELETE
CLUSTER_ID   NUMBER       ... enabled
...

Vous pouvez utiliser la commande gcloud dataproc clusters describe pour vérifier les paramètres de suppression planifiée LifecycleConfig du cluster.

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'
...

autoDeleteTime et idleDeleteTtl sont les valeurs de configuration de suppression planifiée définies sur le cluster. Managed Service pour Apache Spark génère la valeur idleStartTime, qui correspond à la dernière heure de début d'inactivité du cluster. Managed Service pour Apache Spark supprime le cluster s'il reste inactif à idleStartTime + idleDeleteTtl.

API REST

Vous pouvez faire une requête clusters.list pour confirmer que la suppression planifiée d'un cluster est activée.

Console

  • Vous pouvez afficher les paramètres de suppression planifiée du cluster en sélectionnant le nom du cluster sur la page Clusters de Managed Service pour Apache Spark dans la Google Cloud console.
  • Sur la page d'informations des clusters, sélectionnez l' onglet Configuration. Accédez à la liste de configuration du cluster pour afficher les paramètres de suppression planifiée.