Udostępnij przez


Rozwiązywanie problemów z usługą Apache Oozie w usłudze Azure HDInsight

Za pomocą interfejsu użytkownika usługi Apache Oozie można wyświetlić dzienniki usługi Oozie. Interfejs użytkownika Oozie zawiera również linki do dzienników usługi JobTracker dla zadań usługi MapReduce, które zostały uruchomione przez przepływ pracy. Wzorzec rozwiązywania problemów powinien być:

  1. Wyświetl zadanie w internetowym interfejsie użytkownika usługi Oozie.

  2. Jeśli wystąpi błąd lub błąd dla określonej akcji, wybierz akcję, aby sprawdzić, czy pole Komunikat o błędzie zawiera więcej informacji na temat błędu.

  3. Jeśli jest dostępny, użyj adresu URL z akcji, aby wyświetlić więcej szczegółów, takich jak dzienniki usługi JobTracker, dla tej akcji.

Poniżej przedstawiono konkretne błędy, które można napotkać i jak je rozwiązać.

JA009: Nie można zainicjować klastra

Problem

Stan zadania zmienia się na ZAWIESZONE. Szczegóły zadania pokazują RunHiveScript status jako START_MANUAL. Wybranie akcji powoduje wyświetlenie następującego komunikatu o błędzie:

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

Przyczyna

Adresy usługi Azure Blob Storage używane w pliku job.xml nie zawierają nazwy kontenera magazynu ani konta magazynu. Format adresu usługi Blob Storage musi mieć wartość wasbs://containername@storageaccountname.blob.core.windows.net.

Rozwiązanie

Zmień adresy usługi Blob Storage używane przez zadanie.


JA002: Oozie nie może podszywać się pod <użytkownika>

Problem

Stan zadania zmienia się na ZAWIESZONE. Szczegóły zadania pokazują RunHiveScript status jako START_MANUAL. Jeśli wybierzesz akcję, zostanie wyświetlony następujący komunikat o błędzie:

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

Przyczyna

Bieżące ustawienia uprawnień nie zezwalają firmie Oozie na personifikację określonego konta użytkownika.

Rozwiązanie

Oozie może podszywać się pod użytkowników w users grupie. Użyj polecenia , groups USERNAME aby wyświetlić grupy, do których należy konto użytkownika. Jeśli użytkownik nie jest członkiem users grupy, użyj następującego polecenia, aby dodać użytkownika do grupy:

sudo adduser USERNAME users

Uwaga

Może upłynąć kilka minut, zanim usługa HDInsight rozpozna, że użytkownik został dodany do grupy.


Błąd uruchamiania (Sqoop)

Problem

Stan zadania zmieni się na KILLED. Szczegóły zadania pokazują RunSqoopExport status jako BŁĄD. Jeśli wybierzesz akcję, zostanie wyświetlony następujący komunikat o błędzie:

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

Przyczyna

Narzędzie Sqoop nie może załadować sterownika bazy danych wymaganego do uzyskania dostępu do bazy danych.

Rozwiązanie

Podczas korzystania z narzędzia Sqoop w zadaniu Oozie, należy dołączyć sterownik bazy danych razem z innymi zasobami, takimi jak workflow.xml, które są wykorzystywane przez to zadanie. Należy również odwołać się do archiwum zawierającego sterownik bazy danych z <sqoop>...</sqoop> sekcji workflow.xml.

Na przykład, dla przykładu zadania z Używanie przepływów pracy Hadoop Oozie, wykonaj następujące kroki:

  1. mssql-jdbc-7.0.0.jre8.jar Skopiuj plik do katalogu /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. Zmodyfikuj element , workflow.xml aby dodać następujący kod XML w nowym wierszu powyżej </sqoop>:

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

Interfejs użytkownika Oozie — domyślne prawa dostępu użytkownika

Problem

