Les actions de démarrage permettent d'installer les logiciels tiers requis ou de modifier l'environnement d'exécution d'un cluster. Cette rubrique explique comment les ajouter et fournit des exemples.
Informations générales
Les actions de démarrage exécutent automatiquement des scripts spécifiés sur les nœuds nouvellement ajoutés lors de la création, de l'extension horizontale ou de l'activation de la mise à l'échelle automatique d'un cluster. Vous pouvez également sélectionner et exécuter manuellement des scripts par lots sur des nœuds existants pour répondre à des besoins personnalisés. Pour plus d'informations sur l'exécution manuelle de scripts, consultez Exécuter manuellement des scripts.
À l'instar de l'exécution manuelle, vous pouvez utiliser les actions de démarrage pendant ou après la création du cluster pour effectuer des opérations non prises en charge nativement par EMR, telles que :
Installer des logiciels disponibles via Yum.
Télécharger des logiciels publics depuis Internet.
Lire vos données depuis OSS.
Installer et exécuter un composant, tel que Flink ou Impala.
Limites
Vous pouvez ajouter jusqu'à 10 actions de démarrage. Elles sont exécutées dans l'ordre spécifié.
Par défaut, EMR exécute le script en tant qu'utilisateur root. Vous pouvez également exécuter la commande
su - hadoopdans le script pour basculer vers l'utilisateur hadoop.
Ajouter une action de démarrage
Vous pouvez ajouter une action de démarrage de l'une des deux manières suivantes.
Lors de la création
-
Accédez à la page de gestion des clusters.
Connectez-vous à la console E-MapReduce.
Dans la barre de navigation supérieure, sélectionnez une région et un groupe de ressources.
Sur la page EMR on ECS, cliquez sur CREATE_CLUSTER.
Dans la section Advanced Settings de l'étape Basic Configuration, cliquez sur Add Bootstrap Action dans la ligne Bootstrap Actions.
-
Configurez les paramètres suivants.
Paramètre
Description
Operation Name
Nom de l'action de démarrage.
Script Path
Chemin OSS où le script est stocké.
Le chemin du script doit être au format oss://**/*.sh.
Parameter
Arguments du script d'action de démarrage. Spécifiez les valeurs des variables référencées dans le script.
Execution Time
-
Before Component Installation : Le script s'exécute avant l'installation des composants.
-
Before Component Startup : Le script s'exécute après l'installation des composants, mais avant leur démarrage.
-
After Component Startup : Le script s'exécute après le démarrage des composants.
Execution Failure Policy
-
Proceed : Si le script échoue, le système continue d'exécuter le script suivant. Cela n'affecte pas le processus de création ou d'extension du cluster.
-
Stop : Si le script échoue, le système arrête immédiatement l'exécution du script actuel et la création ou l'extension du cluster échoue.
Execution Scope
Les valeurs valides sont :
-
Cluster : L'action de démarrage s'applique à l'ensemble du cluster.
-
Node Group Type : L'action de démarrage s'applique uniquement au type de groupe de nœuds sélectionné.
Pour des exemples d'actions de démarrage, consultez Exemples.
RemarqueSi vous sélectionnez la politique Proceed, un échec d'action de démarrage n'affecte pas le processus de création du cluster.
Pour plus d'informations sur la création d'un cluster, consultez Créer un cluster. Une fois le cluster créé, accédez à la page Script Operation du cluster pour vérifier les erreurs. En cas d'erreur, consultez Afficher les journaux d'exécution des scripts.
-
Après la création
-
Accédez à la page Script operation.
Connectez-vous à la console E-MapReduce.
Dans la barre de navigation supérieure, sélectionnez une région et un groupe de ressources.
Cliquez sur Services pour le cluster cible.
Cliquez sur l'onglet Script Operation.
Sur la page Bootstrap Actions, cliquez sur Add Bootstrap Action.
-
Dans la boîte de dialogue Add Bootstrap Action, configurez les paramètres.

