Platforma Apache Spark w usłudze Azure Machine Learning

Integracja usługi Azure Machine Learning z usługą Azure Synapse Analytics zapewnia łatwy dostęp do rozproszonych zasobów obliczeniowych za pośrednictwem platformy Apache Spark. Ta integracja oferuje następujące środowiska obliczeniowe platformy Apache Spark:

  • Bezserwerowe obliczenia platformy Spark
  • Dołączona pula platformy Synapse Spark

Bezserwerowe obliczenia platformy Spark

W przypadku platformy Apache Spark obliczenia bezserwerowe platformy Spark w usłudze Azure Machine Learning to najprostszy sposób wykonywania zadań przetwarzania rozproszonego w środowisku usługi Azure Machine Learning. Usługa Azure Machine Learning oferuje w pełni zarządzany, bezserwerowy klaster obliczeniowy platformy Apache Spark. Jego użytkownicy mogą uniknąć konieczności tworzenia obszaru roboczego usługi Azure Synapse i puli usługi Synapse Spark.

Użytkownicy mogą definiować zasoby, w tym typ wystąpienia i wersję środowiska uruchomieniowego platformy Apache Spark. Następnie mogą używać tych zasobów do uzyskiwania dostępu do bezserwerowych zasobów obliczeniowych platformy Spark w notesach usługi Azure Machine Learning dla:

Kwestie do rozważenia

Przetwarzanie bezserwerowe platformy Spark działa dobrze w przypadku większości scenariuszy użytkownika, które wymagają szybkiego dostępu do rozproszonych zasobów obliczeniowych za pośrednictwem platformy Apache Spark. Jednak w celu podjęcia świadomej decyzji użytkownicy powinni rozważyć zalety i wady tego podejścia.

Zalety:

  • Brak zależności od tworzenia innych zasobów platformy Azure dla platformy Apache Spark (infrastruktura usługi Azure Synapse działa pod maską).
  • Brak wymaganych uprawnień subskrypcji do tworzenia zasobów związanych z usługą Azure Synapse.
  • Brak potrzeby przydziałów puli SQL.

Wady:

  • Brak trwałego magazynu metadanych Hive. Bezserwerowe obliczenia platformy Spark obsługują tylko w pamięci spark SQL.
  • Brak dostępnych tabel ani baz danych.
  • Brak integracji usługi Azure Purview.
  • Brak dostępnych połączonych usług.
  • Mniej źródeł danych i łączników.
  • Brak konfiguracji na poziomie puli.
  • Brak zarządzania bibliotekami na poziomie puli.
  • Tylko częściowa obsługa programu mssparkutils.

Konfiguracja sieci

Aby użyć izolacji sieciowej z usługą Azure Machine Learning i bezserwerowymi obliczeniami platformy Spark, użyj zarządzanej sieci wirtualnej.

Okresy braku aktywności i mechanizm usuwania

Przy pierwszym uruchomieniu zasób obliczeniowy platformy Spark bezserwerowy (zimny start) może wymagać od trzech do pięciu minut, aby uruchomić samą sesję platformy Spark. Automatyczna bezserwerowa aprowizacja zasobów obliczeniowych platformy Spark, wspierana przez usługę Azure Synapse, powoduje to opóźnienie. Po aprowizacji bezserwerowych zasobów obliczeniowych platformy Spark i rozpoczęciu sesji platformy Apache Spark kolejne wykonania kodu (ciepły start) nie będą doświadczać tego opóźnienia.

Konfiguracja sesji platformy Spark oferuje opcję, która definiuje limit czasu sesji (w minutach). Sesja platformy Spark zakończy się po okresie braku aktywności, który przekracza limit czasu zdefiniowany przez użytkownika. Jeśli kolejna sesja platformy Spark nie zostanie uruchomiona w ciągu następujących 10 minut, zasoby aprowidowane dla bezserwerowych zasobów obliczeniowych platformy Spark zostaną zburzone.

Po usunięciu bezserwerowego zasobu obliczeniowego platformy Spark przesłanie następnego zadania będzie wymagało zimnego startu. W następnej wizualizacji przedstawiono niektóre scenariusze braku aktywności sesji i usuwania klastra.

Diagram z możliwością rozwinięcia przedstawiający scenariusze okresu braku aktywności sesji platformy Apache Spark i usuwania klastra.

Pakiety Conda na poziomie sesji

Plik YAML zależności Conda może definiować wiele pakietów Conda na poziomie sesji w konfiguracji sesji. Sesja zostanie przekroczona, jeśli potrzeba więcej niż 15 minut na zainstalowanie pakietów Conda zdefiniowanych w pliku YAML. Najpierw należy sprawdzić, czy wymagany pakiet jest już dostępny w obrazie podstawowym usługi Azure Synapse. W tym celu użytkownicy powinni skorzystać z linku, aby określić pakiety dostępne w obrazie podstawowym dla używanej wersji platformy Apache Spark:

Ważne

Środowisko uruchomieniowe usługi Azure Synapse dla platformy Apache Spark: anonsy

  • Środowisko uruchomieniowe usługi Azure Synapse dla platformy Apache Spark 3.2:
    • Data ogłoszenia EOLA: 8 lipca 2023 r.
    • Data zakończenia wsparcia: 8 lipca 2024 r. Po tej dacie środowisko uruchomieniowe zostanie wyłączone.
  • Aby zapewnić ciągłą obsługę i optymalną wydajność, zalecamy przeprowadzenie migracji do programu

Uwaga

