Tous les produits
Search
Centre de documentation

DataWorks:Créer un nœud EMR Spark SQL

Dernière mise à jour :Aug 10, 2026

Un nœud E-MapReduce (EMR) Spark SQL utilise un moteur de requête SQL distribué pour traiter les données structurées et améliorer l'efficacité d'exécution des tâches.

Prérequis

  • Pour personnaliser l'environnement des composants avant le développement du nœud, créez une image personnalisée basée sur l'image officielle dataworks_emr_base_task_pod et utilisez l'image dans DataStudio.

    Par exemple, vous pouvez remplacer un package JAR Spark ou dépendre de libraries, files ou JAR packages spécifiques lors de la création d'une image personnalisée.

  • Enregistrez un cluster EMR avec DataWorks. Pour plus d'informations, consultez la rubrique Développement des données hérité : Lier les ressources de calcul EMR.

  • Les utilisateurs RAM doivent disposer des autorisations requises. Le propriétaire ou l'administrateur de l'espace de travail doit ajouter l'utilisateur RAM à l'espace de travail et lui attribuer le rôle Development ou Workspace Administrator. Le rôle Workspace Administrator accorde des autorisations étendues. Attribuez ce rôle avec prudence. Pour plus d'informations, consultez la rubrique Ajouter des membres à un espace de travail.

  • Achetez et configurez un groupe de ressources, notamment en le liant à un espace de travail et en configurant ses paramètres réseau. Pour plus d'informations, consultez la rubrique Utiliser un groupe de ressources serverless.

  • Créez un flux métier. Dans DataStudio, tous les nœuds de développement sont organisés en flux métier. Pour plus d'informations, consultez la rubrique Créer un flux métier.

  • Si vos tâches nécessitent un environnement de développement spécifique, utilisez DataWorks pour créer une image personnalisée avec les composants nécessaires. Pour plus d'informations, consultez la rubrique Images personnalisées.

Limites

  • Vous ne pouvez exécuter ce type de tâche que sur un groupe de ressources serverless (recommandé) ou un groupe de ressources exclusif pour la planification. Si vous devez utiliser une image dans le développement des données, vous devez utiliser un groupe de ressources serverless.

  • Pour gérer les métadonnées d'un cluster DataLake ou d'un cluster personnalisé dans DataWorks, configurez EMR-HOOK sur le cluster. Sans cette configuration, DataWorks ne peut pas afficher les métadonnées en temps réel, générer des journaux d'audit, fournir la linéarité des données ni effectuer des tâches de gouvernance liées à EMR. Pour savoir comment configurer EMR-HOOK, consultez la rubrique Configurer EMR-HOOK pour Spark SQL.

  • La linéarité des données est prise en charge pour les clusters EMR Serverless Spark, mais pas pour les clusters EMR on ACK Spark.

  • L'enregistrement visuel des fonctions est pris en charge pour les clusters DataLake et les clusters personnalisés, mais pas pour les clusters EMR on ACK Spark ou les clusters EMR Serverless Spark.

Notes

Si vous avez activé le contrôle d'accès Ranger pour Spark dans le cluster EMR associé à l'espace de travail actuel :

  • Les tâches Spark qui utilisent l'image par défaut prennent automatiquement en charge cette fonctionnalité.

  • Pour exécuter une tâche Spark avec une image personnalisée, soumettez un ticket au support technique pour demander une mise à niveau de l'image.

Étape 1 : Créer un nœud

  1. Connectez-vous à la console DataWorks. Dans la région cible, cliquez sur Data Development and O&M > Data Development dans le volet de navigation de gauche. Sélectionnez un espace de travail dans la liste déroulante et cliquez sur Go to Data Development.

  2. Créez un nœud EMR Spark SQL.

    1. Cliquez avec le bouton droit de la souris sur le flux métier cible et choisissez Create Node > EMR > EMR Spark SQL.

      Remarque

      Vous pouvez également survoler Create et choisir Create Node > EMR > EMR Spark SQL.

    2. Dans la boîte de dialogue Create Node , définissez les champs Name , Compute Engine Instance , Node Type et Path . Cliquez sur Confirm pour ouvrir l'éditeur de nœud.

      Remarque

      Le nom du nœud peut contenir des lettres majuscules, des lettres minuscules, des caractères chinois, des chiffres, des traits de soulignement (_) et des points (.).

