Créez un nœud E-MapReduce (EMR) Hive pour utiliser des instructions de type SQL afin de lire, écrire et gérer de grands ensembles de données stockés dans des systèmes distribués. Cette solution est idéale pour analyser des volumes massifs de journaux et réaliser les travaux de développement associés.
Prérequis
Un cluster Alibaba Cloud EMR est créé et enregistré dans DataWorks. Pour plus d'informations, consultez la rubrique Data Studio (legacy): Register an EMR cluster.
(Si vous utilisez un utilisateur RAM pour développer des tâches) L'utilisateur RAM est ajouté en tant que membre à l'espace de travail DataWorks et le rôle Develop ou Workspace Administrator lui est attribué. Le rôle Workspace Administrator dispose de plus d'autorisations que nécessaire. Faites preuve de prudence lors de l'attribution de ce rôle. Pour savoir comment ajouter un membre, consultez la rubrique Add members to a workspace.
Un groupe de ressources serverless est acheté et configuré. La configuration inclut l'association à un espace de travail et la configuration réseau. Pour plus d'informations, consultez la rubrique Create and use a serverless resource group.
-
Un workflow est créé dans DataStudio.
Les opérations de développement sur différents moteurs de calcul s'effectuent à partir de workflows dans DataStudio. Par conséquent, créez un workflow avant de créer un nœud. Pour plus d'informations, consultez la rubrique Create a workflow.
Limites
Les nœuds EMR Hive s'exécutent uniquement sur un groupe de ressources serverless (recommandé) ou sur un groupe de ressources exclusif pour la planification.
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, montrer la lignée des données ni exécuter les tâches de gouvernance liées à EMR. Pour obtenir des instructions, consultez la rubrique Configure the EMR-HOOK for Hive.
Étape 1 : Créer un nœud EMR Hive
-
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 Hive.
-
Cliquez avec le bouton droit sur le workflow cible et choisissez .
RemarqueVous pouvez également survoler Create et choisir .
-
Dans la boîte de dialogue Create Node , saisissez un Name et sélectionnez une Engine Instance , un Node Type et un Path . Cliquez sur Confirm pour ouvrir la page d'édition du 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 EMR Hive
Sur la page d'édition du nœud EMR Hive, double-cliquez sur le nœud créé pour ouvrir la page de développement de la tâche. Suivez ensuite les étapes ci-dessous.
Rédiger le code SQL
Dans l'éditeur SQL, rédigez le code de la tâche. Définissez des variables dans le code au format ${nom_variable} et attribuez-leur des valeurs dans la section Scheduling > Scheduling Parameter du panneau de droite. Cela permet le passage dynamique de paramètres pour les exécutions planifiées. Pour plus d'informations sur les formats pris en charge, consultez la rubrique Supported formats for scheduling parameters. L'exemple de code suivant illustre cette procédure :
show tables;
select '${var}'; -- You can use this with scheduling parameters.
select * from userinfo;
La taille totale des instructions SQL ne doit pas dépasser 130 Ko.
Si plusieurs moteurs de calcul EMR sont associés à votre espace de travail dans DataStudio, sélectionnez le moteur de calcul approprié en fonction de vos besoins métier. Si un seul moteur de calcul EMR est associé, aucune sélection n'est nécessaire.
Pour modifier les attributions de paramètres dans votre code, cliquez sur Advanced Run dans la barre d'outils. Pour plus d'informations sur la logique d'attribution des paramètres, consultez la rubrique Differences in parameter assignment logic among Run, Run with Parameters, and smoke testing.
(Facultatif) Configurer les paramètres avancés
Configurez les propriétés spécifiques au nœud dans la section Advanced Settings. Pour plus d'informations sur les paramètres disponibles, consultez la documentation Spark Configuration. Les paramètres avancés disponibles varient selon le type de cluster EMR, comme indiqué dans les tableaux suivants.
Clusters DataLake et personnalisés
|
Paramètre |
Description |
|
queue |
File d'attente de planification pour la soumission des tâches. La file d'attente par défaut est default. Pour plus d'informations sur YARN dans E-MapReduce, consultez Basic queue configurations. |
|
priority |
Spécifie la priorité de la tâche. La valeur par défaut est 1. |
|
FLOW_SKIP_SQL_ANALYZE |
Contrôle la manière dont les instructions SQL sont exécutées. Valeurs possibles :
Remarque
Ce paramètre est disponible uniquement pour les tests de workflow dans l'environnement de développement. |
|
DATAWORKS_SESSION_DISABLE |
S'applique aux tests directs dans l'environnement de développement. Valeurs possibles :
Remarque
Lorsque ce paramètre est défini sur |
|
Autres |
Vous pouvez également ajouter des paramètres de connexion Hive personnalisés dans les paramètres avancés. |
Cluster Hadoop
|
Paramètre |
Description |
|
queue |
File d'attente de planification pour la soumission des tâches. La file d'attente par défaut est default. Pour plus d'informations sur YARN dans E-MapReduce, consultez Basic queue configurations. |
|
priority |
Spécifie la priorité de la tâche. La valeur par défaut est 1. |
|
FLOW_SKIP_SQL_ANALYZE |
Contrôle la manière dont les instructions SQL sont exécutées. Valeurs possibles :
Remarque
Ce paramètre est disponible uniquement pour les tests de workflow dans l'environnement de développement. |
|
USE_GATEWAY |
Indique si les tâches de ce nœud doivent être soumises via un cluster gateway. Valeurs possibles :
Remarque
Si le cluster du nœud n'est pas associé à un cluster gateway, la définition de ce paramètre sur |
Exécuter la tâche SQL
-
Dans la barre d'outils, cliquez sur l'icône
. Dans la boîte de dialogue Parameter , sélectionnez le groupe de ressources de planification créé et cliquez sur Running .RemarquePour accéder à un moteur de calcul sur Internet public ou dans un VPC, utilisez un groupe de ressources de planification capable de se connecter à ce moteur. Pour plus d'informations, consultez la rubrique Network connection solutions.
Pour basculer vers un autre groupe de ressources pour les exécutions suivantes, cliquez sur l'icône Run with Parameters
et sélectionnez un autre groupe de ressources de planification.Lorsque vous interrogez des données à l'aide d'un nœud EMR Hive, les résultats de la requête sont limités à 10 000 enregistrements et à une taille totale de 10 Mo.
Cliquez sur l'icône
pour enregistrer les instructions SQL.-
(Facultatif) Effectuez un test de fumée.
Si vous souhaitez effectuer un test de fumée dans l'environnement de développement, exécutez-le avant ou après avoir soumis le nœud. Pour plus d'informations, consultez la rubrique Perform smoke testing.
Étape 3 : Configurer les propriétés de 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 de droite 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 paramètres Rerun et Parent Nodes dans l'onglet Properties avant de valider la tâche.
Étape 4 : Déployer la tâche
Une fois la tâche d'un nœud configurée, validez-la et déployez-la. 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 . Déterminez ensuite 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.
Vous pouvez utiliser la fonctionnalité de révision du code pour garantir la qualité du code des tâches et prévenir les erreurs d'exécution dues à un code de tâche non valide. Si vous activez la fonctionnalité de révision du code, le code de la tâche validé ne peut être déployé qu'après avoir passé la révision du code. Pour plus d'informations, consultez la rubrique Code review.
Si vous utilisez un espace de travail en mode standard, déployez 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 le coin supérieur droit de l'onglet de configuration du nœud. Pour plus d'informations, consultez la rubrique Deploy a node.
Opérations supplémentaires
Après validation et déploiement de la tâche, celle-ci s'exécute périodiquement selon les configurations de planification. Cliquez sur Operation Center dans le coin 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
Q : Pourquoi une erreur de délai de connexion (ConnectException) se produit-elle lors de l'exécution d'un nœud ?
EMR execute task failed!
SQL: {"name":"dw20251018","type":"HIVE_SQL","launcher":{"allocationSpec":{}},"properties":{"envs":{"FLOW_SKIP_SQL_ANALYZE":false},"arguments":["select * from default.dim_customers"],"tags":[],"description":"DataWorks"}}
TASK-MESSAGE:
FAILED: Build connection error! Could not open client transport with JDBC Uri: jdbc:hive2://xxx:10000: java.net.ConnectException: Connection timed out
R : Assurez-vous que le groupe de ressources et le cluster peuvent se connecter entre eux via le réseau. Accédez à la liste des ressources de calcul et cliquez sur Resource Initialization. Dans la boîte de dialogue qui s'affiche, cliquez sur Re-initialize . Vérifiez que l'initialisation a réussi.