Paramètre
Description
Name
Nom de l'action de démarrage.
Script Address
Chemin OSS où le script est stocké.
Le chemin du script doit être au format oss://**/*.sh.
Parameter
Arguments du script d'action de démarrage. Spécifiez les valeurs des variables référencées dans le script.
Execution Scope
Les valeurs valides sont :
-
Cluster : L'action de démarrage s'applique à l'ensemble du cluster.
-
Node Group Type : L'action de démarrage s'applique uniquement au type de groupe de nœuds sélectionné.
-
Node Group : L'action de démarrage s'applique uniquement au groupe de nœuds sélectionné.
Execution Time
-
Before Component Installation : Le script s'exécute avant l'installation des composants.
-
Before Component Startup : Le script s'exécute après l'installation des composants, mais avant leur démarrage.
-
After Component Startup : Le script s'exécute après le démarrage des composants.
Execution Failure Policy
-
Proceed : Si le script échoue, le système continue d'exécuter le script suivant. Cela n'affecte pas le processus de création ou d'extension du cluster.
-
Stop : Si le script échoue, le système arrête immédiatement l'exécution du script actuel et la création ou l'extension du cluster échoue.
-
-
Cliquez sur OK.
Pour des exemples d'actions de démarrage, consultez Exemples.
Vous pouvez effectuer les opérations suivantes sur les actions de démarrage existantes :
Modifier une action de démarrage : Cliquez sur Edit dans la ligne de l'action de démarrage cible.
Cloner une action de démarrage : Cliquez sur Clone dans la ligne de l'action de démarrage cible.
Supprimer une action de démarrage : Cliquez sur Delete dans la ligne de l'action de démarrage cible.
Journaux d'exécution des scripts
Nous vous recommandons d'ajouter une logique de journalisation aux emplacements clés de votre script. Cela vous aide à résoudre les problèmes d'exécution en consultant les journaux d'exécution.
Vous pouvez afficher les journaux d'exécution des scripts d'action de démarrage dans l'historique des opérations. Suivez ces étapes :
-
Accédez à la page Cluster Services.
Connectez-vous à la console EMR.
Dans le volet de navigation de gauche, cliquez sur EMR on ECS.
Dans la barre de navigation supérieure, sélectionnez une région et un groupe de ressources.
Sur la page EMR on ECS, cliquez sur Services pour le cluster cible.
Cliquez sur l'onglet Script operation, puis cliquez sur View Execution Result à droite du script que vous souhaitez vérifier.
-
Dans le panneau Operation History, recherchez l'enregistrement d'opération correspondant et affichez ses détails.
Pour les clusters DataLake, Dataflow, OLAP, DataServing et personnalisés : Dans l'enregistrement d'opération de création d'un cluster (create) ou d'extension d'un cluster (increaseNodeGroup), cliquez sur
pour afficher les détails de la tâche. Les tâches qui exécutent des actions de démarrage sont préfixées par RUN_BOOTSTRAP_CLUSTER_SCRIPT_<bootstrap action name>_<bootstrap action ID>. Vous pouvez afficher les journaux Stdout et Stderr.Pour les clusters Hadoop, Data Science et EMR Studio : Dans l'enregistrement d'opération de création d'un cluster (CREATE_CLUSTER) ou d'extension d'un cluster (RESIZE_CLUSTER), cliquez sur
pour afficher les détails de la tâche. Sous pollDeployTaskStatusActivity, les tâches qui exécutent des actions de démarrage sont préfixées par RUN_SCRIPT_HOST_**. Vous pouvez afficher les journaux Stdout et Stderr.
Exemples
Lorsque vous configurez une action de démarrage, vous devez spécifier son nom et l'emplacement de son script dans OSS. Vous pouvez également spécifier des arguments de script si nécessaire. Lorsqu'une action de démarrage s'exécute, chaque nœud télécharge le script OSS spécifié et l'exécute directement ou avec les arguments facultatifs spécifiés. Les sections suivantes fournissent des exemples :
-
Exemple 1
Vous pouvez spécifier les fichiers à télécharger depuis OSS dans le script. Par exemple, le script suivant télécharge le fichier oss://<yourBucket>/<myFile>.tar.gz et le décompresse dans le répertoire /<yourDir>.
ImportantOSS propose des endpoints internes, des endpoints publics et des endpoints VPC. Si vous utilisez un réseau classique, vous devez spécifier un endpoint interne. Par exemple, l'endpoint interne pour la région Chine (Hangzhou) est oss-cn-hangzhou-internal.aliyuncs.com. Si vous utilisez un VPC, vous devez spécifier un nom de domaine accessible via VPC. Par exemple, l'endpoint VPC pour la région Chine (Hangzhou) est vpc100-oss-cn-hangzhou.aliyuncs.com.
-
Clusters DataLake, Dataflow, OLAP, DataServing et personnalisés
#!/bin/bash ossutil64 cp oss://<yourBucket>/<myFile>.tar.gz ./ -e oss-cn-hangzhou-internal.aliyuncs.com -i <yourAccessKeyId> -k <yourAccessKeySecret> mkdir -p /<yourDir> tar -zxvf <myFile>.tar.gz -C /<yourDir> -
Clusters Legacy DataLake (Hadoop)
#!/bin/bash osscmd --id=<yourAccessKeyId> --key=<yourAccessKeySecret> --host=oss-cn-hangzhou-internal.aliyuncs.com get oss://<yourBucket>/<myFile>.tar.gz ./ mkdir -p /<yourDir> tar -zxvf <myFile>.tar.gz -C /<yourDir>
-
-
Exemple 2
Vous pouvez utiliser Yum pour installer des packages supplémentaires, tels que ld-linux.so.2.
#!/bin/bash yum install -y ld-linux.so.2