Étape 2 : Développer la tâche

Dans l'éditeur de nœud EMR Spark SQL, double-cliquez sur le nœud créé pour ouvrir la page de développement de la tâche.

Rédiger le code SQL

Définissez les variables au format ${nom_variable} et attribuez-leur des valeurs dans le volet Scheduling Settings > Scheduling Parameter afin d'activer le passage dynamique des paramètres lors des exécutions planifiées. Pour plus d'informations sur les formats pris en charge, consultez la rubrique Formats des paramètres de planification. Voici un exemple de code.

SHOW TABLES; 
-- Use ${var} to define a variable named var. If you assign the ${yyyymmdd} value to this variable, you can create a table whose name is suffixed with the business date.
CREATE TABLE IF NOT EXISTS userinfo_new_${var} (
ip STRING COMMENT'IP address',
uid STRING COMMENT'User ID'
)PARTITIONED BY(
dt STRING
); -- You can use this variable together with scheduling parameters.
Remarque
  • La taille d'une instruction SQL ne peut pas dépasser 130 Ko.

  • Si plusieurs ressources de calcul EMR sont liées à votre espace de travail, sélectionnez celle requise pour votre tâche. Cette étape est inutile si une seule ressource est liée.

(Facultatif) Paramètres avancés

Configurez les propriétés spécifiques à Spark dans les paramètres avancés du nœud. Pour plus d'informations sur les propriétés Spark, consultez la documentation Spark Configuration. Les paramètres avancés disponibles varient selon le type de cluster EMR, comme indiqué dans les tableaux suivants.

Datalake et personnalisé : EMR sur ECS

Paramètre

Description

queue

File d'attente de planification à laquelle les tâches sont soumises. Valeur par défaut : default. Pour en savoir plus sur EMR YARN, consultez Configurations de base des files d'attente.

priority

Priorité. Valeur par défaut : 1.

FLOW_SKIP_SQL_ANALYZE

Mode d'exécution SQL. Valeurs possibles :

  • true : Exécute plusieurs instructions SQL par exécution.

  • false (par défaut) : Exécute une seule instruction SQL par exécution.

Remarque

Ce paramètre est utilisable uniquement pour les tests dans l'environnement de développement.

ENABLE_SPARKSQL_JDBC

Méthode de soumission du code SQL. Valeurs possibles :

  • true : Soumet le code SQL via JDBC. Si le cluster EMR ne dispose pas du service Kyuubi, le code est soumis à Spark Thrift Server. Si le cluster EMR dispose du service Kyuubi, le code est soumis à Kyuubi et vous pouvez spécifier des paramètres Spark personnalisés.

    Les deux méthodes de soumission prennent en charge la traçabilité des données. Toutefois, pour les tâches soumises à Thrift Server, les métadonnées de sortie ne sont pas disponibles.

  • false (par défaut) : Indique que le code SQL est soumis en mode cluster Spark-submit. Dans ce mode de soumission, Spark 2 et Spark 3 prennent tous deux en charge la traçabilité des métadonnées et les informations de sortie. Vous pouvez également spécifier des paramètres Spark personnalisés.

    Remarque
    • Lorsque vous utilisez le mode cluster spark-submit, des fichiers et répertoires temporaires sont créés par défaut dans le répertoire /tmp du système HDFS du cluster. Assurez-vous de disposer des autorisations de lecture et d'écriture sur ce répertoire.

    • Si vous utilisez le mode cluster spark-submit, vous pouvez ajouter directement des paramètres SparkConf personnalisés dans les paramètres avancés. Lors de la soumission du code, DataWorks ajoute automatiquement les nouveaux paramètres à la commande. Exemple : "spark.driver.memory" : "2g".

DATAWORKS_SESSION_DISABLE

Ce paramètre s'applique uniquement aux tests dans l'environnement de développement. Valeurs possibles :

  • true : Une nouvelle connexion JDBC est créée pour chaque instruction SQL exécutée.

  • false (par défaut) : La même connexion JDBC est réutilisée lors de l'exécution de différentes instructions SQL dans un nœud.

Remarque

Lorsque ce paramètre est défini sur false, l'yarn applicationId Hive n'est pas imprimé. Pour imprimer l'yarn applicationId, définissez ce paramètre sur true.

Autre

