Utilisation de la protection contre la résiliation
Lorsque la protection contre la résiliation est activée sur un cluster de longue durée, vous pouvez toujours résilier le cluster, mais vous devez explicitement supprimer la protection contre la résiliation du cluster pour pouvoir l'arrêter. Cela permet d'assurer que les instances EC2 ne sont pas résiliées par accident ou par erreur. Cette protection contre la résiliation est particulièrement utile si votre cluster contient des données stockées sur des disques locaux que vous avez besoin de récupérer avant que ces instances soient résiliées. Vous pouvez activer la protection de la résiliation lorsque vous créez un cluster et vous pouvez modifier le paramètre sur un cluster en cours d'exécution.
Lorsque la protection de la résiliation est activée, l'action TerminateJobFlows
dans l'API Amazon EMR ne fonctionne pas. Les utilisateurs ne peuvent pas résilier le cluster à l'aide de cette API ou de la commande terminate-clusters
dans l'AWS CLI. L'API retourne une erreur et l'interface de ligne de commande se ferme avec un code de retour non nul. Lorsque vous utilisez la console Amazon EMR pour résilier un cluster, une étape supplémentaire vous est proposée pour désactiver la protection contre la résiliation.
Avertissement
La protection contre la résiliation ne garantit pas la conservation des données en cas d'erreur humaine ou de solution de contournement, par exemple, si une commande de redémarrage est émise depuis la ligne de commande alors que vous êtes connecté à l'instance via SSH, si une application ou un script exécuté sur l'instance émet une commande de redémarrage ou si l'API Amazon EC2 ou Amazon EMR est utilisée pour désactiver la protection contre la résiliation. Même lorsque la protection contre la résiliation est activée, les données enregistrées sur le stockage de l'instance, y compris les données HDFS, peuvent être perdues. Rédigez les données de sortie vers les sites Amazon S3 et créez des stratégies de sauvegarde adaptées à vos exigences de continuité d'activité.
La protection de la résiliation n'affecte pas votre capacité à dimensionner des ressources de cluster en utilisant l'une des actions suivantes :
-
Redimensionnement manuel d'un cluster avec la AWS Management Console ou l'AWS CLI Pour de plus amples informations, veuillez consulter Redimensionnement manuel d'un cluster en cours d'exécution.
-
La suppression des instances d'un cœur ou d'un groupe d'instances de tâches à l'aide d'une stratégie de diminution en charge avec le dimensionnement automatique. Pour de plus amples informations, veuillez consulter Utilisation de la mise à l'échelle automatique avec une politique personnalisée pour les groupes d'instances .
-
Suppression des instances d'un parc d'instances en réduisant la capacité cible. Pour de plus amples informations, veuillez consulter Options de parc d'instances.
Protection contre la résiliation et Amazon EC2
Un cluster Amazon EMR avec la protection de la résiliation activée comporte l'attribut disableAPITermination
défini pour toutes les instances Amazon EC2 du cluster. Si une demande de résiliation provient d'Amazon EMR et des paramètres Amazon EMR et Amazon EC2 relatifs à un conflit d'instance, le paramètre Amazon EMR remplace le paramètre Amazon EC2. Par exemple, si vous utilisez la console pour activer la protection de résiliation sur une instance Amazon EC2 dans un cluster dont la protection de résiliation est désactivée, lorsque vous utilisez la console Amazon EMR, les commandes AWS CLI pour Amazon EMR, ou l'API Amazon EMR pour résilier le cluster, Amazon EMR définit DisableApiTermination
sur false
et résilie l'instance en même temps que les autres instances.
Important
Si une instance est créée dans le cadre d'un cluster Amazon EMR avec la protection de la résiliation, et l'API Amazon EC2 ou les commandes AWS CLI sont utilisées pour modifier l'instance afin que DisableApiTermination
soit false
, puis l'API Amazon EC2 ou les commandes AWS CLI exécutent l'action TerminateInstances
, l'instance Amazon EC2 se résilie.
Protection contre la résiliation et nœuds YARN non sains
Amazon EMR vérifie périodiquement l'état Apache Hadoop YARN des nœuds principaux s'exécutant sur des instances Amazon EC2 de noyau et de tâche dans un cluster. L'état est signalé par le Service de vérification de l'état NodeManagerUNHEALTHY
, le contrôleur d'instance Amazon EMR refuse le nœud et ne lui alloue pas de conteneurs YARN jusqu'à ce qu'il redevienne sain. La raison la plus commune pour des nœuds non sains s'explique par le fait que l'utilisation des disques dépasse 90 %. Pour plus d'informations sur l'identification des nœuds non sains et leur récupération, consultez Erreurs de ressource.
Si le nœud reste UNHEALTHY
pendant plus de 45 minutes, Amazon EMR prend l'action suivante en fonction de l'état de la protection de la résiliation.
Protection de la résiliation | Résultat |
---|---|
Activé (Recommandé) |
Les instances principales Amazon EC2 restent dans un état de liste refusée et continuent d'être prises en compte dans la capacité du cluster. Vous pouvez vous connecter à une instance principale Amazon EC2 pour la configuration et la récupération des données, et redimensionner votre cluster pour ajouter de la capacité. Pour de plus amples informations, veuillez consulter Erreurs de ressource. Les nœuds de tâches défectueux sont exemptés de la protection contre la résiliation et seront résiliés. |
Désactivé |
L'instance Amazon EC2 est résiliée. Amazon EMR alloue une nouvelle instance en fonction du nombre d'instances spécifié dans le groupe d'instances ou de la capacité cible pour les parcs d'instances. Si tous les nœuds principaux sont ImportantLes données HDFS peuvent être perdues si une instance de noyau est résiliée à cause d'un état non sain. Si le nœud a stocké des blocs qui n'ont pas été répliqués à d'autres nœuds, ces blocs sont perdus, ce qui peut entraîner une perte de données. Nous vous recommandons d'utiliser la protection de la résiliation afin de pouvoir vous connecter à des instances et récupérer les données si nécessaire. |
Protection contre la résiliation et exécution des étapes
Lorsque vous activez l'exécution des étapes et que vous activez également la protection contre la résiliation, Amazon EMR ignore la protection contre la résiliation.
Lorsque vous soumettez des étapes à un cluster, vous pouvez définir la propriété ActionOnFailure
pour déterminer ce qui se produit si l'étape ne peuvent pas terminer son exécution en raison d'une erreur. Les valeurs possibles pour ce paramètre sont TERMINATE_CLUSTER
(TERMINATE_JOB_FLOW
avec les versions antérieures), CANCEL_AND_WAIT
, et CONTINUE
. Pour de plus amples informations, veuillez consulter Soumission de travail à un cluster.
En cas d'échec d'une étape configurée avec ActionOnFailure
défini sur CANCEL_AND_WAIT
, si l'exécution des étapes est activée, le cluster est résilié sans exécuter les étapes suivantes.
Si une étape qui est configurée avec la ActionOnFailure
valeur TERMINATE_CLUSTER
échoue, utilisez la table de paramètres ci-dessous pour déterminer le résultat.
ActionOnFailure | Exécution des étapes | Protection de la résiliation | Résultat |
---|---|---|---|
|
Activé |
Désactivé |
Le cluster se résilie |
Activé |
Activé |
Le cluster se résilie |
|
Désactivé |
Activé |
Le cluster continue |
|
Désactivé |
Désactivé |
Le cluster se résilie |
Protection contre la résiliation et instances Spot
La protection de la résiliation Amazon EMR n'empêche pas la résiliation d'une instance Spot Amazon EC2 lorsque le prix Spot dépasse le prix Spot maximum.
Configuration de la protection contre la résiliation lorsque vous lancez un cluster
Vous pouvez activer ou désactiver la protection contre l'arrêt lorsque vous lancez un cluster à l'aide de la console, de l'AWS CLI ou de l'API.
Par défaut, le paramètre de protection de la résiliation dépend de la façon dont vous lancez le cluster :
-
Console Amazon EMR (nouvelle) : la protection contre la résiliation est activée par défaut.
-
Options rapides de la console Amazon EMR (ancienne) : la protection contre la résiliation est désactivée par défaut.
-
Options avancées de la console Amazon EMR (ancienne) : la protection contre la résiliation est activée par défaut.
-
AWS CLI
aws emr create-cluster
– La protection de la résiliation est désactivée, sauf si--termination-protected
a été spécifié. -
La commande d'API Amazon EMR RunJobFlow – La protection de la résiliation est désactivée, sauf si la valeur booléenne
TerminationProtected
est définie surtrue
.
Note
Nous avons repensé la console Amazon EMR pour la rendre plus facile à utiliser. Consultez Nouveautés de la console pour en savoir plus sur les différences entre les anciennes et les nouvelles expériences de console.
Configuration de la protection contre la résiliation pour les clusters en cours d'exécution
Vous pouvez configurer la protection contre l'arrêt pour un cluster en cours d'exécution à l'aide de la console ou de l'AWS CLI.
Note
Nous avons repensé la console Amazon EMR pour la rendre plus facile à utiliser. Consultez Nouveautés de la console pour en savoir plus sur les différences entre les anciennes et les nouvelles expériences de console.