Pour éviter les frais liés à un cluster inactif, utilisez la fonctionnalité de suppression planifiée de cluster Managed Service pour Apache Spark lorsque vous créez un cluster.Google CloudCette fonctionnalité permet de 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 :
- Suppression du rôle Managed Service pour Apache Spark Service Agent IAM sur le compte de service de l'agent de service Dataproc
- Désactivation de l'API Dataproc dans le projet de cluster
- Activation de la protection contre la suppression des VM Compute Engine sur une VM de cluster avec suppression planifiée
- Activation de VPC-Service Controls si le compte de service de l'agent de service Managed Service pour Apache Spark (identité du plan de contrôle) ne se trouve pas dans les limites du périmètre
Calculer le temps d'inactivité du cluster
Vous pouvez utiliser la suppression planifiée pour supprimer un cluster après une période d'inactivité spécifiée. Le temps d'inactivité est calculé une fois le cluster créé et le provisionnement terminé. Le calcul du temps 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 cluster
property
affecte le calcul du temps 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é YARN et l'activité de l'API Dataproc Jobs doivent être inactives pour que le calcul du temps 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 Dataproc Jobs inclut les tâches en attente et en cours d'exécution envoyées à l'API Dataproc Jobs.
- Lorsque cette propriété est définie sur
false, le calcul du temps d'inactivité du cluster ne commence et ne se poursuit que lorsque l'activité de l'API Dataproc 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 Dataproc Jobs est prise en compte dans le calcul du temps 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.
Google Cloud Console
- Ouvrez la page Créer un cluster.
- Sous Définir les paramètres de contrôle des coûts , sélectionnez Définir une règle de conservation facultative pour contrôler les coûts, puis sélectionnez les paramètres de suppression planifiée (ou d'arrêt planifié).
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.
| Indicateur 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 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 en fonction du 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 en fonction du paramètre d'option précédent
delete-max-age ou delete-expiration-time flag. |
Non applicable | Non applicable | Non applicable |
- Vous pouvez transmettre l'option
delete-max-idleavec l'optiondelete-expiration-timeoudelete-max-agedans votre requête de création ou de mise à jour de cluster. La première à devenir vraie prend effet pour supprimer le cluster. - Vous pouvez transmettre l'option
delete-expiration-timeou l'optiondelete-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
| 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 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é. Lors de la mise à jour d'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 |
- Vous pouvez définir ou mettre à jour
idleDeleteTtletautoDeleteTimeouautoDeleteTtldans votre requête de création ou de mise à jour de cluster. La première à devenir vraie prend effet pour supprimer le cluster. - Vous pouvez définir ou mettre à jour
autoDeleteTimeouautoDeleteTtldans votre requête, mais pas les deux.
Afficher les paramètres du cluster avec suppression planifiée
Google Cloud Console
- Vous pouvez afficher les paramètres de suppression planifiée du cluster en sélectionnant le nom du cluster sur la page Clusters Managed Service pour Apache Spark de 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.
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
... 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 clusters.list pour confirmer que la suppression planifiée d'un cluster est activée.