W przypadku utworzonych klastrów HDInsight Oozie użytkownicy domyślnie mają dostęp do odczytu do wszystkich zadań, dostęp do zapisu do własnych zadań i mogą zapisywać zadania na podstawie listy ACL. Użytkownicy administracyjni mają szersze uprawnienia, w tym uprawnienia do zapisu do wszystkich zadań i operacji. W klastrach Oozie, jeśli konfiguracja zabezpieczeń jest wyłączona, wszyscy użytkownicy są traktowani jako administratorzy, a klastry usługi HDInsight Oozie mają domyślnie wyłączoną konfigurację zabezpieczeń.

Przyczyna

Jeśli zabezpieczenia są wyłączone, wszyscy użytkownicy są traktowani jako użytkownicy administracyjni, co jest standardowym zachowaniem w usłudze Oozie, a nie specyficznym dla platformy HDInsight. Odwołanie do tego samego dostępnego na poniższej stronie Oozie — Oozie — publiczny dokument dotyczący uwierzytelniania użytkowników

Rozwiązanie

Użytkownicy administracyjni mogą być definiowani za pomocą określonej właściwości. Listy ACL są ustawiane podczas przesyłania zadania i mogą zawierać zarówno nazwy użytkowników, jak i grupy. System sprawdza, czy użytkownik należy do niezbędnych grup do wykonywania akcji.

Ustaw właściwość oozie.service.AuthorizationService.security.enabled=true w Ambari

Interfejs użytkownika systemu Ambari —> Usługi —> Oozie —> Zaawansowane —> Konfiguracje —> Wyszukaj i ustaw na True —> Uruchom ponownie wszystkie dotknięte elementy

Użytkownicy administracyjni są określani z listy grup administratorów określonych we właściwości oozie.service.AuthorizationService.admin.groups. Użyj przecinków, aby oddzielić wiele grup, a spacje, tabulatory i znaki ENTER są przycinane.

Następne kroki

Jeśli nie widzisz swojego problemu lub nie możesz go rozwiązać, odwiedź jeden z następujących kanałów, aby uzyskać więcej wsparcia.

  • Uzyskaj odpowiedzi od ekspertów platformy Azure za pośrednictwem pomocy technicznej społeczności platformy Azure.

  • Nawiąż połączenie z @AzureSupport — oficjalnym kontem platformy Microsoft Azure, aby ulepszyć środowisko klienta. Łączenie społeczności platformy Azure z odpowiednimi zasobami: odpowiedziami, pomocą techniczną i ekspertami.

  • Jeśli potrzebujesz dodatkowej pomocy, możesz przesłać wniosek o pomoc techniczną w witrynie Azure Portal. Wybierz pozycję Pomoc techniczna na pasku menu lub otwórz centrum Pomoc i obsługa techniczna . Aby uzyskać bardziej szczegółowe informacje, zobacz Jak utworzyć zgłoszenie do pomocy technicznej w Azure. Dostęp do pomocy technicznej dotyczącej zarządzania subskrypcjami i rozliczeniami jest oferowany w ramach subskrypcji platformy Microsoft Azure, a pomoc techniczna jest świadczona w ramach jednego z planów pomocy technicznej platformy Azure.

Wyłączenie interfejsu WebUI Oozie i opcji wiersza polecenia jako alternatywy

Problem

Apache Oozie został wycofany w lutym 2025 r., proszę zapoznać się z linkiem. Istnieją znane luki w zabezpieczeniach związane z Oozie WebUI.

Przyczyna

Aby wyłączyć interfejs WebUI usługi Oozie, wykonaj poniższe kroki:

  1. Zatrzymaj usługi Oozie z portalu Ambari.

  2. Edytuj /var/lib/ambari-server/resources/stacks/HDInsight</version>/services/OOZIE/quicklinks/quicklinks.json i usuń wartość parametru <url> i zastąp ją "".

Przed:

  "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. Ponowne uruchamianie usług Ambari
sudo ambari-services restart
  1. Uruchamianie usług Oozie z systemu Ambari

Rozwiązanie

Aby skorzystać z opcji wiersza polecenia Oozie, zapoznaj się z linkiem.