Partager via


Résoudre les problèmes liés à Apache Oozie dans Azure HDInsight

Avec l’interface utilisateur Apache Oozie, vous pouvez afficher les journaux Oozie. L’interface utilisateur Oozie contient également des liens vers les journaux d’activité JobTracker pour les tâches MapReduce démarrées par le workflow. Le modèle pour la résolution des problèmes doit être le suivant :

  1. Affichez le travail dans l’interface utilisateur web Oozie.

  2. En cas d’erreur ou d’échec d’une action spécifique, sélectionnez-la pour voir si le champ Message d’erreur donne plus d’informations sur l’échec.

  3. Si elle est disponible, utilisez l’URL de l’action pour afficher des détails supplémentaires (tels que les journaux d’activité JobTracker) pour l’action.

Voici des erreurs spécifiques que vous pouvez rencontrer avec une description de la marche à suivre pour les résoudre.

JA009 : impossible d’initialiser le cluster

Problème

l’état de la tâche passe à SUSPENDED (Suspendu). Les détails du travail montrent que l’état de RunHiveScript est défini sur START_MANUAL. Lorsque vous sélectionnez l’action, le message d’erreur suivant apparaît :

JA009: Cannot initialize Cluster. Please check your configuration for map

La cause

les adresses de Stockage Blob Azure utilisées dans le fichier job.xml ne contiennent pas le conteneur de stockage ou le nom du compte de stockage. Le format d’adresse de stockage blob doit être wasbs://containername@storageaccountname.blob.core.windows.net.

Résolution

changez les adresses de Stockage Blob utilisées par la tâche.


JA002 : Oozie n’est pas autorisé à emprunter l’identité <USER>

Problème

l’état de la tâche passe à SUSPENDED (Suspendu). Les détails du travail montrent que l’état de RunHiveScript est défini sur START_MANUAL. Lorsque vous sélectionnez l’action, le message d’erreur suivant s’affiche :

JA002: User: oozie is not allowed to impersonate <USER>

La cause

les paramètres d’autorisation actuels ne permettent pas à Oozie d’emprunter l’identité du compte d’utilisateur spécifié.

Résolution

oozie peut emprunter l’identité des utilisateurs du groupe users. Utilisez le groups USERNAME pour voir les groupes dont le compte d’utilisateur est membre. Si l’utilisateur n’est pas membre du groupe users, utilisez la commande suivante pour l’ajouter au groupe :

sudo adduser USERNAME users

Remarque

Il peut se passer plusieurs minutes avant que HDInsight reconnaisse que l’utilisateur a été ajouté au groupe.


Launcher ERROR (Sqoop) (Erreur du lanceur, Sqoop)

Problème

l’état de la tâche passe à KILLED (Supprimé). Les détails du travail montrent que l’état de RunSqoopExport est défini sur ERROR. Lorsque vous sélectionnez l’action, le message d’erreur suivant s’affiche :

Launcher ERROR, reason: Main class [org.apache.oozie.action.hadoop.SqoopMain], exit code [1]

La cause

Sqoop ne peut pas charger le pilote de base de données nécessaire pour accéder à la base de données.

Résolution

quand vous utilisez Sqoop à partir d’une tâche Oozie, vous devez inclure le pilote de base de données avec les autres ressources (comme workflow.xml) utilisées par la tâche. Vous devez également référencer l’archive contenant le pilote de base de données à partir de la section <sqoop>...</sqoop> de workflow.xml.

Ainsi, pour l’exemple de travail dans Utiliser des workflows Hadoop Oozie, vous utilisez les étapes suivantes :

  1. Copiez le fichier mssql-jdbc-7.0.0.jre8.jar dans le répertoire /tutorials/useoozie :

    hdfs dfs -put /usr/share/java/sqljdbc_7.0/enu/mssql-jdbc-7.0.0.jre8.jar /tutorials/useoozie/mssql-jdbc-7.0.0.jre8.jar
    
  2. Modifiez le fichier workflow.xml pour ajouter le code XML suivant sur une nouvelle ligne au-dessus de </sqoop> :

    <archive>mssql-jdbc-7.0.0.jre8.jar</archive>
    

