Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten dokument śledzi wszystkie znane problemy dotyczące publicznej wersji zapoznawczej platformy Spark w usłudze HDInsight.
Interakcyjna sesja usługi Apache Livy wycieka
Po ponownym uruchomieniu Apache Livy (z Apache Ambari lub z powodu restartu maszyny wirtualnej z węzłem głównym 0), kiedy sesja interaktywna nadal działa, dochodzi do wycieku sesji zadań. W związku z tym nowe zadania mogą utknąć w stanie Zaakceptowane.
Łagodzenie:
Aby obejść ten problem, wykonaj następującą procedurę:
Połączenie SSH z węzłem głównym. Aby uzyskać informacje, zobacz Używanie protokołu SSH w usłudze HDInsight.
Uruchom następujące polecenie, aby znaleźć identyfikatory aplikacji zadań interaktywnych uruchomionych za pośrednictwem usługi Livy.
yarn application –list
Domyślne nazwy zadań będą ustawione na Livy, jeśli zadania zostały uruchomione w interaktywnej sesji Livy bez jawnie określonych nazw. W przypadku sesji Livy rozpoczętej przez Jupyter Notebook, nazwa zadania zaczyna się od
remotesparkmagics_*
.Uruchom następujące polecenie, aby zakończyć te zadania.
yarn application –kill <Application ID>
Nowe zadania startują.
Serwer historii platformy Spark nie został uruchomiony
Serwer historii platformy Spark nie jest uruchamiany automatycznie po utworzeniu klastra.
Łagodzenie:
Ręcznie uruchom serwer historii z systemu Ambari.
Problem z uprawnieniami w katalogu dziennika platformy Spark
Podczas przesyłania zadania przy użyciu funkcji spark-submit użytkownik hdiuser otrzymuje następujący błąd:
java.io.FileNotFoundException: /var/log/spark/sparkdriver_hdiuser.log (Permission denied)
Żaden dziennik sterownika nie jest zapisywany.
Łagodzenie:
- Dodaj użytkownika hdiuser do grupy hadoop.
- Po utworzeniu klastra podaj 777 uprawnień do /var/log/spark.
- Zaktualizuj lokalizację dziennika Spark za pomocą narzędzia Ambari do katalogu z uprawnieniami 777.
- Uruchom polecenie spark-submit z uprawnieniami sudo.
łącznik Spark-Phoenix nie jest obsługiwany
Klastry HDInsight Spark nie obsługują łącznika Spark-Phoenix.
Łagodzenie:
Należy zamiast tego użyć łącznika Spark-HBase. Aby uzyskać instrukcje, zobacz How to use Spark-HBase connector (Jak używać łącznika Spark-HBase).
Problemy związane z notesami Jupyter
Poniżej przedstawiono niektóre znane problemy związane z notesami Jupyter.
Notesy z znakami innych niż ASCII w nazwach plików
Nie używaj znaków innych niż ASCII w nazwach plików notesu Jupyter Notebook. Jeśli spróbujesz przekazać plik za pośrednictwem interfejsu użytkownika programu Jupyter, który ma nazwę inną niż ASCII, nie powiedzie się bez żadnego komunikatu o błędzie. Program Jupyter nie umożliwia przekazania pliku, ale nie zgłasza widocznego błędu.
Błąd podczas ładowania notesów o większych rozmiarach
Podczas ładowania notesów o większym rozmiarze może wystąpić błąd Error loading notebook
.
Łagodzenie:
Jeśli wystąpi ten błąd, nie oznacza to, że dane są uszkodzone lub utracone. Notatniki nadal znajdują się na dysku w /var/lib/jupyter
, i możesz połączyć się z klastrem przez SSH, aby uzyskać do nich dostęp. Aby uzyskać informacje, zobacz Używanie protokołu SSH w usłudze HDInsight.
Po nawiązaniu połączenia z klastrem przy użyciu protokołu SSH możesz skopiować notesy z klastra na komputer lokalny (przy użyciu scp lub WinSCP) jako kopię zapasową, aby zapobiec utracie jakichkolwiek ważnych danych w notesie. Następnie możesz utworzyć tunel SSH do węzła głównego na porcie 8001, aby uzyskać dostęp do Jupyter Notebook bez przechodzenia przez bramę. Tutaj możesz wyczyścić dane wyjściowe notatnika i zapisać je ponownie, aby zmniejszyć jego rozmiar.
Aby zapobiec wystąpieniu tego błędu w przyszłości, należy postępować zgodnie z najlepszymi rozwiązaniami:
- Ważne jest, aby rozmiar notesu był niewielki. Wszystkie dane wyjściowe z zadań platformy Spark, które są wysyłane z powrotem do programu Jupyter, są utrwalane w notesie. Najlepszym rozwiązaniem w przypadku programu Jupyter jest unikanie uruchamiania na dużej ramce danych lub dużym RDD. Zamiast tego, jeśli chcesz zajrzeć do zawartości RDD, rozważ uruchomienie
.collect()
.take()
lub.sample()
, tak aby dane wyjściowe nie były zbyt duże. - Ponadto podczas zapisywania notatnika wyczyść wszystkie komórki wyjściowe, aby zmniejszyć rozmiar.
Początkowe uruchamianie laptopa trwa dłużej niż oczekiwano
Pierwsze polecenie kodu w Jupyter Notebook używające Spark magic może potrwać więcej niż minutę.
Wyjaśnienie:
Dzieje się tak przy uruchamianiu pierwszej komórki kodu. W tle to inicjuje konfigurację sesji, a konteksty Spark, SQL i Hive są ustawione. Po ustawieniu tych kontekstów pierwsza instrukcja jest uruchamiana i sprawia wrażenie, że ukończenie instrukcji zajęło dużo czasu.
Przekroczenie czasu Jupyter Notebook przy tworzeniu sesji
Gdy klaster Spark wyczerpie zasoby, jądra programu Spark i PySpark w Jupyter Notebook wystąpi czas oczekiwania próbując utworzyć sesję.
Środki zaradcze:
Zwolnij niektóre zasoby w klastrze Spark, wykonując następujące działania:
- Zatrzymanie innych notesów platformy Spark przez przejście do menu Zamknij i Zatrzymaj lub kliknięcie pozycji Zamknij w eksploratorze notesów.
- Zatrzymywanie innych aplikacji Platformy Spark z usługi YARN.
Uruchom ponownie notebook, który próbujesz uruchomić. Wystarczająca ilość zasobów powinna być dostępna do utworzenia sesji.
Zobacz też
Scenariusze
- Platforma Apache Spark z usługą BI: wykonywanie interaktywnej analizy danych przy użyciu platformy Spark w usłudze HDInsight z narzędziami analizy biznesowej
- Platforma Apache Spark z usługą Machine Learning: używanie platformy Spark w usłudze HDInsight do analizowania temperatury budynku przy użyciu danych HVAC
- Platforma Apache Spark z usługą Machine Learning: przewidywanie wyników inspekcji żywności przy użyciu platformy Spark w usłudze HDInsight
- Analiza dzienników witryn internetowych przy użyciu platformy Apache Spark w usłudze HDInsight
Tworzenie i uruchamianie aplikacji
- Tworzenie autonomicznych aplikacji przy użyciu języka Scala
- Zdalne uruchamianie zadań w klastrze Apache Spark przy użyciu programu Apache Livy
Narzędzia i rozszerzenia
- Tworzenie i przesyłanie aplikacji Spark Scala przy użyciu dodatku HDInsight Tools Plugin for IntelliJ IDEA
- Zdalne debugowanie aplikacji Platformy Apache Spark za pomocą wtyczki HDInsight Tools dla środowiska IntelliJ IDEA
- Korzystanie z notatników Apache Zeppelin z klastrem Apache Spark na platformie HDInsight
- Jądra dostępne w notebooku Jupyter w klastrze Apache Spark dla usługi HDInsight
- Używanie pakietów zewnętrznych z notebookami Jupyter
- Zainstaluj Jupyter na swoim komputerze i połącz się z klastrem Spark w HDInsight