Instalowanie bibliotek z magazynu obiektów

W tym artykule przedstawiono kroki wymagane do zainstalowania bibliotek z magazynu obiektów w chmurze w usłudze Azure Databricks.

Uwaga

W tym artykule opisano magazyn obiektów w chmurze jako ogólną koncepcję i przyjęto założenie, że bezpośrednio wchodzisz w interakcję z danymi przechowywanymi w magazynie obiektów przy użyciu identyfikatorów URI. Usługa Databricks zaleca używanie woluminów wykazu aparatu Unity do konfigurowania dostępu do plików w magazynie obiektów w chmurze. Zobacz Tworzenie woluminów i praca z nimi.

Niestandardowe biblioteki JAR i Python Whl można przechowywać w magazynie obiektów w chmurze, zamiast przechowywać je w katalogu głównym systemu plików DBFS. Zobacz Biblioteki o zakresie klastra, aby uzyskać szczegółowe informacje o zgodności biblioteki.

Ważne

Biblioteki można instalować z systemu plików DBFS podczas korzystania z środowiska Databricks Runtime 14.3 LTS i poniżej. Jednak każdy użytkownik obszaru roboczego może modyfikować pliki biblioteki przechowywane w systemie plików DBFS. Aby zwiększyć bezpieczeństwo bibliotek w obszarze roboczym usługi Azure Databricks, przechowywanie plików bibliotek w katalogu głównym systemu plików DBFS jest domyślnie przestarzałe i wyłączone w środowisku Databricks Runtime 15.0 lub nowszym. Zobacz Przechowywanie bibliotek w katalogu głównym systemu plików DBFS jest domyślnie przestarzałe i wyłączone.

Zamiast tego usługa Databricks zaleca przekazywanie wszystkich bibliotek, w tym bibliotek języka Python, plików JAR i łączników platformy Spark, do plików obszaru roboczego lub woluminów wykazu aparatu Unity lub przy użyciu repozytoriów pakietów biblioteki. Jeśli obciążenie nie obsługuje tych wzorców, możesz również użyć bibliotek przechowywanych w magazynie obiektów w chmurze.

Ładowanie bibliotek do magazynu obiektów

Biblioteki można załadować do magazynu obiektów w taki sam sposób, jak w przypadku ładowania innych plików. Aby utworzyć nowe kontenery magazynu obiektów lub załadować pliki do magazynu obiektów w chmurze, musisz mieć odpowiednie uprawnienia w dostawcy usług w chmurze.

Udzielanie uprawnień tylko do odczytu do magazynu obiektów

Usługa Databricks zaleca skonfigurowanie wszystkich uprawnień związanych z instalacją biblioteki z uprawnieniami tylko do odczytu.

Usługa Azure Databricks umożliwia przypisywanie uprawnień zabezpieczeń do poszczególnych klastrów, które zarządzają dostępem do danych w magazynie obiektów w chmurze. Te zasady można rozszerzyć, aby dodać dostęp tylko do odczytu do magazynu obiektów w chmurze, który zawiera biblioteki.

Uwaga

W środowisku Databricks Runtime 12.2 LTS i poniżej nie można załadować bibliotek JAR podczas korzystania z klastrów z trybami dostępu współdzielonego. W środowisku Databricks Runtime 13.3 LTS lub nowszym należy dodać biblioteki JAR do listy dozwolonych wykazu aparatu Unity. Zobacz Allowlist libraries and init scripts on shared compute (Biblioteki dozwolonych i skrypty inicjowania w udostępnionych obliczeniach).

Usługa Databricks zaleca używanie jednostek usługi Microsoft Entra ID do zarządzania dostępem do bibliotek przechowywanych w usłudze Azure Data Lake Storage Gen2. Aby ukończyć tę konfigurację, użyj następującej połączonej dokumentacji:

  1. Utwórz jednostkę usługi z uprawnieniami do odczytu i listy dla żądanych obiektów blob. Zobacz Access storage using a service principle and Microsoft Entra ID(Azure Active Directory)(Uzyskiwanie dostępu do magazynu przy użyciu jednostki usługi i microsoft Entra ID(Azure Active Directory).

  2. Zapisz poświadczenia przy użyciu wpisów tajnych. Zobacz Wpisy tajne.

  3. Ustaw właściwości w konfiguracji platformy Spark i zmiennych środowiskowych podczas tworzenia klastra, jak w poniższym przykładzie:

    Konfiguracja platformy Spark:

    spark.hadoop.fs.azure.account.auth.type.<storage-account>.dfs.core.windows.net OAuth
    spark.hadoop.fs.azure.account.oauth.provider.type.<storage-account>.dfs.core.windows.net org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider
    spark.hadoop.fs.azure.account.oauth2.client.id.<storage-account>.dfs.core.windows.net <application-id>
    spark.hadoop.fs.azure.account.oauth2.client.secret.<storage-account>.dfs.core.windows.net {{secrets/<secret-scope>/<service-credential-key>}}
    spark.hadoop.fs.azure.account.oauth2.client.endpoint.<storage-account>.dfs.core.windows.net https://login.microsoftonline.com/<tenant-id>/oauth2/token
    

    Zmienne środowiskowe:

    SERVICE_CREDENTIAL={{secrets/<secret-scope>/<service-credential-key>}}
    
  4. (Opcjonalnie) Refaktoryzacja skryptów inicjowania przy użyciu narzędzia azcopy lub interfejsu wiersza polecenia platformy Azure.

    Zmienne środowiskowe ustawione podczas konfigurowania klastra w skryptach inicjowania można odwoływać się do przekazywania poświadczeń przechowywanych jako wpisy tajne do weryfikacji.

Instalowanie bibliotek w klastrach

Aby zainstalować bibliotekę przechowywaną w magazynie obiektów w chmurze w klastrze, wykonaj następujące kroki:

  1. Wybierz klaster z listy w interfejsie użytkownika klastrów.
  2. Wybierz kartę Biblioteki .
  3. Wybierz opcję Ścieżka pliku/ADLS.
  4. Podaj pełną ścieżkę identyfikatora URI do obiektu biblioteki (na przykład abfss://container-name@storage-account-name.dfs.core.windows.net/path/to/library.whl).
  5. Kliknij przycisk Zainstaluj.

Biblioteki można również zainstalować przy użyciu interfejsu API REST lub interfejsu wiersza polecenia.

Instalowanie bibliotek w notesach

Można użyć %pip polecenia , aby zainstalować niestandardowe pliki wheel języka Python przechowywane w magazynie obiektów o określonym zakresie do izolowanej notesu platformy SparkSession. Aby użyć tej metody, należy przechowywać biblioteki w magazynie obiektów czytelnych publicznie lub użyć wstępnie podpisanego adresu URL.

Zobacz Biblioteki języka Python o zakresie notesu.

Uwaga

Nie można zainstalować bibliotek JAR w notesie. Biblioteki JAR należy zainstalować na poziomie klastra.