Problembehandlung für Apache Oozie in Azure HDInsight
Mithilfe der Apache Oozie-Benutzeroberfläche können Sie die Oozie-Protokolle anzeigen. Die Oozie-Benutzeroberfläche enthält darüber hinaus Links zu den JobTracker-Protokollen für die MapReduce-Aufgaben, die vom Workflow gestartet werden. Im Allgemeinen sollten Sie zur Problembehandlung wie folgt vorgehen:
Zeigen Sie den Auftrag auf der Oozie-Webbenutzeroberfläche an.
Wenn eine bestimmte Aktion nicht erfolgreich war, wählen Sie die Aktion aus, um festzustellen, ob das Feld Fehlermeldung weitere Informationen zum Fehler enthält.
Falls verfügbar, verwenden Sie die URL der Aktion, um weitere Details (z.B. JobTracker-Protokolle) für die Aktion anzuzeigen.
Im Folgenden sehen Sie Fehlermeldungen, die auftreten können, und Möglichkeiten zur Behebung.
JA009: Cluster kann nicht initialisiert werden
Problem
Der Auftragsstatus ändert sich in SUSPENDED. In den Auftragsdetails wird der Status von RunHiveScript
als START_MANUAL angezeigt. Bei Auswahl der Aktion wird die folgende Fehlermeldung angezeigt:
JA009: Cannot initialize Cluster. Please check your configuration for map
Ursache
Die in der Datei job.xml verwendeten Azure-Blobspeicheradressen enthalten nicht den Namen des Speichercontainers oder des Speicherkontos. Das Format der Blob-Speicheradresse muss wasbs://containername@storageaccountname.blob.core.windows.net
sein.
Lösung
Ändern Sie die Blobspeicheradressen für den Auftrag.
JA002: Oozie darf die Identität von <USER> nicht annehmen
Problem
Der Auftragsstatus ändert sich in SUSPENDED. In den Auftragsdetails wird der Status von RunHiveScript
als START_MANUAL angezeigt. Wenn Sie die Aktion auswählen, wird die folgende Fehlermeldung angezeigt:
JA002: User: oozie is not allowed to impersonate <USER>
Ursache
Die aktuellen Berechtigungseinstellungen lassen nicht zu, dass Oozie die Identität des angegebenen Benutzerkontos annimmt.
Lösung
Oozie kann die Identität von Benutzern in der Gruppe users
annehmen. Verwenden Sie groups USERNAME
, um die Gruppen anzuzeigen, denen das Benutzerkonto als Mitglied angehört. Wenn der Benutzer nicht Mitglied der Gruppe users
ist, verwenden Sie den folgenden Befehl, um den Benutzer der Gruppe hinzuzufügen:
sudo adduser USERNAME users
Hinweis
Es kann einige Minuten dauern, bis HDInsight erkennt, dass der Benutzer der Gruppe hinzugefügt wurde.
Launcher ERROR (Sqoop)
Problem
Der Auftragsstatus ändert sich in KILLED. In den Auftragsdetails wird der Status von RunSqoopExport
als ERROR (Fehler) angezeigt. Wenn Sie die Aktion auswählen, wird die folgende Fehlermeldung angezeigt:
Launcher ERROR, reason: Main class [org.apache.oozie.action.hadoop.SqoopMain], exit code [1]
Ursache
Sqoop kann den Datenbanktreiber nicht laden, der für den Zugriff auf die Datenbank erforderlich ist.
Lösung
Bei Verwendung von Sqoop in einem Oozie-Auftrag müssen Sie den Datenbanktreiber zusammen mit den anderen vom Auftrag verwendeten Ressourcen (beispielsweise die Datei „workflow.xml“) angeben. Verweisen Sie im Abschnitt <sqoop>...</sqoop>
von „workflow.xml“ auf das Archiv mit dem Datenbanktreiber.
Für das Auftragsbeispiel aus Verwenden von Hadoop Oozie-Workflows würden Sie z. B. die folgenden Schritte verwenden:
Kopieren Sie die Datei
mssql-jdbc-7.0.0.jre8.jar
in das Verzeichnis /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
Ändern Sie die Datei
workflow.xml
, indem Sie den folgenden XML-Code einer neuen Zeile oberhalb von</sqoop>
hinzufügen:<archive>mssql-jdbc-7.0.0.jre8.jar</archive>
Nächste Schritte
Wenn Ihr Problem nicht aufgeführt ist oder Sie es nicht lösen können, besuchen Sie einen der folgenden Kanäle, um weitere Unterstützung zu erhalten:
Nutzen Sie den Azure-Communitysupport, um Antworten von Azure-Experten zu erhalten.
Setzen Sie sich mit @AzureSupport in Verbindung, dem offiziellen Microsoft Azure-Konto zum Verbessern der Kundenfreundlichkeit. Verbinden der Azure-Community mit den richtigen Ressourcen: Antworten, Support und Experten.
Sollten Sie weitere Unterstützung benötigen, senden Sie eine Supportanfrage über das Azure-Portal. Wählen Sie dazu auf der Menüleiste die Option Support aus, oder öffnen Sie den Hub Hilfe und Support. Ausführlichere Informationen hierzu finden Sie unter Erstellen einer Azure-Supportanfrage. Zugang zu Abonnementverwaltung und Abrechnungssupport ist in Ihrem Microsoft Azure-Abonnement enthalten. Technischer Support wird über einen Azure-Supportplan bereitgestellt.