Tous les produits
Search
Centre de documentation

DataWorks:Nœud EMR Spark SQL

Dernière mise à jour :Aug 10, 2026

Créez un nœud E-MapReduce (EMR) Spark SQL pour traiter des données structurées à l'aide d'un moteur de requête SQL distribué, ce qui améliore l'efficacité d'exécution.

Prérequis

  • Avant de commencer le développement du nœud, si vous avez besoin d'un environnement de composant personnalisé, créez une image personnalisée basée sur l'image officielle dataworks_emr_base_task_pod, puis utilisez-la dans Data Studio. Pour plus d'informations, consultez les rubriques Créer une image personnalisée et Utiliser des images dans le développement de données.

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

  • Créez un cluster Alibaba Cloud EMR et enregistrez-le dans DataWorks. Pour plus d'informations, consultez la rubrique New Data Studio : Attacher une ressource de calcul EMR.

  • (Facultatif, pour les utilisateurs RAM) L'utilisateur Resource Access Management (RAM) chargé du développement des tâches doit être ajouté à l'espace de travail et se voir attribuer le rôle Development ou Workspace Administrator (ce rôle inclut des autorisations étendues et doit être accordé avec prudence). Pour plus d'informations, consultez la rubrique Ajouter des membres à l'espace de travail.

    Si vous utilisez un compte racine, ignorez cette étape.
  • Utilisez une image personnalisée Custom image pour construire un environnement de développement spécifique à votre tâche.

Limitations

  • Les nœuds EMR Shell s'exécutent uniquement sur un groupe de ressources serverless (recommandé) ou sur un groupe de ressources exclusif pour la planification. L'utilisation d'une image personnalisée pour le développement de données nécessite un groupe de ressources serverless.

  • Pour gérer les métadonnées d'un cluster DataLake ou personnalisé dans DataWorks, configurez d'abord EMR-HOOK sur le cluster. Pour plus d'informations, consultez la rubrique Configurer EMR-HOOK pour Spark SQL.

    Remarque

    Sans configuration d'EMR-HOOK sur le cluster, vous ne pouvez pas afficher les métadonnées en temps réel, générer des journaux d'audit, consulter la lignée des données ni effectuer des tâches de gouvernance liées à EMR dans DataWorks.

  • Les clusters EMR on ACK Spark ne prennent pas en charge l'affichage de la lignée des données. Les clusters EMR Serverless Spark prennent en charge l'affichage de la lignée des données.

  • L'enregistrement de fonctions via l'interface utilisateur est pris en charge sur les clusters DataLake et personnalisés, mais pas sur les clusters EMR on ACK Spark ou EMR Serverless Spark.

Remarques

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 utilisant 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 afin de demander une mise à niveau de l'image.