Ajoutez des paramètres Spark Configuration personnalisés.

Utilisez le format suivant : "spark.eventLog.enabled":false . DataWorks ajoute automatiquement ces paramètres à la commande de soumission au format --conf key=value. Pour plus d'informations sur la configuration des paramètres, consultez Définir les paramètres Spark globaux.

Remarque
  • DataWorks vous permet de définir des paramètres Spark globaux au niveau de l'espace de travail pour différents modules DataWorks. Vous pouvez spécifier si les paramètres Spark globaux ont priorité sur les paramètres Spark d'un module spécifique.

  • Pour activer le contrôle d'accès Ranger, ajoutez la configuration spark.hadoop.fs.oss.authorization.method=ranger dans Définir les paramètres Spark globaux. Cela garantit que le contrôle d'accès basé sur Ranger est effectif.

EMR serverless spark

Pour plus d'informations sur la configuration des paramètres, consultez Définir les paramètres pour la soumission d'une tâche Spark.

Paramètre

Description

FLOW_SKIP_SQL_ANALYZE

Mode d'exécution SQL. Valeurs possibles :

  • true : Exécute plusieurs instructions SQL par exécution.

  • false (par défaut) : Exécute une seule instruction SQL par exécution.

Remarque

Ce paramètre est utilisable uniquement pour les tests dans l'environnement de développement.

DATAWORKS_SESSION_DISABLE

Spécifie la méthode de soumission de la tâche. Lorsque vous exécutez une tâche dans Data Development, celle-ci est soumise par défaut à SQL Compute. Utilisez ce paramètre pour indiquer si la tâche doit être soumise à SQL Compute ou à une file d'attente.

  • true : La tâche est soumise à une file d'attente. Par défaut, la file d'attente spécifiée lors de la liaison de la ressource de calcul est utilisée. Si vous définissez le paramètre DATAWORKS_SESSION_DISABLE sur true, vous pouvez configurer le paramètre SERVERLESS_QUEUE_NAME pour spécifier la file d'attente à laquelle la tâche sera soumise lors de son exécution dans Data Development.

  • false (par défaut) : La tâche est soumise à SQL Compute pour exécution.

    Remarque

    Ce paramètre prend effet uniquement pour les exécutions dans l'environnement Data Development, et non pour les exécutions planifiées.

SERVERLESS_RELEASE_VERSION

Version du moteur Spark. Par défaut, la Default Engine Version configurée pour le cluster sur la page Cluster Management du Management Center est utilisée. Définissez ce paramètre pour remplacer la valeur par défaut pour une tâche spécifique.

Remarque

Le paramètre SERVERLESS_RELEASE_VERSION dans les paramètres avancés prend effet uniquement lorsque la session SQL Compute spécifiée pour le cluster enregistré n'est pas en cours d'exécution dans la console EMR Serverless Spark.

SERVERLESS_QUEUE_NAME

File d'attente de ressources à laquelle les tâches sont soumises. Lorsqu'une tâche est soumise à une file d'attente, la Default Resource Queue configurée pour le cluster sur la page Cluster Management du Management Center est utilisée par défaut. Si vous avez besoin d'isolation et de gestion des ressources, vous pouvez ajouter des files d'attente. Pour plus d'informations, consultez Gérer les files d'attente de ressources.

Options de configuration :

Remarque
  • Le paramètre SERVERLESS_QUEUE_NAME dans les paramètres avancés prend effet uniquement lorsque la session SQL Compute spécifiée pour le cluster enregistré n'est pas en cours d'exécution dans la console EMR Serverless Spark.

  • Lors de l'exécution dans Data Development : Vous devez d'abord définir le paramètre DATAWORKS_SESSION_DISABLE sur true pour soumettre les tâches à une file d'attente. Cela permet au paramètre SERVERLESS_QUEUE_NAME de prendre effet.

  • Lors de l'exécution planifiée depuis Operation Center : Les tâches sont toujours soumises à une file d'attente, et non à SQL Compute.

SERVERLESS_SQL_COMPUTE

Session SQL Compute à utiliser. Par défaut, la Default SQL Compute configurée pour le cluster sur la page Cluster Management du Management Center est utilisée. Si vous souhaitez utiliser différentes sessions SQL Compute pour différentes tâches, vous pouvez les spécifier ici. Pour plus d'informations sur la création et la gestion des sessions SQL Compute, consultez Gérer les sessions SQL Compute.

