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_podet utilisez l'image dans DataStudio.Par exemple, vous pouvez remplacer un package JAR Spark ou dépendre de
libraries,filesouJAR packagesspé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
-
Connectez-vous à la console DataWorks. Dans la région cible, cliquez sur 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.
-
Créez un nœud EMR Spark SQL.
-
Cliquez avec le bouton droit de la souris sur le flux métier cible et choisissez .
RemarqueVous pouvez également survoler Create et choisir .
-
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.
RemarqueLe 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.
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 :
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 :
|
|
DATAWORKS_SESSION_DISABLE |
Ce paramètre s'applique uniquement aux tests dans l'environnement de développement. Valeurs possibles :
Remarque
Lorsque ce paramètre est défini sur |
|
Autre |
Ajoutez des paramètres Spark Configuration personnalisés. Utilisez le format suivant : Remarque
|
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 :
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.
|
|
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_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
|
|
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 : 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.
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 :
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 : 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 :
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 :
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 |
|
Autre |
Ajoutez des paramètres Spark Configuration personnalisés. Utilisez le format suivant : Remarque
|
Exécuter la tâche
-
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.RemarquePour 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.
Cliquez sur l’icône Enregistrer
pour enregistrer les instructions SQL.-
(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.
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_podet utilisez-la dans DataStudio.Par exemple, vous pouvez remplacer les packages JAR Spark ou inclure des
libraries, desfilesou desJAR packagesspé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.
Cliquez sur l’icône
dans la barre d’outils supérieure pour enregistrer la tâche.-
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.
RemarqueVous 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
Avant de soumettre une tâche EMR Spark SQL à SQL Compute depuis Data Development, vérifiez que la session SQL Compute est dans l’état Running. Sinon, la tâche échouera. Pour savoir comment vérifier l’état, consultez la rubrique Manage SQL Compute sessions.