Partilhar via


Instalar bibliotecas a partir do armazenamento de objetos

Este artigo orienta você pelas etapas necessárias para instalar bibliotecas do armazenamento de objetos em nuvem no Azure Databricks.

Nota

Este artigo refere-se ao armazenamento de objetos na nuvem como um conceito geral e pressupõe que você esteja interagindo diretamente com dados armazenados no armazenamento de objetos usando URIs. O Databricks recomenda o uso de volumes do Unity Catalog para configurar o acesso a arquivos no armazenamento de objetos na nuvem. Consulte O que são volumes do Catálogo Unity?.

Você pode armazenar bibliotecas JAR e Python Whl personalizadas no armazenamento de objetos na nuvem, em vez de armazená-las na raiz DBFS. Consulte Bibliotecas com escopo de cluster para obter detalhes completos sobre a compatibilidade da biblioteca.

Importante

As bibliotecas podem ser instaladas a partir do DBFS ao usar o Databricks Runtime 14.3 LTS e inferior. No entanto, qualquer usuário do espaço de trabalho pode modificar arquivos de biblioteca armazenados no DBFS. Para melhorar a segurança das bibliotecas em um espaço de trabalho do Azure Databricks, o armazenamento de arquivos de biblioteca na raiz DBFS é preterido e desabilitado por padrão no Databricks Runtime 15.1 e superior. Consulte O armazenamento de bibliotecas na raiz DBFS foi preterido e desativado por padrão.

Em vez disso, o Databricks recomenda carregar todas as bibliotecas, incluindo bibliotecas Python, arquivos JAR e conectores Spark, para arquivos de espaço de trabalho ou volumes do Catálogo Unity, ou usar repositórios de pacotes de biblioteca. Se sua carga de trabalho não oferecer suporte a esses padrões, você também poderá usar bibliotecas armazenadas no armazenamento de objetos na nuvem.

Carregar bibliotecas para armazenamento de objetos

Você pode carregar bibliotecas para armazenamento de objetos da mesma forma que carrega outros arquivos. Você deve ter permissões adequadas em seu provedor de nuvem para criar novos contêineres de armazenamento de objetos ou carregar arquivos no armazenamento de objetos em nuvem.

Conceder permissões somente leitura para armazenamento de objetos

O Databricks recomenda configurar todos os privilégios relacionados à instalação da biblioteca com permissões somente leitura.

O Azure Databricks permite atribuir permissões de segurança a clusters individuais que controlam o acesso a dados no armazenamento de objetos na nuvem. Essas políticas podem ser expandidas para adicionar acesso somente leitura ao armazenamento de objetos na nuvem que contém bibliotecas.

Nota

No Databricks Runtime 12.2 LTS e inferior, não é possível carregar bibliotecas JAR ao usar clusters com modos de acesso compartilhado. No Databricks Runtime 13.3 LTS e superior, você deve adicionar bibliotecas JAR à lista de permissões do Unity Catalog. Consulte Bibliotecas Allowlist e scripts init em computação compartilhada.

O Databricks recomenda o uso de entidades de serviço do Microsoft Entra ID para gerenciar o acesso a bibliotecas armazenadas no Azure Data Lake Storage Gen2. Use a seguinte documentação vinculada para concluir essa configuração:

  1. Crie uma entidade de serviço com permissões de leitura e lista nos blobs desejados. Consulte Acessar armazenamento usando uma entidade de serviço & Microsoft Entra ID(Azure Ative Directory).

  2. Salve suas credenciais usando segredos. Veja Segredos.

  3. Defina as propriedades na configuração do Spark e as variáveis ambientais ao criar um cluster, como no exemplo a seguir:

    Configuração do 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
    

    Variáveis ambientais:

    SERVICE_CREDENTIAL={{secrets/<secret-scope>/<service-credential-key>}}
    
  4. (Opcional) Refatore scripts de inicialização usando azcopy ou a CLI do Azure.

    Você pode fazer referência a variáveis ambientais definidas durante a configuração do cluster em seus scripts de inicialização para passar credenciais armazenadas como segredos para validação.

Instalar bibliotecas em clusters

Para instalar uma biblioteca armazenada no armazenamento de objetos na nuvem em um cluster, conclua as seguintes etapas:

  1. Selecione um cluster na lista na interface do usuário de clusters.
  2. Selecione a guia Bibliotecas .
  3. Selecione a opção Caminho do arquivo/ADLS .
  4. Forneça o caminho de URI completo para o objeto de biblioteca (por exemplo, abfss://container-name@storage-account-name.dfs.core.windows.net/path/to/library.whl).
  5. Clique em Install (Instalar).

Você também pode instalar bibliotecas usando a API REST ou a CLI.

Instalar bibliotecas em blocos de notas

Você pode usar %pip para instalar arquivos de roda Python personalizados armazenados no armazenamento de objetos com escopo para um SparkSession isolado do bloco de anotações. Para usar esse método, você deve armazenar bibliotecas no armazenamento de objetos legíveis publicamente ou usar uma URL pré-assinada.

Veja Bibliotecas em Python com âmbito de bloco de notas.

Nota

As bibliotecas JAR não podem ser instaladas no notebook. Você deve instalar bibliotecas JAR no nível do cluster.