Autre

Ajoutez des paramètres Spark Configuration personnalisés.

Utilisez le format suivant : "spark.eventLog.enabled":"false". DataWorks ajoute automatiquement les paramètres au code envoyé au cluster EMR au format --conf key=value.

Remarque

DataWorks vous permet de définir des paramètres Spark globaux au niveau de l'espace de travail pour différents modules DataWorks. Vous pouvez spécifier si les paramètres Spark globaux ont priorité sur les paramètres Spark d'un module spécifique. Pour plus d'informations, consultez Définir les paramètres Spark globaux.

Enregistrer et exécuter la tâche

Dans la barre d'outils, cliquez sur l'icône 保存 Enregistrer pour sauvegarder vos instructions SQL, puis cliquez sur l'icône 运行 Exécuter pour lancer la tâche SQL.

Dans la boîte de dialogue d'exécution, sélectionnez un groupe de ressources disposant d'une connexion réseau fonctionnelle vers votre service Spark. Si le code du nœud utilise des variables, attribuez des valeurs constantes aux variables lors de l'exécution de débogage. Pour configurer le groupe de ressources et les paramètres pour les exécutions planifiées, consultez Configurer la planification des nœuds. Pour plus d'informations sur le débogage des tâches, consultez Processus de débogage des tâches.

Remarque

Si vous devez modifier les valeurs des paramètres dans le code, cliquez sur Advanced Run dans la barre d'outils. Pour plus d'informations sur la logique d'attribution des valeurs de paramètres, consultez Quelles sont les différences de logique d'attribution des valeurs entre Exécuter, Advanced Run et les tests de fumée dans l'environnement de développement ?.

Spark : EMR sur ACK

Paramètre

Description

FLOW_SKIP_SQL_ANALYZE

Mode d'exécution SQL. Valeurs possibles :

  • true : Exécute plusieurs instructions SQL par exécution.

  • false (par défaut) : Exécute une seule instruction SQL par exécution.

Remarque

Ce paramètre est utilisable uniquement pour les tests dans l'environnement de développement.

Autre

Ajoutez des paramètres Spark Configuration personnalisés.

Utilisez le format suivant : "spark.eventLog.enabled":false. DataWorks ajoute automatiquement les paramètres au code envoyé au cluster EMR au format --conf key=value.

Remarque

DataWorks vous permet de définir des paramètres Spark globaux au niveau de l'espace de travail pour différents modules DataWorks. Vous pouvez spécifier si les paramètres Spark globaux ont priorité sur les paramètres Spark d'un module spécifique. Pour plus d'informations, consultez Définir les paramètres Spark globaux.

Hadoop : EMR sur ECS

Paramètre

Description

queue

File d'attente de planification à laquelle les tâches sont soumises. Valeur par défaut : default. Pour en savoir plus sur EMR YARN, consultez Configurations de base des files d'attente.

priority

Priorité. Valeur par défaut : 1.

FLOW_SKIP_SQL_ANALYZE

Mode d'exécution SQL. Valeurs possibles :

  • true : Exécute plusieurs instructions SQL par exécution.

  • false (par défaut) : Exécute une seule instruction SQL par exécution.

Remarque

Ce paramètre est utilisable uniquement pour les tests dans l'environnement de développement.

USE_GATEWAY

Indique si la tâche du nœud doit être soumise via un cluster de passerelle. Valeurs possibles :

  • true : La tâche est soumise via un cluster de passerelle.

  • false (par défaut) : La tâche n'est pas soumise via un cluster de passerelle. Par défaut, la tâche est soumise à un nœud principal.

Remarque

Si aucun cluster de passerelle n'est associé au cluster où réside le nœud, les soumissions de tâches EMR suivantes échoueront si vous définissez manuellement ce paramètre sur true.

Autre

Ajoutez des paramètres Spark Configuration personnalisés.

Utilisez le format suivant : "spark.eventLog.enabled":false. DataWorks ajoute automatiquement les paramètres au code envoyé au cluster EMR au format --conf key=value. Pour plus d'informations sur la configuration des paramètres, consultez Définir les paramètres Spark globaux.

