Instalowanie magazynu obiektów w chmurze w usłudze Azure Databricks

Usługa Azure Databricks umożliwia użytkownikom instalowanie magazynu obiektów w chmurze w systemie plików usługi Databricks (DBFS), aby uprościć wzorce dostępu do danych dla użytkowników, którzy nie sąznajomieni z pojęciami dotyczącymi chmury. Zainstalowane dane nie działają z wykazem aparatu Unity, a usługa Databricks zaleca migrację z dala od używania instalacji i zamiast zarządzania ładem danych za pomocą wykazu aparatu Unity.

W jaki sposób usługa Azure Databricks instaluje magazyn obiektów w chmurze?

Instalacja usługi Azure Databricks tworzy połączenie między obszarem roboczym i magazynem obiektów w chmurze, co umożliwia interakcję z magazynem obiektów w chmurze przy użyciu znanych ścieżek plików względem systemu plików usługi Databricks. Instalacja działa przez utworzenie aliasu lokalnego w /mnt katalogu, który przechowuje następujące informacje:

  • Lokalizacja magazynu obiektów w chmurze.
  • Specyfikacje sterowników dotyczące nawiązywania połączenia z kontem magazynu lub kontenerem.
  • Poświadczenia zabezpieczeń wymagane do uzyskania dostępu do danych.

Jaka jest składnia instalowania magazynu?

Określa source identyfikator URI magazynu obiektów (i może opcjonalnie kodować poświadczenia zabezpieczeń). Parametr mount_point określa ścieżkę lokalną /mnt w katalogu. Niektóre źródła magazynu obiektów obsługują opcjonalny encryption_type argument. W przypadku niektórych wzorców dostępu można przekazać dodatkowe specyfikacje konfiguracji jako słownik do .extra_configs

Uwaga

Usługa Databricks zaleca ustawienie konfiguracji platformy Spark specyficznej dla instalacji i usługi Hadoop jako opcji przy użyciu polecenia extra_configs. Dzięki temu konfiguracje są powiązane z instalacją, a nie z klastrem lub sesją.

dbutils.fs.mount(
  source: str,
  mount_point: str,
  encryption_type: Optional[str] = "",
  extra_configs: Optional[dict[str:str]] = None
)

Przed skonfigurowaniem lub zmianą instalacji danych należy zapoznać się z obszarem roboczym i administratorami chmury, ponieważ niewłaściwa konfiguracja może zapewnić niezabezpieczony dostęp wszystkim użytkownikom w obszarze roboczym.

Uwaga

Oprócz metod opisanych w tym artykule można zautomatyzować instalowanie zasobnika za pomocą dostawcy narzędzia Terraform usługi Databricks i databricks_mount.

Odinstalowywanie punktu instalacji

Aby odinstalować punkt instalacji, użyj następującego polecenia:

dbutils.fs.unmount("/mnt/<mount-name>")

Ostrzeżenie

Aby uniknąć błędów, nigdy nie modyfikuj punktu instalacji, podczas gdy inne zadania odczytują lub zapisują w nim. Po zmodyfikowaniu instalacji zawsze uruchamiaj na dbutils.fs.refreshMounts() wszystkich innych uruchomionych klastrach, aby propagować wszystkie aktualizacje instalacji. Zobacz polecenie refreshMounts (dbutils.fs.refreshMounts).

Instalowanie usługi ADLS Gen2 lub usługi Blob Storage przy użyciu systemu ABFS

Dane można zainstalować na koncie usługi Azure Storage przy użyciu jednostki usługi aplikacji Microsoft Entra ID (dawniej Azure Active Directory) na potrzeby uwierzytelniania. Aby uzyskać więcej informacji, 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).

Ważne

  • Wszyscy użytkownicy w obszarze roboczym usługi Azure Databricks mają dostęp do zainstalowanego konta usługi ADLS Gen2. Jednostka usługi używana do uzyskiwania dostępu do konta usługi ADLS Gen2 powinna mieć dostęp tylko do tego konta usługi ADLS Gen2; nie należy udzielać dostępu do innych zasobów platformy Azure.
  • Podczas tworzenia punktu instalacji za pośrednictwem klastra użytkownicy klastra mogą natychmiast uzyskiwać dostęp do punktu instalacji. Aby użyć punktu instalacji w innym uruchomionym klastrze, musisz uruchomić polecenie dbutils.fs.refreshMounts() w tym uruchomionym klastrze w celu udostępnienia nowo utworzonego punktu instalacji do użycia.
  • Odinstalowywanie punktu instalacji podczas uruchamiania zadań może prowadzić do błędów. Upewnij się, że zadania produkcyjne nie odinstalowują magazynu w ramach przetwarzania.
  • Punkty instalacji korzystające z kluczy tajnych nie są automatycznie odświeżane. Jeśli zainstalowany magazyn opiera się na rotowanym wpisie tajnym, wygaśnięciu lub usunięciu, mogą wystąpić błędy, takie jak 401 Unauthorized. Aby rozwiązać ten błąd, należy odinstalować i ponownie zainstalować magazyn.
  • Hierarchiczna przestrzeń nazw (HNS) musi być włączona, aby pomyślnie zainstalować konto magazynu usługi Azure Data Lake Storage Gen2 przy użyciu punktu końcowego ABFS.

Uruchom następujące polecenie w notesie, aby uwierzytelnić się i utworzyć punkt instalacji.

configs = {"fs.azure.account.auth.type": "OAuth",
          "fs.azure.account.oauth.provider.type": "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider",
          "fs.azure.account.oauth2.client.id": "<application-id>",
          "fs.azure.account.oauth2.client.secret": dbutils.secrets.get(scope="<scope-name>",key="<service-credential-key-name>"),
          "fs.azure.account.oauth2.client.endpoint": "https://login.microsoftonline.com/<directory-id>/oauth2/token"}

# Optionally, you can add <directory-name> to the source URI of your mount point.
dbutils.fs.mount(
  source = "abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/",
  mount_point = "/mnt/<mount-name>",
  extra_configs = configs)
val configs = Map(
  "fs.azure.account.auth.type" -> "OAuth",
  "fs.azure.account.oauth.provider.type" -> "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider",
  "fs.azure.account.oauth2.client.id" -> "<application-id>",
  "fs.azure.account.oauth2.client.secret" -> dbutils.secrets.get(scope="<scope-name>",key="<service-credential-key-name>"),
  "fs.azure.account.oauth2.client.endpoint" -> "https://login.microsoftonline.com/<directory-id>/oauth2/token")
// Optionally, you can add <directory-name> to the source URI of your mount point.
dbutils.fs.mount(
  source = "abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/",
  mountPoint = "/mnt/<mount-name>",
  extraConfigs = configs)

Replace

  • <application-id>z identyfikatorem aplikacji (klienta) dla aplikacji usługi Azure Active Directory.
  • <scope-name> z nazwą zakresu wpisu tajnego usługi Databricks.
  • <service-credential-key-name> z nazwą klucza zawierającego klucz tajny klienta.
  • <directory-id>z identyfikatorem katalogu (dzierżawy) dla aplikacji usługi Azure Active Directory.
  • <container-name> z nazwą kontenera na koncie magazynu usługi ADLS Gen2.
  • <storage-account-name> z nazwą konta magazynu usługi ADLS Gen2.
  • <mount-name> z nazwą zamierzonego punktu instalacji w systemie plików DBFS.