Procédure

  1. Dans l'onglet de configuration du nœud EMR Spark SQL, effectuez les opérations de développement suivantes.

    Développer le code SQL

    Rédigez le code de votre tâche dans l'éditeur SQL. Définissez les variables au format ${nom_variable} et attribuez-leur des valeurs dans la section Scheduling Settings > Scheduling Parameters située à droite de l'onglet de configuration du nœud, afin de transmettre dynamiquement des paramètres aux tâches planifiées. Pour plus d'informations, consultez la rubrique Sources et expressions des paramètres de planification. Exemple :

    SHOW TABLES; 
    -- Define a variable named var by using ${var}. If you set this variable to ${yyyymmdd}, you can create a table with the business date as a suffix.
    CREATE TABLE IF NOT EXISTS userinfo_new_${var} (
    ip STRING COMMENT'IP address',
    uid STRING COMMENT'User ID'
    )PARTITIONED BY(
    dt STRING
    ); -- Can be used with scheduling parameters.

    (Facultatif) Configurer les paramètres du nœud EMR

    Dans la section EMR Node Parameters du volet Run Configuration, configurez les paramètres suivants :

    • Spark parameter : paramètres de propriété intégrés à Spark. Pour plus d'informations, consultez la documentation open source Spark configuration. Vous pouvez charger directement un modèle de configuration Spark depuis Serverless Spark, ce qui simplifie la configuration et garantit la cohérence.

    • DataWorks parameters : les paramètres avancés disponibles varient selon le type de cluster EMR, comme décrit dans le tableau suivant.

    Cluster DataLake/Cluster personnalisé : EMR on ECS

    Paramètre avancé

    Description

    queue

    File d'attente de planification pour la soumission des jobs. La valeur par défaut est default. Pour plus d'informations 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 des instructions SQL. Valeurs possibles :

    • true : plusieurs instructions SQL sont exécutées simultanément.

    • false (par défaut) : une seule instruction SQL est exécutée à la fois.

    Remarque

    Ce paramètre est pris en charge uniquement pour les exécutions de test dans l'environnement de développement de données.

    ENABLE_SPARKSQL_JDBC

    Méthode utilisée pour soumettre le code SQL. Valeurs possibles :

    • true : le code SQL est soumis via JDBC. Si le cluster EMR ne dispose pas du service Kyuubi, le code SQL est soumis à Spark Thrift-Server. Si le cluster EMR dispose du service Kyuubi, le code SQL est soumis à Kyuubi via JDBC, et les paramètres Spark personnalisés sont pris en charge.

      Les deux méthodes prennent en charge la lignée des métadonnées. Toutefois, les tâches soumises à Thrift-Server ne disposent pas des informations de sortie pour les tâches de nœud correspondantes dans les métadonnées.

    • false (par défaut) : le code SQL est soumis à l'aide de la méthode de cluster Spark-submit. Dans ce mode, Spark2 et Spark3 prennent tous deux en charge la lignée des métadonnées et les informations de sortie. Les paramètres Spark personnalisés sont également pris en charge.

      Remarque
      • La méthode de cluster Spark-submit crée par défaut des fichiers et répertoires temporaires dans le répertoire /tmp du HDFS du cluster EMR. Assurez-vous que le répertoire dispose des autorisations de lecture et d'écriture.

      • Lorsque vous utilisez la méthode de cluster Spark-submit, vous pouvez ajouter directement des paramètres SparkConf personnalisés dans les configurations avancées. DataWorks ajoute automatiquement les nouveaux paramètres à la commande lors de la soumission du code. Exemple : "spark.driver.memory" : "2g".

    DATAWORKS_SESSION_DISABLE

    Ce paramètre s'applique aux exécutions de test dans l'environnement de développement. Valeurs possibles :

    • true : une nouvelle connexion JDBC est créée à chaque exécution d'une instruction SQL.

    • false (par défaut) : la même connexion JDBC est réutilisée lors de l'exécution de différentes instructions SQL au sein d'un même 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.

    Others

    Paramètres Spark Configuration personnalisés. Ajoutez des paramètres de propriété spécifiques à Spark.

    Format de configuration : "spark.eventLog.enabled" : false, "spark.eventLog.memory" : "12g". DataWorks ajoute automatiquement les paramètres au code soumis au cluster EMR au format : --conf key=value. Pour plus d'informations sur les configurations de paramètres, consultez la rubrique Configurer les paramètres Spark globaux.

    Remarque
    • DataWorks vous permet de configurer des paramètres Spark globaux au niveau de l'espace de travail pour chaque module DataWorks. Vous pouvez spécifier si la priorité des paramètres Spark globaux est supérieure à celle des paramètres Spark configurés au sein d'un module spécifique.

    • Pour activer le contrôle d'accès Ranger, ajoutez spark.hadoop.fs.oss.authorization.method=ranger aux configurations des paramètres Spark globaux afin de garantir l'application du contrôle d'accès Ranger.

    Cluster EMR Serverless Spark

    Pour les paramètres associés, consultez la rubrique Paramètres des tâches Spark.

    Paramètre avancé

    Description

    FLOW_SKIP_SQL_ANALYZE

    Mode d'exécution des instructions SQL. Valeurs possibles :

    • true : plusieurs instructions SQL sont exécutées simultanément.

    • false (par défaut) : une seule instruction SQL est exécutée à la fois.

    Remarque

    Ce paramètre est pris en charge uniquement pour les exécutions de test dans l'environnement de développement de données.

    DATAWORKS_SESSION_DISABLE

    Méthode de soumission des tâches. Lors du développement de données, les tâches sont soumises à SQL Compute pour exécution par défaut. Vous pouvez utiliser ce paramètre pour spécifier si la tâche est exécutée via SQL Compute ou soumise à une file d'attente pour exécution.

    • true : la tâche est soumise à une file d'attente pour exécution. Par défaut, la file d'attente par défaut spécifiée lors de l'association de la ressource de calcul est utilisée. Lorsque DATAWORKS_SESSION_DISABLE est défini sur true, vous pouvez configurer le paramètre SERVERLESS_QUEUE_NAME pour spécifier la file d'attente à laquelle les tâches sont soumises lors du développement de données.

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

      Remarque

      Ce paramètre prend effet uniquement lors de l'exécution en développement de données, et non lors des exécutions planifiées.

    SERVERLESS_RELEASE_VERSION

    Version du moteur Spark. Par défaut, la Default Engine Version configurée dans les paramètres du cluster sous Compute Resource dans Management Center est utilisée. Pour définir une version de moteur différente pour une tâche spécifique, configurez ce paramètre.

    Remarque

    Le paramètre SERVERLESS_RELEASE_VERSION dans les configurations avancées prend effet uniquement lorsque le SQL Compute (session) spécifié pour le cluster enregistré est à l'état arrêté 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 configurée pour être soumise à une file d'attente pour exécution, la Default Resource Queue configurée dans les paramètres du cluster sous Clusters dans Management Center est utilisée par défaut. Si vous avez des exigences en matière d'isolation et de gestion des ressources, vous pouvez ajouter des files d'attente. Pour plus d'informations, consultez la rubrique Gérer les files d'attente de ressources.

    Méthodes de configuration :

    • Spécifiez la file d'attente de ressources pour la soumission des tâches en configurant les paramètres du nœud.

    • Spécifiez la file d'attente de ressources pour la soumission des tâches en configurant les paramètres Spark globaux.

    Remarque
    • Le paramètre SERVERLESS_QUEUE_NAME dans les configurations avancées prend effet uniquement lorsque le SQL Compute (session) spécifié pour le cluster enregistré est à l'état arrêté dans la console EMR Serverless Spark.

    • Lors de l'exécution en développement de données : vous devez d'abord définir DATAWORKS_SESSION_DISABLE sur true afin que les tâches soient soumises à une file d'attente pour exécution. Ce n'est qu'alors que le paramètre SERVERLESS_QUEUE_NAME prend effet pour spécifier la file d'attente des tâches.

    • Lors de l'exécution planifiée dans Operation Center : les tâches sont forcées d'être soumises à une file d'attente pour exécution et ne peuvent pas être soumises à SQL Compute.

    SERVERLESS_SQL_COMPUTE

    SQL Compute (session SQL) à utiliser. Par défaut, le Default SQL Compute configuré dans les paramètres du cluster sous Compute Resource dans Management Center est utilisé. Pour définir une session SQL différente pour une tâche spécifique, configurez ce paramètre. Pour savoir comment créer et gérer des sessions SQL, consultez la rubrique Gérer les sessions SQL Compute.

    Others

    Paramètres Spark Configuration personnalisés. Ajoutez des paramètres de propriété spécifiques à Spark.

    Format de configuration : "spark.eventLog.enabled": false. DataWorks ajoute automatiquement les paramètres au code soumis au cluster EMR au format : --conf key=value.

    Remarque

    DataWorks vous permet de configurer des paramètres Spark globaux au niveau de l'espace de travail pour chaque module DataWorks. Vous pouvez spécifier si la priorité des paramètres Spark globaux est supérieure à celle des paramètres Spark configurés au sein d'un module spécifique. Pour plus d'informations sur la configuration des paramètres Spark globaux, consultez la rubrique Configurer les paramètres Spark globaux.

    Cluster Spark : EMR on ACK

    Paramètre avancé

    Description

    FLOW_SKIP_SQL_ANALYZE

    Mode d'exécution des instructions SQL. Valeurs possibles :

    • true : plusieurs instructions SQL sont exécutées simultanément.

    • false (par défaut) : une seule instruction SQL est exécutée à la fois.

    Remarque

    Ce paramètre est pris en charge uniquement pour les exécutions de test dans l'environnement de développement de données.

    Others

    Paramètres Spark Configuration personnalisés. Ajoutez des paramètres de propriété spécifiques à Spark.

    Format de configuration : "spark.eventLog.enabled": false. DataWorks ajoute automatiquement les paramètres au code soumis au cluster EMR au format : --conf key=value.

    Remarque

    DataWorks vous permet de configurer des paramètres Spark globaux au niveau de l'espace de travail pour chaque module DataWorks. Vous pouvez spécifier si la priorité des paramètres Spark globaux est supérieure à celle des paramètres Spark configurés au sein d'un module spécifique. Pour plus d'informations sur la configuration des paramètres Spark globaux, consultez la rubrique Configurer les paramètres Spark globaux.

    Cluster Hadoop : EMR on ECS

    Paramètre avancé

    Description

    queue

    File d'attente de planification pour la soumission des jobs. La valeur par défaut est default. Pour plus d'informations 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 des instructions SQL. Valeurs possibles :

    • true : plusieurs instructions SQL sont exécutées simultanément.

    • false (par défaut) : une seule instruction SQL est exécutée à la fois.

    Remarque

    Ce paramètre est pris en charge uniquement pour les exécutions de test dans l'environnement de développement de données.

    USE_GATEWAY

    Indique si les jobs doivent être soumis via un cluster Gateway. Valeurs possibles :

    • true : les jobs sont soumis via un cluster Gateway.

    • false (par défaut) : les jobs ne sont pas soumis via un cluster Gateway. Ils sont soumis par défaut au nœud principal.

    Remarque

    Si le cluster du nœud actuel n'est pas associé à un cluster Gateway, la définition manuelle de ce paramètre sur true entraîne l'échec des soumissions de jobs EMR ultérieures.

    Others

    Paramètres Spark Configuration personnalisés. Ajoutez des paramètres de propriété spécifiques à Spark.

    Format de configuration : "spark.eventLog.enabled": false. DataWorks ajoute automatiquement les paramètres au code soumis au cluster EMR au format : --conf key=value. Pour plus d'informations sur les configurations de paramètres, consultez la rubrique Configurer les paramètres Spark globaux.

    Remarque
    • DataWorks vous permet de configurer des paramètres Spark globaux au niveau de l'espace de travail pour chaque module DataWorks. Vous pouvez spécifier si la priorité des paramètres Spark globaux est supérieure à celle des paramètres Spark configurés au sein d'un module spécifique.

    • Pour activer le contrôle d'accès Ranger, ajoutez spark.hadoop.fs.oss.authorization.method=ranger aux configurations des paramètres Spark globaux afin de garantir l'application du contrôle d'accès Ranger.

    Exécuter une tâche SQL

    1. Dans Run Configuration, sélectionnez et configurez la Compute Resource et le Resource Group.

      Remarque
      • Vous pouvez également configurer les CUs for Scheduling en fonction des ressources requises pour l'exécution de la tâche. La valeur CU par défaut est 0.25.

      • Pour accéder aux sources de données via Internet ou un VPC, utilisez un groupe de ressources pour la planification ayant réussi le test de connectivité avec la source de données. Pour plus d'informations, consultez la rubrique Configurer la connectivité réseau.

    2. Dans la boîte de dialogue des paramètres de la barre d'outils, sélectionnez la source de données correspondante et cliquez sur Run pour exécuter la tâche SQL.

    (Facultatif) Configurer les paramètres d'assignation

    Pour transmettre les résultats de la requête de ce nœud aux nœuds en aval, accédez à la section Node Context Parameters du volet Scheduling Settings situé à droite, puis cliquez sur Add Assignment Parameter. Le système ajoute automatiquement un paramètre de sortie nommé outputs. La valeur de ce paramètre correspond au résultat de la requête de la dernière ligne de code de ce nœud. Pour plus d'informations, consultez la rubrique Utiliser les paramètres de contexte de nœud.

  2. Pour exécuter la tâche de nœud périodiquement, configurez les informations de planification en fonction de vos besoins métier. Pour plus d'informations, consultez la rubrique Configurer les paramètres de planification.

    Remarque

    Si vous devez personnaliser l'environnement des composants, vous pouvez créer une image personnalisée basée sur l'image officielle dataworks_emr_base_task_pod et utiliser l'image dans le développement de données.

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

  3. Une fois la tâche de nœud configurée, vous devez la déployer. Pour plus d'informations, consultez la rubrique Déployer un nœud.

  4. Après le déploiement de la tâche, vous pouvez consulter l'état d'exécution des tâches planifiées dans Operation Center. Pour plus d'informations, consultez la rubrique Afficher les tâches planifiées.

FAQ