Oozie UI – Droits d’accès utilisateur par défaut

Problème

Pour les clusters HDInsight Oozie créés, les utilisateurs disposent par défaut d’un accès en lecture à tous les travaux, d’un accès en écriture à leurs propres travaux et peuvent écrire dans des travaux basés sur des listes de contrôle d’accès. Les utilisateurs administrateurs disposent d’autorisations plus larges, notamment l’accès en écriture à tous les travaux et opérations. Dans les clusters Oozie, si la configuration de sécurité est désactivée, tous les utilisateurs sont traités en tant qu’administrateurs et les clusters HDInsight Oozie ont une configuration de sécurité désactivée par défaut.

La cause

Si la sécurité est désactivée, tous les utilisateurs sont traités comme des utilisateurs administrateurs qui sont un comportement standard dans Oozie et non spécifique à la plateforme HDInsight. Référence au même sujet disponible sur la page suivante - Oozie - Document public d'authentification de l'utilisateur

Résolution

Les utilisateurs administrateurs peuvent être définis par le biais d’une propriété spécifique. Les listes de contrôle d’accès sont définies pendant l’envoi du travail et peuvent inclure des noms d’utilisateur et des groupes. Le système vérifie si l’utilisateur appartient aux groupes nécessaires pour effectuer des actions.

Définissez cette propriété oozie.service.AuthorizationService.security.enabled=true dans Ambari

Interface utilisateur Ambari -> Services -> Oozie -> Configurations -> Avancé -> Rechercher et définir sur Vrai -> Redémarrer tous les éléments affectés

Les utilisateurs administrateurs sont déterminés à partir de la liste des groupes d’administration, spécifiés dans la propriété oozie.service.AuthorizationService.admin.groups. Utilisez des virgules pour séparer plusieurs groupes, espaces, onglets ; et les caractères ENTRÉE sont supprimés.

Étapes suivantes

Si votre problème ne figure pas dans cet article ou si vous ne parvenez pas à le résoudre, utilisez un des canaux suivants pour obtenir de l’aide :

  • Obtenez des réponses de la part d’experts Azure en faisant appel au Support de la communauté Azure.

  • Connectez-vous à @AzureSupport, le compte Microsoft Azure officiel pour améliorer l’expérience client. Connexion de la communauté Azure aux ressources appropriées : réponses, support technique et experts.

  • Si vous avez besoin d’une aide supplémentaire, vous pouvez envoyer une requête de support à partir du Portail Microsoft Azure. Sélectionnez Support dans la barre de menus, ou ouvrez le hub Aide + Support. Pour plus d’informations, consultez Création d’une demande de support Azure. L’accès au support relatif à la gestion et à la facturation des abonnements est inclus avec votre abonnement Microsoft Azure. En outre, le support technique est fourni avec l’un des plans de support Azure.

Désactivation de l'interface Web d'Oozie et options en ligne de commande comme alternative

Problème

Apache Oozie a été retiré depuis février 2025, reportez-vous au lien. Il existe des vulnérabilités connues liées à Oozie WebUI.

La cause

Pour désactiver l’interface webUI Oozie, suivez les étapes ci-dessous :

  1. Arrêtez les services Oozie depuis le portail Ambari.

  2. Modifiez /var/lib/ambari-server/resources/stacks/HDInsight/<version>/services/OOZIE/quicklinks/quicklinks.json et supprimez la valeur du <url> paramètre et remplacez par « ».

Before:

  "name": "default",
  "description": "default quick links configuration",
  "configuration": {
    "links": [
  .....
        "url":"%@://%@:%@/oozie?user.name=%@",
  .....

After:

  "name": "default",
  "description": "default quick links configuration",
  "configuration": {
    "links": [
  .....
        "url":"",
  .....
  1. Redémarrer les services Ambari
sudo ambari-services restart
  1. Démarrer les services Oozie à partir d’Ambari

Solution de contournement

Utilisez les options de ligne de commande Oozie, reportez-vous au lien.