Tous les produits
Search
Centre de documentation

AnalyticDB:Développer des applications Spark à l'aide de l'outil de ligne de commande spark-submit

Dernière mise à jour :Sep 22, 2026

L'outil de ligne de commande spark-submit d'AnalyticDB for MySQL vous permet de soumettre et de gérer des applications JAR Spark depuis un client. Cette rubrique explique comment installer l'outil, le configurer, soumettre une application JAR Spark et gérer les tâches en cours d'exécution.

Limites

  • L'outil spark-submit prend uniquement en charge les applications JAR Spark. Vous ne pouvez pas soumettre d'applications Spark SQL.

  • Les commandes de soumission ne sont pas retentées en cas d'échec, car la soumission n'est pas une opération idempotente. Une commande qui semble avoir échoué en raison d'un délai d'expiration du réseau peut avoir déjà abouti. Pour vérifier si une soumission a réussi, utilisez --list ou consultez la console AnalyticDB for MySQL.

Prérequis

Avant de commencer, assurez-vous que vous disposez des éléments suivants :

  • Un cluster AnalyticDB for MySQL édition Data Lakehouse

  • Un groupe de ressources pour les tâches. Pour plus de détails, consultez Créer et gérer un groupe de ressources

  • Un bucket Object Storage Service (OSS) situé dans la même région que le cluster

  • Java Development Kit (JDK) 1.8 ou version ultérieure installé sur la machine cliente

Installer spark-submit

  1. Téléchargez le package d'installation.

    wget https://dla003.oss-cn-hangzhou.aliyuncs.com/adb-spark-toolkit-submit-0.0.1.tar.gz
  2. Décompressez le package.

    tar zxvf adb-spark-toolkit-submit-0.0.1.tar.gz

Configurer spark-submit

Après avoir décompressé le package, ouvrez le fichier adb-spark-toolkit-submit/conf/spark-defaults.conf. Le script spark-submit lit automatiquement ce fichier et les paramètres s'appliquent à toutes les applications Spark.

vim adb-spark-toolkit-submit/conf/spark-defaults.conf

Le tableau suivant décrit les paramètres de configuration.

Paramètre Obligatoire Description
keyId Oui ID AccessKey d'un compte Alibaba Cloud ou d'un utilisateur Resource Access Management (RAM) disposant des autorisations nécessaires pour accéder à AnalyticDB for MySQL. Pour plus de détails, consultez Comptes et autorisations.
secretId Oui Clé secrète AccessKey du compte Alibaba Cloud ou de l'utilisateur RAM. Pour plus de détails, consultez Comptes et autorisations.
regionId Oui ID de la région du cluster AnalyticDB for MySQL.
clusterId Oui ID du cluster AnalyticDB for MySQL.
rgName Oui Nom du groupe de ressources utilisé pour exécuter les applications Spark.
ossKeyId Non ID AccessKey pour l'accès à OSS. Requis lorsque les fichiers JAR stockés localement doivent être téléchargés vers OSS. L'utilisateur RAM doit disposer de l'autorisation AliyunOSSFullAccess.
ossSecretId Non Clé secrète AccessKey pour l'accès à OSS. Requis conjointement avec ossKeyId.
ossUploadPath Non Chemin OSS pour le téléchargement des fichiers JAR locaux. Requis conjointement avec ossKeyId.
conf Non Paramètres de configuration Spark supplémentaires au format key:value. Séparez plusieurs paramètres par des virgules. Pour connaître les paramètres disponibles, consultez Paramètres de configuration des applications Spark.

Soumettre une application Spark

  1. Téléchargez les fichiers JAR de votre application Spark vers OSS. Pour plus de détails, consultez Téléchargement simple.

  2. Accédez au répertoire spark-submit.

    cd adb-spark-toolkit-submit
  3. Soumettez l'application Spark. Remplacez les valeurs d'espace réservé par vos chemins OSS et noms de ressources réels.

    ./bin/spark-submit \
      --class com.aliyun.spark.oss.SparkReadOss \
      --verbose \
      --name Job1 \
      --jars oss://<bucket-name>/jars/test.jar,oss://<bucket-name>/jars/search.jar \
      --conf spark.driver.resourceSpec=medium \
      --conf spark.executor.instances=1 \
      --conf spark.executor.resourceSpec=medium \
      oss://<bucket-name>/jars/test1.jar args0 args1

    Remplacez les espaces réservés comme suit :

    Espace réservé Description
    <bucket-name> Nom du bucket OSS contenant vos fichiers JAR
    args0 args1 Arguments pour les fichiers JAR, séparés par des espaces

