Utilisation de la protection de - Amazon EMR

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation de la protection de

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, leTerminateJobFlowsaction 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 arrêter un cluster, vous êtes invité à désactiver la protection de la résiliation par une étape supplémentaire.

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 à partir de la ligne de commande alors qu'elle est connectée à l'instance via SSH, si une application ou un script exécuté sur l'instance émet une commande de redémarrage, ou si Amazon EC 2 ou l'API Amazon EMR est utilisée pour désactiver la protection contre la résiliation. Même si la protection contre la terminaison est activée, les données enregistrées dans le stockage de l'instance, y compris les données HDFS, peuvent être perdues. Rédigez la sortie des données sur 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 :

Protection contre la résiliation et Amazon EC2

Un cluster Amazon EMR avec la protection de la résiliation activée comporte l'disableAPITerminationensemble d'attributs pour toutes les instances Amazon EC2 dans le cluster. Si une demande de résiliation provient d'Amazon EMR et des paramètres Amazon EMR et Amazon EC2 pour un conflit d'instance, le paramètre Amazon EMR remplace le paramètre Amazon EC2. Par exemple, si vous utilisez la console Amazon EC2 pouractiverprotection contre la résiliation sur une instance Amazon EC2 dans un cluster doté d'une protection contre la résiliationhandicapé, lorsque vous utilisez la console Amazon EMR,AWS CLIcommandes pour Amazon EMR, ou l'API Amazon EMR pour mettre fin au cluster, Amazon EMR définitDisableApiTerminationpourfalseet met fin à l'instance ainsi qu'aux autres instances.

Important

Si une instance est créée dans le cadre d'un cluster Amazon EMR avec protection contre la résiliation et que l'API Amazon EC2 ouAWS CLIsont utilisées pour modifier l'instance de telle sorte queDisableApiTerminationestfalse, puis l'API Amazon EC2 ouAWS CLIcommandes exécutent les commandesTerminateInstancesaction, l'instance Amazon EC2 est résiliée.

Protection contre la terminaison et nœuds YARN défectueux

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 de santé est signalé par l'NodeManager service de vérificateur de santé. Si un nœud signaleUNHEALTHY, le refus du contrôleur d'instance Amazon EMR répertorie le nœud et ne permet pas d'allouer des conteneurs YARN à celui-ci 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 resteUNHEALTHYpendant 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 à ê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 plus d'informations, consultez 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 met en service 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 UNHEALTHY pendant plus de 45 minutes, le cluster se résilie avec un rapport d'état NO_SLAVES_LEFT.

Important

Les 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 terminaison et exécution des étapes

Lorsque vous activez l'exécution des étapes etégalementactiver 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 plus d'informations, consultez Soumettre le travail à un cluster.

En cas d'échec d'une étape configurée avecActionOnFailuredéfini surCANCEL_AND_WAIT, si l'exécution par étapes est activée, le cluster se résilie sans exécuter d'é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 Arrêt l'exécution d' Protection de la résiliation Résultat

TERMINATE_CLUSTER

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 l'arrêt et instances Spot

La protection de la résiliation Amazon EMR n'empêche pas la résiliation d'une instance Spot Amazon EC2.

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 :

  • Options rapides de la console Amazon EMR : la protection contre la résiliation esthandicapépar défaut.

  • Options avancées de la console Amazon EMR : la protection contre la résiliation estactivépar défaut.

  • AWS CLI aws emr create-cluster—La protection de la résiliation esthandicapésauf si--termination-protectedest spécifié.

  • API Amazon EMR EMRRunJobFlowLa protection de terminaison de commande esthandicapéà moins que leTerminationProtectedla valeur booléenne est définie surtrue.

Pour activer ou désactiver la protection de la résiliation lors de la création d'un cluster à l'aide de la console

  1. Ouvrez la console Amazon EMR à l'adressehttps://console.aws.amazon.com/elasticmapreduce/.

  2. Choisissez Create Cluster (Créer un cluster).

  3. Choisissez Accéder aux options avancées.

  4. PourÉtape 3 : Paramètres généraux de cluster, sousOptions généralesassurez-vousProtection de la résiliationest sélectionnée pour l'activer, ou effacer la sélection pour la désactiver.

    
							Paramètre de protection de la résiliation dans les Options avancées pour la création du cluster
  5. Choisissez d'autres paramètres selon les besoins de votre application, choisissez Next (Suivant), puis terminer la configuration de votre cluster.

Pour activer ou désactiver la protection de la résiliation lors de la création d'un cluster à l'aide de l'AWS CLI

  • À l'aide de l'AWS CLI, vous pouvez lancer un cluster avec la protection de la résiliation activée en utilisant la commande create-cluster avec le paramètre --termination-protected. La protection de la résiliation est désactivée par défaut.

    L'exemple suivant crée un cluster avec la protection de la résiliation activée :

    Note

    Les caractères de suite de ligne Linux (\) sont inclus pour plus de lisibilité. Ils peuvent être supprimés ou utilisés dans les commandes Linux. Sous Windows, supprimez-les ou remplacez-les par le caret (^).

    aws emr create-cluster --name "TerminationProtectedCluster" --release-label emr-5.36.0 \ --applications Name=Hadoop Name=Hive Name=Pig \ --use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge \ --instance-count 3 --termination-protected

    Pour plus d'informations sur l'utilisation des commandes Amazon EMR dans l'AWS CLI, voirhttps://docs.aws.amazon.com/cli/latest/reference/emr.

Configuration de la protection contre la terminaison pour les clusters

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.

Pour activer ou désactiver la protection de la résiliation d'un cluster en cours d'exécution à l'aide de la console

  1. Ouvrez la console Amazon EMR à l'adressehttps://console.aws.amazon.com/elasticmapreduce/.

  2. Sur la page Clusters, choisissez le Nom de votre cluster.

  3. Dans l'onglet Summary (Récapitulatif), pour la Termination protection (Protection de la résiliation), choisissez Change (Modifier).

  4. Pour activer la protection de la résiliation, choisissez On (Activée). Pour désactiver la protection de la résiliation, choisissez Off (Désactivée). Ensuite, sélectionnez la coche verte pour confirmer.

    
							Confirmer la modification de la protection de la résiliation

Pour activer ou désactiver la protection de la résiliation d'un cluster en cours d'exécution à l'aide de l'AWS CLI

  • Pour activer la protection de la résiliation sur un cluster en cours d'exécution à l'aide de l'AWS CLI, utilisez la commande modify-cluster-attributes avec le paramètre --termination-protected. Pour la désactiver, utilisez le paramètre --no-termination-protected.

    L'exemple suivant active la protection de la résiliation sur le cluster doté de l'ID j-3KVTXXXXXX7UG :

    aws emr modify-cluster-attributes --cluster-id j-3KVTXXXXXX7UG --termination-protected

    L'exemple suivant désactive la protection de la résiliation sur le même cluster :

    aws emr modify-cluster-attributes --cluster-id j-3KVTXXXXXX7UG --no-termination-protected