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 do Unity Catalogvolumes para configurar o acesso a arquivos no armazenamento de objetos na nuvem. Veja O que é o Unity Catalogvolumes?.
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 Unity Catalogvolumes, ou usar repositórios de pacotes de bibliotecas. 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.
Grant 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:
Crie uma entidade de serviço com permissões de leitura e list nos blobs desejados. Consulte Acessar armazenamento usando uma entidade de serviço & Microsoft Entra ID(Azure Ative Directory).
Salve seu credentials usando segredos. Consulte Gerir segredos.
Set 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>}}
(Opcional) Refatore scripts de inicialização usando azcopy ou a CLI do Azure.
Você pode fazer referência a variáveis ambientais set durante a configuração do cluster em seus scripts de inicialização para passar credentials armazenados 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:
- Select um cluster do list na interface de clusters.
- Select a guia Bibliotecas.
- Select a opção File path/ADLS.
- 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
). - 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.