Tous les produits
Search
Centre de documentation

E-MapReduce:Execute scripts using bootstrap actions

Dernière mise à jour :Sep 21, 2026

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 - hadoop dans 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

  1. Accédez à la page de gestion des clusters.

    1. Connectez-vous à la console E-MapReduce.

    2. Dans la barre de navigation supérieure, sélectionnez une région et un groupe de ressources.

  2. Sur la page EMR on ECS, cliquez sur CREATE_CLUSTER.

  3. Dans la section Advanced Settings de l'étape Basic Configuration, cliquez sur Add Bootstrap Action dans la ligne Bootstrap Actions.

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

      La figure suivante illustre l'ordre d'exécution.

    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.

    Remarque

    Si 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

  1. Accédez à la page Script operation.

    1. Connectez-vous à la console E-MapReduce.

    2. Dans la barre de navigation supérieure, sélectionnez une région et un groupe de ressources.

    3. Cliquez sur Services pour le cluster cible.

    4. Cliquez sur l'onglet Script Operation.

  2. Sur la page Bootstrap Actions, cliquez sur Add Bootstrap Action.

  3. Dans la boîte de dialogue Add Bootstrap Action, configurez les paramètres.

    image

    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.

      La figure suivante illustre l'ordre d'exécution.

    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.

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

Remarque

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 :

  1. Accédez à la page Cluster Services.

    1. Connectez-vous à la console EMR.

    2. Dans le volet de navigation de gauche, cliquez sur EMR on ECS.

    3. Dans la barre de navigation supérieure, sélectionnez une région et un groupe de ressources.

    4. Sur la page EMR on ECS, cliquez sur Services pour le cluster cible.

  2. Cliquez sur l'onglet Script operation, puis cliquez sur View Execution Result à droite du script que vous souhaitez vérifier.

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

    Important

    OSS 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

FAQ

  • Un script de démarrage EMR est interrompu, mais aucun message d'erreur n'apparaît dans les journaux.

    Les causes les plus courantes des échecs de script incluent :

    • Problèmes de connectivité réseau. Les instances ECS et le bucket OSS correspondant doivent se trouver dans la même région. Par exemple, une instance ECS dans la région Chine (Pékin) ne peut pas se connecter à un bucket OSS en dehors de la région Chine (Pékin).

    • Échecs lors de l'obtention des informations de clé d'accès. Ce problème survient généralement parce que le rôle AliyunECSInstanceForEMRRole n'est pas attaché à l'instance ECS.

    • Le script utilise nohup sans rediriger la sortie. Cela peut entraîner une sortie de tâche très longue. L'utilisation correcte est nohup ... >*** 2>&1.

    • Le script a été modifié dans un environnement Windows et contient des fins de ligne Windows, ce qui provoque des erreurs lors de l'exécution du script dans un environnement Linux. Dans le journal d'erreurs de l'historique des opérations, vérifiez si ^M apparaît. Si c'est le cas, modifiez à nouveau le script dans un environnement Linux et téléchargez-le sur OSS.

  • Un script de démarrage EMR ne trouve pas de commandes telles que YARN et HDFS.

    Par défaut, EMR ne charge pas les informations de profil lorsqu'il exécute un script de cluster. Si vous souhaitez utiliser des commandes telles que YARN et HDFS, ajoutez . /etc/profile au début du script pour charger le profil.

    Important

    Dans la commande . /etc/profile, un espace est requis entre . et /etc/profile.