O que são scripts de inicialização?
Um script de inicialização é um script de shell que é executado durante a inicialização de cada nó de cluster antes de inicializar o driver do Apache Spark ou a JVM do executor. Este artigo fornece recomendações para scripts de inicialização e informações de configuração se você precisar usá-los.
Recomendações para scripts de inicialização
O Databricks recomenda o uso de recursos de plataforma internos em vez de criar scripts sempre que possível. O uso generalizado de scripts de inicialização pode atrasar a migração para as novas versões do Databricks Runtime e impedir a adoção de algumas otimizações do Databricks.
Importante
Se você precisar migrar de scripts de inicialização no DBFS, consulte Migrar scripts de inicialização do DBFS.
Os seguintes recursos do Databricks abordam alguns dos casos de uso comuns para scripts de inicialização:
- Use políticas de computação para definir propriedades do sistema, variáveis ambientais e parâmetros de configuração do Spark. Confira Referência de política de computação.
- Adicione bibliotecas a políticas de cluster. Confira Adicionar bibliotecas a uma política.
Se você precisar usar scripts de inicialização:
- Gerencie scripts de inicialização usando políticas de computação ou scripts de inicialização com escopo de cluster em vez de scripts de inicialização globais. Confira Tipos de script de inicialização.
- Gerenciar a instalação da biblioteca para ambientes interativos e de produção usando políticas de computação. Não instale bibliotecas usando scripts init.
- Usar o modo de acesso compartilhado para todas as cargas de trabalho. Só use o modo de acesso de usuário único se a funcionalidade necessária não tiver suporte no modo de acesso compartilhado.
- Use novas versões do Databricks Runtime e o Catálogo do Unity para todas as cargas de trabalho.
A tabela a seguir fornece recomendações organizadas pela versão do Databricks Runtime e pela habilitação do Catálogo do Unity.
Ambiente | Recomendação |
---|---|
Databricks Runtime 13.3 LTS e superior com o Unity Catalog | Armazenar Scripts de Inicialização nos volumes do Catálogo do Unity. |
Databricks Runtime 11.3 LTS e superior sem o Unity Catalog | Armazenar scripts de inicialização como arquivos de workspace. (O limite de tamanho do arquivo é de 500 MB). |
Databricks Runtime 10.4 LTS e abaixo | Armazenar scripts de inicialização usando o armazenamento de objetos na nuvem. |
Quais tipos de scripts de inicialização são compatíveis com o Azure Databricks?
O Azure Databricks dá suporte a dois tipos de scripts de inicialização: com escopo de cluster e global, mas é recomendável usar scripts de inicialização com escopo de cluster.
- No escopo do cluster: executado em todos os clusters configurados com o script. Essa é a maneira recomendada de executar um script de inicialização. Consulte Usar scripts de inicialização com escopo de cluster.
- Global: executado em todos os clusters no workspace configurado com modo de acesso de usuário único ou modo de acesso compartilhado sem isolamento. Esses scripts de inicialização podem causar problemas inesperados, como conflitos de biblioteca. Somente os usuários administradores de workspace podem criar scripts de inicialização global. Confira Usar scripts de inicialização globais.
Sempre que você alterar qualquer tipo de script de inicialização, você deverá reiniciar todos os clusters afetados pelo script.
Os scripts de inicialização globais são executados antes dos scripts de inicialização com escopo de cluster.
Importante
Os scripts de inicialização nomeados pelo cluster e globais herdados são executados antes de outros scripts de inicialização. Esses scripts de inicialização estão no fim da vida útil, mas podem estar presentes em workspaces criados antes de 21 de fevereiro de 2023. Confira Scripts de inicialização com o nome do cluster (herdados) e Scripts de inicialização global (herdados).
Onde os scripts de inicialização podem ser instalados?
Você pode armazenar e configurar scripts de inicialização de arquivos de workspace, volumes do Catálogo do Unity e armazenamento de objetos em nuvem, mas não há suporte para scripts de inicialização em todas as configurações de cluster e nem todos os arquivos podem ser referenciados a partir de scripts de inicialização. Para obter recomendações de ambiente para scripts de inicialização, confira Recomendações para scripts de inicialização.
A tabela a seguir indica o suporte para scripts de inicialização com base no local de origem e no modo de acesso do cluster. A versão do Databricks Runtime listada é a versão mínima necessária para usar a combinação. Para obter informações sobre os modos de acesso do cluster, confira Modos de acesso.
Observação
O modo de acesso compartilhado requer que um administrador adicione scripts de inicialização a um allowlist
. Consulte Bibliotecas de lista de permitidos e scripts de inicialização na computação compartilhada.
Modo de acesso compartilhado | Modo de acesso único | Modo de acesso compartilhado sem isolamento | |
---|---|---|---|
Arquivos de workspace | Sem suporte | Todas as versões com suporte do Databricks Runtime. Em versões inferiores ao 11.3 LTS, não há suporte para scripts de inicialização que fazem referência a outros arquivos de espaço de trabalho. |
Todas as versões com suporte do Databricks Runtime. |
Volumes | 13.3 LTS e superior | 13.3 LTS e superior | Sem suporte |
Armazenamento em nuvem | 13.3 LTS e superior | Todas as versões com suporte do Databricks Runtime | Todas as versões com suporte do Databricks Runtime |
Migrar scripts de inicialização do DBFS
Aviso
Os scripts de inicialização no DBFS atingiram o fim da vida útil e não podem mais ser usados. Você deve migrar seus scripts de inicialização para um local com suporte antes de iniciar a computação. Armazene scripts de inicialização em volumes do Catálogo do Unity, como arquivos de workspace ou no armazenamento de objetos em nuvem.
Os usuários que precisam migrar scripts de inicialização do DBFS podem usar os guias a seguir. Verifique se você’identificou o destino correto para sua configuração. Confira Recomendações para scripts de inicialização.