W przypadku pakietu Conda na poziomie sesji:

  • Zimny start będzie potrzebował około dziesięciu do piętnaście minut.
  • Ciepły początek, używając tego samego pakietu Conda, będzie potrzebował około jednej minuty.
  • Ciepły początek, z innym pakietem Conda, będzie również potrzebować około dziesięciu do piętnaście minut.
  • Jeśli instalowany pakiet jest duży lub wymaga długiego czasu instalacji, może to mieć wpływ na czas uruchamiania wystąpienia platformy Spark.
  • Zmiana wersji PySpark, Python, Scala/Java, .NET lub Spark nie jest obsługiwana.
  • Obrazy platformy Docker nie są obsługiwane.

Skracanie czasu zimnego uruchamiania sesji podczas korzystania z pakietów Conda na poziomie sesji

Czas zimnego rozpoczęcia sesji platformy Spark można poprawić, ustawiając zmienną spark.hadoop.aml.enable_cache konfiguracji na true. Zimny początek sesji z pakietami Conda na poziomie sesji zwykle trwa od 10 do 15 minut, gdy sesja rozpoczyna się po raz pierwszy. Jednak kolejne zimne rozpoczęcie sesji trwa od trzech do pięciu minut. Zdefiniuj zmienną konfiguracji w obszarze Konfigurowanie interfejsu użytkownika sesji w obszarze Ustawienia konfiguracji.

Diagram z możliwością rozwinięcia przedstawiający tag konfiguracji sesji platformy Spark, który umożliwia buforowanie.

Dołączona pula platformy Synapse Spark

Pula Platformy Spark utworzona w obszarze roboczym usługi Azure Synapse staje się dostępna w obszarze roboczym usługi Azure Machine Learning z dołączoną pulą platformy Synapse Spark. Ta opcja może być odpowiednia dla użytkowników, którzy chcą ponownie użyć istniejącej puli usługi Synapse Spark.

Załącznik puli platformy Synapse Spark do obszaru roboczego usługi Azure Machine Learning wymaga wykonania innych kroków , zanim będzie można użyć puli w usłudze Azure Machine Learning dla:

Dołączona pula platformy Synapse Spark zapewnia dostęp do natywnych funkcji usługi Azure Synapse. Użytkownik jest odpowiedzialny za aprowizowanie, dołączanie, konfigurowanie i zarządzanie pulą usługi Synapse Spark.

Konfiguracja sesji platformy Spark dla dołączonej puli platformy Synapse Spark oferuje również opcję zdefiniowania limitu czasu sesji (w minutach). Zachowanie limitu czasu sesji przypomina opis w poprzedniej sekcji, z tą różnicą, że skojarzone zasoby nigdy nie są rozdawane po przekroczeniu limitu czasu sesji.

Definiowanie rozmiaru klastra Spark

W zadaniach platformy Spark usługi Azure Machine Learning można zdefiniować rozmiar klastra Spark z trzema wartościami parametrów:

  • Liczba funkcji wykonawczych
  • Rdzenie funkcji wykonawczej
  • Pamięć funkcji wykonawczej

Należy rozważyć funkcję wykonawcza platformy Apache Spark usługi Azure Machine Learning jako równoważną węzłom procesu roboczego platformy Azure Spark. Przykład może wyjaśnić te parametry. Załóżmy, że zdefiniowano liczbę funkcji wykonawczych jako 6 (odpowiednik sześciu węzłów roboczych), liczbę rdzeni funkcji wykonawczej jako 4 i pamięć funkcji wykonawczej jako 28 GB. Zadanie platformy Spark ma następnie dostęp do klastra z 24 rdzeniami łącznie i 168 GB pamięci.

Zapewnianie dostępu do zasobów dla zadań platformy Spark

Aby uzyskać dostęp do danych i innych zasobów, zadanie platformy Spark może używać tożsamości zarządzanej lub przekazywania tożsamości użytkownika. W tej tabeli przedstawiono podsumowanie mechanizmów używanych przez zadania platformy Spark do uzyskiwania dostępu do zasobów.

Pula platformy Spark Obsługiwane tożsamości Tożsamość domyślna
Bezserwerowe obliczenia platformy Spark Tożsamość użytkownika, tożsamość zarządzana przypisana przez użytkownika dołączona do obszaru roboczego Tożsamość użytkownika
Dołączona pula platformy Synapse Spark Tożsamość użytkownika, tożsamość zarządzana przypisana przez użytkownika dołączona do dołączonej puli platformy Synapse Spark, przypisana przez system tożsamość zarządzana dołączonej puli usługi Synapse Spark Tożsamość zarządzana przypisana przez system dołączonej puli usługi Synapse Spark

W tym artykule opisano dostęp do zasobów dla zadań platformy Spark. W sesji notesu zarówno bezserwerowe zasoby obliczeniowe platformy Spark, jak i dołączona pula platformy Synapse Spark używają przekazywania tożsamości użytkownika w celu uzyskania dostępu do danych podczas interakcyjnego uzdatniania danych.

Uwaga

  • Aby zapewnić pomyślne wykonanie zadania platformy Spark, przypisz role Współautor i Współautor danych obiektu blob usługi Storage (na koncie usługi Azure Storage używanym na potrzeby danych wejściowych i wyjściowych) do tożsamości, która będzie używana do przesyłania zadania platformy Spark.
  • Jeśli dołączona pula usługi Synapse Spark wskazuje pulę usługi Synapse Spark w obszarze roboczym usługi Azure Synapse, a ten obszar roboczy ma skojarzoną zarządzaną sieć wirtualną, skonfiguruj zarządzany prywatny punkt końcowy na koncie magazynu. Ta konfiguracja pomoże zapewnić dostęp do danych.

Następne kroki