Remarque
  • DataWorks vous permet de définir des paramètres Spark globaux au niveau de l'espace de travail pour différents modules DataWorks. Vous pouvez spécifier si les paramètres Spark globaux ont priorité sur les paramètres Spark d'un module spécifique.

  • Pour activer le contrôle d'accès Ranger, ajoutez la configuration spark.hadoop.fs.oss.authorization.method=ranger dans Définir les paramètres Spark globaux. Cela garantit que le contrôle d'accès basé sur Ranger est effectif.

Exécuter la tâche

  1. Dans la barre d’outils, cliquez sur l’icône Exécuter 高级运行. Dans la boîte de dialogue Parameter, sélectionnez le groupe de ressources de planification créé, puis cliquez sur Running.

    Remarque
    • Pour accéder aux ressources de calcul dans un réseau public ou un Virtual Private Cloud (VPC), vous devez utiliser un groupe de ressources de planification ayant réussi un test de connectivité avec les ressources de calcul. Pour plus d’informations, consultez la rubrique Network connectivity.

    • Si vous souhaitez modifier le groupe de ressources pour les exécutions suivantes de la tâche, cliquez sur l’icône Running with Parameters 高级运行 et sélectionnez le groupe de ressources souhaité.

    • Lorsque vous utilisez un nœud EMR Spark SQL pour interroger des données, au maximum 10 000 enregistrements peuvent être renvoyés et la taille totale des données ne doit pas dépasser 10 Mo.

  2. Cliquez sur l’icône Enregistrer 保存 pour enregistrer les instructions SQL.

  3. (Facultatif) Effectuez un test de fumée.

    Si vous souhaitez réaliser un test de fumée dans l’environnement de développement, vous pouvez lancer ce test après avoir exécuté ou validé le nœud. Pour plus d’informations, consultez la rubrique Perform a smoke test.

Étape 3 : Configurer la planification

Si vous souhaitez que le système exécute périodiquement une tâche sur le nœud, cliquez sur Properties dans le volet de navigation droit de l’onglet de configuration du nœud afin de configurer les propriétés de planification des tâches selon vos besoins métier. Pour plus d’informations, consultez la rubrique Overview.

Remarque
  • Vous devez configurer les propriétés Rerun attribute et Parent Nodes pour le nœud avant de pouvoir le soumettre.

  • Si vous avez besoin de personnaliser l’environnement des composants, créez une custom image à partir de l’image officielle dataworks_emr_base_task_pod et utilisez-la dans DataStudio.

    Par exemple, vous pouvez remplacer les packages JAR Spark ou inclure des libraries, des files ou des JAR packages spécifiques lors de la création d’une image personnalisée.

Étape 4 : Déployer la tâche

Une fois la tâche configurée sur le nœud, vous devez la valider et la déployer. Après validation et déploiement, le système exécute la tâche régulièrement selon les configurations de planification.

  1. Cliquez sur l’icône 保存 dans la barre d’outils supérieure pour enregistrer la tâche.

  2. Cliquez sur l’icône 提交 dans la barre d’outils supérieure pour valider la tâche.

    Dans la boîte de dialogue Submit, configurez le paramètre Change description. Ensuite, décidez si vous souhaitez examiner le code de la tâche après sa validation, en fonction de vos besoins métier.

    Remarque
    • Vous devez configurer les paramètres Rerun et Parent Nodes dans l’onglet Properties avant de valider la tâche.

    • La fonctionnalité d’examen du code permet de garantir la qualité du code des tâches et d’éviter les erreurs d’exécution dues à un code invalide. Si cette fonctionnalité est activée, le code de la tâche validé ne peut être déployé qu’après avoir passé l’examen du code. Pour plus d’informations, consultez la rubrique Code review.

Si vous utilisez un espace de travail en mode standard, vous devez déployer la tâche dans l’environnement de production après l’avoir validée. Pour déployer une tâche sur un nœud, cliquez sur Deploy dans l’angle supérieur droit de l’onglet de configuration du nœud. Pour plus d’informations, consultez la rubrique Deploy a node.

Autres opérations

Après validation et déploiement de la tâche, celle-ci est exécutée périodiquement selon les configurations de planification. Cliquez sur Operation Center dans l’angle supérieur droit de l’onglet de configuration du nœud correspondant pour accéder à Operation Center et consulter l’état de planification de la tâche. Pour plus d’informations, consultez la rubrique Manage scheduled tasks.

FAQ