Après la soumission de l'application, l'un des codes de retour suivants est renvoyé :

Code de retour Signification
0 L'application s'est exécutée avec succès
255 Échec de l'application
143 L'application a été arrêtée

Le tableau suivant décrit les paramètres spark-submit utilisés dans la commande ci-dessus.

Paramètre Description
--class Classe principale de l'application Java ou Scala. Non requis pour les applications Python.
--verbose Affiche les journaux générés lors de la soumission.
--name Nom de l'application Spark.
--jars Chemins absolus OSS séparés par des virgules des fichiers JAR supplémentaires dont dépend l'application. Si vous spécifiez des chemins locaux, l'outil les télécharge vers le chemin OSS configuré dans ossUploadPath. Pendant le téléchargement d'un fichier JAR local, le système vérifie le fichier à l'aide de sa somme de contrôle MD5 ; si un fichier portant le même nom et ayant la même valeur MD5 existe déjà dans OSS, le téléchargement est annulé. Si vous avez mis à jour manuellement un fichier JAR dans OSS, supprimez son fichier de somme de contrôle MD5 correspondant afin que le fichier mis à jour soit téléchargé. L'utilisateur RAM doit disposer de l'autorisation AliyunOSSFullAccess.
--conf Paramètres de configuration Spark. Spécifiez plusieurs paramètres sous forme d'indicateurs distincts : --conf key1=value1 --conf key2=value2. Pour les paramètres spécifiques à AnalyticDB for MySQL, consultez Différences par rapport à spark-submit open source.
Chemin du fichier principal Chemin absolu OSS du fichier JAR principal (pour Java/Scala) ou du script de point d'entrée (pour Python). Tous les fichiers principaux doivent être stockés dans OSS.
args Arguments pour les fichiers JAR, séparés par des espaces.

Gérer les applications Spark

Après avoir soumis une application, suivez le flux de travail type ci-dessous :

  1. Exécutez --list pour obtenir l'ID de l'application.

  2. Utilisez l'ID de l'application avec --status, --get-log ou --detail pour surveiller la progression.

  3. Exécutez --kill pour arrêter l'application si nécessaire.

Répertorier les applications

Utilisez l'ID d'application renvoyé ici avec toutes les autres commandes de gestion.

./bin/spark-submit --list \
  --clusterId <cluster-ID> \
  --rgName <resource-group-name> \
  --pagenumber 1 \
  --pagesize 3

Remplacez <cluster-ID> par l'ID de votre cluster AnalyticDB for MySQL et <resource-group-name> par le nom du groupe de ressources pour les tâches.

Vérifier le statut de l'application

./bin/spark-submit --status <application-ID>

Afficher les détails de la soumission et l'URL de l'interface utilisateur Spark

./bin/spark-submit --detail <application-ID>

La sortie inclut un champ Spark WEB UI contenant l'URL de l'interface utilisateur Spark pour cette application.

Afficher les journaux de l'application

./bin/spark-submit --get-log <application-ID>

Arrêter une application

./bin/spark-submit --kill <application-ID>

Différences par rapport à spark-submit open source

Paramètres spécifiques à spark-submit pour AnalyticDB for MySQL

Les paramètres suivants sont disponibles uniquement dans l'outil spark-submit d'AnalyticDB for MySQL.

Paramètre Valeur par défaut Description
--api-retry-times 3 Nombre maximal de tentatives pour les commandes ayant échoué. Les commandes de soumission ne sont pas retentées — voir Limites pour plus de détails.
--time-out-seconds 10 Délai d'expiration en secondes avant de retenter une commande ayant échoué.
--enable-inner-endpoint — Active l'accès au réseau interne au sein d'un Virtual Private Cloud (VPC). Utilisez cette option lors de la soumission d'applications depuis une instance Elastic Compute Service (ECS).
--list — Répertorie les applications soumises. Utilisez conjointement avec --pagenumber et --pagesize pour paginer les résultats.
--pagenumber 1 Numéro de page pour les résultats de la liste.
--pagesize 10 Nombre d'applications renvoyées par page.
--kill — Arrête l'application spécifiée.
--get-log — Récupère les journaux de l'application spécifiée.
--status — Affiche le statut de l'application spécifiée.

Paramètres non pris en charge par spark-submit pour AnalyticDB for MySQL

Certains paramètres de spark-submit open source ne sont pas pris en charge. Pour la liste complète, consultez la rubrique Paramètres de configuration des applications Spark.