Gerir clusters
Este artigo descreve como gerenciar clusters do Azure Databricks, incluindo exibição, edição, início, encerramento, exclusão, controle de acesso e monitoramento de desempenho e logs.
Exibir clusters
Para exibir os clusters em seu espaço de trabalho, clique em Computar na barra lateral.
No lado esquerdo há duas colunas indicando se o cluster foi fixado e o status do cluster. Passe o cursor sobre o status para obter mais informações.
Fixar um cluster
Os clusters são eliminados definitivamente passados 30 dias depois de terem sido terminados. Para manter uma configuração de cluster para todos os fins depois que um cluster for encerrado por mais de 30 dias, um administrador pode fixar o cluster. Podem ser afixados até cem clusters.
Os administradores podem fixar um cluster na lista de clusters ou na página de detalhes do cluster clicando no ícone de pino.
Você também pode invocar o ponto de extremidade da API de Clusters para fixar um cluster programaticamente.
Exibir uma configuração de cluster como um arquivo JSON
Às vezes, pode ser útil exibir a configuração do cluster como JSON. Isso é especialmente útil quando você deseja criar clusters semelhantes usando a API de Clusters. Quando visualizar um cluster existente, vá para a guia Configuração , clique em JSON no canto superior direito da guia, copie o JSON e cole-o em sua chamada de API. O modo de exibição JSON é somente leitura.
Editar um cluster
Você pode editar uma configuração de cluster na interface do usuário de detalhes do cluster. Você também pode invocar o ponto de extremidade da API de Clusters para editar o cluster programaticamente.
Nota
- Os blocos de anotações e trabalhos que foram anexados ao cluster permanecem anexados após a edição.
- As bibliotecas instaladas no cluster permanecem instaladas após a edição.
- Se você editar qualquer atributo de um cluster em execução (exceto o tamanho e as permissões do cluster), deverá reiniciá-lo. Isso pode interromper os usuários que estão usando o cluster no momento.
- Você só pode editar clusters em execução ou encerrados. No entanto, você pode atualizar permissões para clusters que não estão nesses estados, na página de detalhes do cluster.
Clone um cluster
Para clonar um cluster existente, selecione Clonar no menu kebab do cluster (também conhecido como menu de três pontos).
Depois de selecionar clonar, a interface do usuário de criação de cluster é aberta pré-preenchida com a configuração do cluster. Os seguintes atributos não estão incluídos no clone:
- Permissões de cluster
- Bibliotecas instaladas
- Cadernos anexados
Controlar o acesso a clusters
O controle de acesso ao cluster na página de configurações de administração permite que os administradores do espaço de trabalho concedam acesso refinado ao cluster a outros usuários. Há dois tipos de controle de acesso ao cluster:
- Permissão de criação de cluster: os administradores de espaço de trabalho podem escolher quais usuários têm permissão para criar clusters.
- Permissões no nível do cluster: um usuário que tem a permissão Pode gerenciar para um cluster pode configurar se outros usuários podem anexar, reiniciar, redimensionar e gerenciar esse cluster.
Para editar permissões para um cluster, selecione Editar permissões no menu kebab desse cluster.
Para obter mais informações sobre controle de acesso ao cluster e permissões no nível do cluster, consulte Controle de acesso ao cluster.
Encerrar um cluster
Para salvar recursos de cluster, você pode encerrar um cluster. A configuração do cluster encerrado é armazenada para que possa ser reutilizada (ou, no caso de trabalhos, iniciada automaticamente) posteriormente. Você pode encerrar manualmente um cluster ou configurá-lo para encerrar automaticamente após um período especificado de inatividade. Quando o número de clusters terminados excede 150, os clusters mais antigos são excluídos.
A menos que um cluster seja fixado ou reiniciado, ele é excluído automática e permanentemente 30 dias após o encerramento.
Os clusters terminados aparecem na lista de clusters com um círculo cinza à esquerda do nome do cluster.
Nota
Quando você executa um trabalho em um Novo Cluster de Trabalho (o que geralmente é recomendado), o cluster é encerrado e não está disponível para reinicialização quando o trabalho for concluído. Por outro lado, se você agendar um trabalho para ser executado em um cluster multiuso existente que foi encerrado, esse cluster será iniciado automaticamente.
Importante
Se você estiver usando um espaço de trabalho Trial Premium, todos os clusters em execução serão encerrados:
- Quando você atualiza um espaço de trabalho para Premium completo.
- Se o espaço de trabalho não for atualizado e a avaliação expirar.
Rescisão manual
Você pode encerrar manualmente um cluster na lista de clusters (clicando no quadrado na linha do cluster) ou na página de detalhes do cluster (clicando em Encerrar).
Cessação automática
Você também pode definir a terminação automática para um cluster. Durante a criação do cluster, você pode especificar um período de inatividade em minutos após o qual deseja que o cluster seja encerrado.
Se a diferença entre a hora atual e o último comando executado no cluster for maior do que o período de inatividade especificado, o Azure Databricks encerrará automaticamente esse cluster.
Um cluster é considerado inativo quando todos os comandos no cluster, incluindo trabalhos do Spark, streaming estruturado e chamadas JDBC, terminaram a execução.
Aviso
- Os clusters não relatam atividades resultantes do uso de DStreams. Isso significa que um cluster de terminação automática pode ser encerrado enquanto estiver executando o DStreams. Desative a terminação automática para clusters que executam DStreams ou considere o uso do Structured Streaming.
- O recurso de terminação automática monitora apenas trabalhos do Spark, não processos locais definidos pelo usuário. Portanto, se todos os trabalhos do Spark tiverem sido concluídos, um cluster poderá ser encerrado, mesmo que os processos locais estejam em execução.
- Os clusters ociosos continuam a acumular cobranças de DBU e instância de nuvem durante o período de inatividade antes do encerramento.
Configurar terminação automática
Você pode configurar o encerramento automático na interface do usuário de criação do cluster. Verifique se a caixa está marcada e insira o número de minutos na configuração Encerrar após ___ de minutos de inatividade .
Você pode desativar a rescisão automática desmarcando a caixa de seleção Rescisão automática ou especificando um período de inatividade de 0
.
Nota
A terminação automática é melhor suportada nas versões mais recentes do Spark. As versões mais antigas do Spark têm limitações conhecidas que podem resultar em relatórios imprecisos da atividade do cluster. Por exemplo, clusters que executam comandos JDBC, R ou streaming podem relatar um tempo de atividade obsoleto que leva ao encerramento prematuro do cluster. Atualize para a versão mais recente do Spark para se beneficiar de correções de bugs e melhorias no encerramento automático.
Rescisão inesperada
Às vezes, um cluster é encerrado inesperadamente, não como resultado de uma terminação manual ou de uma terminação automática configurada.
Para obter uma lista de motivos de rescisão e etapas de correção, consulte a Base de Dados de Conhecimento.
Excluir um cluster
A exclusão de um cluster encerra o cluster e remove sua configuração. Para excluir um cluster, selecione Excluir no menu do cluster.
Aviso
Não é possível desfazer essa ação.
Para excluir um cluster fixo, ele deve primeiro ser removido por um administrador.
Você também pode invocar o ponto de extremidade da API de Clusters para excluir um cluster programaticamente.
Reiniciar um cluster
Você pode reiniciar um cluster encerrado anteriormente na lista de clusters, na página de detalhes do cluster ou em um bloco de anotações. Você também pode invocar o ponto de extremidade da API de Clusters para iniciar um cluster programaticamente.
O Azure Databricks identifica um cluster usando sua ID de cluster exclusiva. Quando você inicia um cluster encerrado, o Databricks recria o cluster com a mesma ID, instala automaticamente todas as bibliotecas e reconecta os blocos de anotações.
Nota
Se você estiver usando um espaço de trabalho de Avaliação e a avaliação tiver expirado, não será possível iniciar um cluster.
Reinicie um cluster para atualizá-lo com as imagens mais recentes
Quando você reinicia um cluster, ele obtém as imagens mais recentes para os contêineres de recursos de computação e os hosts de VM. É importante agendar reinicializações regulares para clusters de longa duração, como aqueles usados para processar dados de streaming.
É sua responsabilidade reiniciar todos os recursos de computação regularmente para manter a imagem atualizada com a versão mais recente da imagem.
Importante
Se você habilitar o perfil de segurança de conformidade para sua conta ou seu espaço de trabalho, os clusters de longa execução serão reiniciados automaticamente após 25 dias. O Databricks recomenda que os administradores do espaço de trabalho reiniciem os clusters manualmente durante uma janela de manutenção agendada. Isso reduz o risco de uma reinicialização automática interromper um trabalho agendado.
Exemplo de bloco de notas: Localizar clusters de longa duração
Se você for um administrador de espaço de trabalho, poderá executar um script que determine por quanto tempo cada um dos clusters está em execução e, opcionalmente, reiniciá-los se forem mais antigos do que um número especificado de dias. O Azure Databricks fornece esse script como um bloco de anotações.
As primeiras linhas do script definem parâmetros de configuração:
min_age_output
: O número máximo de dias que um cluster pode executar. A predefinição é 1.perform_restart
: SeTrue
, o script reinicia clusters com idade maior do que o número de dias especificado pormin_age_output
. O padrão éFalse
, que identifica os clusters de longa execução, mas não os reinicia.secret_configuration
: SubstituaREPLACE_WITH_SCOPE
e por um escopo secreto eREPLACE_WITH_KEY
nome da chave. Para obter mais detalhes sobre como configurar os segredos, consulte o bloco de anotações.
Aviso
Se você definir perform_restart
como True
, o script reiniciará automaticamente os clusters qualificados, o que pode fazer com que os trabalhos ativos falhem e redefina os blocos de anotações abertos. Para reduzir o risco de interromper os trabalhos críticos para os negócios do seu espaço de trabalho, planeje uma janela de manutenção agendada e certifique-se de notificar os usuários do espaço de trabalho.
Identificar e, opcionalmente, reiniciar o bloco de anotações de clusters de longa execução
Início automático de cluster para trabalhos e consultas JDBC/ODBC
Quando um trabalho atribuído a um cluster encerrado está agendado para ser executado ou você se conecta a um cluster encerrado a partir de uma interface JDBC/ODBC, o cluster é reiniciado automaticamente. Consulte Criar um trabalho e JDBC connect.
O início automático do cluster permite configurar clusters para encerramento automático sem a necessidade de intervenção manual para reiniciar os clusters para trabalhos agendados. Além disso, você pode agendar a inicialização do cluster agendando um trabalho para ser executado em um cluster encerrado.
Antes de um cluster ser reiniciado automaticamente, as permissões de controle de acesso ao cluster e ao trabalho são verificadas.
Nota
Se o cluster tiver sido criado na plataforma Azure Databricks versão 2.70 ou anterior, não haverá início automático: os trabalhos agendados para execução em clusters encerrados falharão.
Exibir informações de cluster na interface do usuário do Apache Spark
Você pode exibir informações detalhadas sobre os trabalhos do Spark selecionando a guia Interface do usuário do Spark na página de detalhes do cluster.
Se reiniciar um cluster terminado, a IU do Apache Spark apresentará informações sobre o cluster reiniciado e não sobre a informação histórica do cluster terminado.
Ver registos de clusters
O Azure Databricks fornece três tipos de registro em log de atividades relacionadas ao cluster:
- Logs de eventos de cluster, que capturam eventos do ciclo de vida do cluster, como criação, encerramento e edições de configuração.
- Driver Apache Spark e log de trabalho, que você pode usar para depuração.
- Cluster init-script logs, que são valiosos para depurar scripts init.
Esta seção discute os logs de eventos de cluster e os logs de driver e de trabalho. Para obter detalhes sobre logs de script de inicialização, consulte Log de script de inicialização.
Logs de eventos de cluster
O log de eventos do cluster exibe eventos importantes do ciclo de vida do cluster que são acionados manualmente por ações do usuário ou automaticamente pelo Azure Databricks. Tais eventos afetam o funcionamento do cluster como um todo e as tarefas em execução no cluster.
Para tipos de eventos suportados, consulte a estrutura de dados da API de Clusters.
Os eventos são armazenados por 60 dias, o que é comparável a outros tempos de retenção de dados no Azure Databricks.
Ver um registo de eventos do cluster
Para exibir o log de eventos do cluster, selecione a guia Log de eventos nas páginas de detalhes do cluster.
Para obter mais informações sobre um evento, clique em sua linha no log e, em seguida, clique na guia JSON para obter detalhes.
Logs de trabalho e driver de cluster
As instruções de registo e impressão direta dos blocos de notas, dos trabalhos e das bibliotecas vão para os registos do controlador do Apache Spark. Você pode acessar esses arquivos de log na guia Logs do driver na página de detalhes do cluster. Clique no nome de um arquivo de log para baixá-lo.
Estes registos têm três saídas:
- Saída padrão
- Erro padrão
- Log4j logs
Para exibir os logs de trabalho do Spark, use a guia Interface do usuário do Spark. Você também pode configurar um local de entrega de log para o cluster. Os logs de trabalho e de cluster são entregues no local especificado.
Monitore o desempenho
Para ajudá-lo a monitorar o desempenho dos clusters do Azure Databricks, o Azure Databricks fornece acesso a métricas da página de detalhes do cluster. Para o Databricks Runtime 12.2 e inferior, o Azure Databricks fornece acesso às métricas do Gânglios. Para o Databricks Runtime 13.0 e superior, as métricas de cluster são fornecidas pelo Azure Databricks.
Além disso, pode configurar um cluster do Azure Databricks para enviar métricas para uma área de trabalho do Log Analytics no Azure Monitor, a plataforma de monitorização do Azure.
Você também pode instalar agentes Datadog em nós de cluster para enviar métricas Datadog para sua conta Datadog .
Métricas de cluster
As métricas de clusters são a ferramenta de monitoramento padrão para o Databricks Runtime 13.0 e superior. Para acessar a interface do usuário de métricas de cluster, navegue até a guia Métricas na página de detalhes do cluster.
Você pode visualizar métricas históricas selecionando um intervalo de tempo usando o filtro do seletor de datas. As métricas são coletadas a cada minuto. Você também pode obter as métricas mais recentes clicando no botão Atualizar . Para obter mais informações, consulte Ver métricas do cluster em tempo real e históricas.
Métricas de gânglios
Nota
As métricas de gânglios só estão disponíveis para o Databricks Runtime 12.2 e inferior.
Para acessar a interface do usuário do Ganglia, navegue até a guia Métricas na página de detalhes do cluster. As métricas da CPU estão disponíveis na interface do usuário do Ganglia para todos os tempos de execução do Databricks. As métricas de GPU estão disponíveis para clusters habilitados para GPU.
Para visualizar métricas ao vivo, clique no link Ganglia UI .
Para visualizar métricas históricas, clique em um arquivo de instantâneo. O instantâneo contém métricas as agregadas para a hora anterior à hora selecionada.
Nota
O Ganglia não é suportado com contêineres do Docker. Se você usar um contêiner do Docker com seu cluster, as métricas do Ganglia não estarão disponíveis.
Configurar a coleção de métricas do Ganglia
Por predefinição, o Azure Databricks recolhe as métricas do Ganglia a cada 15 minutos. Para configurar o período de coleta, defina a DATABRICKS_GANGLIA_SNAPSHOT_PERIOD_MINUTES
variável de ambiente usando um script init ou no spark_env_vars
campo Create new cluster API.
Azure Monitor
Você pode configurar um cluster do Azure Databricks para enviar métricas para um espaço de trabalho do Log Analytics no Azure Monitor, a plataforma de monitoramento do Azure. Para obter as instruções completas, veja Monitorizar o Azure Databricks.
Nota
Se você implantou o espaço de trabalho do Azure Databricks em sua própria rede virtual e configurou grupos de segurança de rede (NSG) para negar todo o tráfego de saída que não é exigido pelo Azure Databricks, deverá configurar uma regra de saída adicional para a marca de serviço "AzureMonitor".
Exemplo de bloco de anotações: métricas Datadog
Você pode instalar agentes Datadog em nós de cluster para enviar métricas Datadog para sua conta Datadog . O bloco de anotações a seguir demonstra como instalar um agente Datadog em um cluster usando um script init com escopo de cluster.
Para instalar o agente Datadog em todos os clusters, gerencie o script init com escopo de cluster usando uma política de cluster.
Instalar o bloco de anotações de script de inicialização do agente Datadog
Descomissionar instâncias spot
Como as instâncias spot podem reduzir custos, a criação de clusters usando instâncias spot em vez de instâncias sob demanda é uma maneira comum de executar trabalhos. No entanto, as instâncias spot podem ser antecipadas pelos mecanismos de agendamento do provedor de nuvem. A preempção de instâncias pontuais pode causar problemas com trabalhos em execução, incluindo:
- Falhas de busca aleatória
- Perda de dados aleatória
- Perda de dados RDD
- Falhas em trabalhos
Você pode habilitar o descomissionamento para ajudar a resolver esses problemas. O descomissionamento aproveita a notificação que o provedor de nuvem geralmente envia antes que uma instância spot seja descomissionada. Quando uma instância spot que contém um executor recebe uma notificação de preempção, o processo de descomissionamento tentará migrar dados de shuffle e RDD para executores íntegros. A duração antes da preempção final é normalmente de 30 segundos a 2 minutos, dependendo do provedor de nuvem.
O Databricks recomenda habilitar a migração de dados quando o descomissionamento também estiver habilitado. Geralmente, a possibilidade de erros diminui à medida que mais dados são migrados, incluindo falhas de busca aleatória, perda de dados aleatórios e perda de dados RDD. A migração de dados também pode levar a menos recálculo e economia de custos.
Nota
O descomissionamento é o melhor esforço e não garante que todos os dados possam ser migrados antes da preempção final. O descomissionamento não pode garantir contra falhas de busca de shuffle quando as tarefas em execução estão buscando dados de shuffle do executor.
Com o descomissionamento habilitado, as falhas de tarefas causadas pela preempção de instâncias pontuais não são adicionadas ao número total de tentativas com falha. As falhas de tarefa causadas por preempção não são contadas como tentativas falhadas porque a causa da falha é externa à tarefa e não resultará em falha de trabalho.
Habilitar o descomissionamento
Para habilitar a desativação em um cluster, insira as seguintes propriedades na guia Spark em Opções avançadas na interface do usuário de configuração do cluster. Para obter informações sobre essas propriedades, consulte Configuração do Spark.
Para habilitar o descomissionamento de aplicativos, insira esta propriedade no campo Configuração do Spark:
spark.decommission.enabled true
Para habilitar a migração de dados aleatórios durante a desativação, insira esta propriedade no campo Configuração do Spark:
spark.storage.decommission.enabled true spark.storage.decommission.shuffleBlocks.enabled true
Para habilitar a migração de dados de cache RDD durante a desativação, insira esta propriedade no campo Configuração do Spark:
spark.storage.decommission.enabled true spark.storage.decommission.rddBlocks.enabled true
Nota
Quando a replicação RDD StorageLevel é definida como mais de 1, o Databricks não recomenda habilitar a migração de dados RDD, pois as réplicas garantem que os RDDs não perderão dados.
Para habilitar o descomissionamento para trabalhadores, insira esta propriedade no campo Variáveis de ambiente:
SPARK_WORKER_OPTS="-Dspark.decommission.enabled=true"
Exibir o status de descomissionamento e o motivo da perda na interface do usuário
Para acessar o status de descomissionamento de um trabalhador a partir da interface do usuário, navegue até a guia Spark Cluster UI - Master .
Quando o descomissionamento terminar, você poderá visualizar o motivo da perda do executor na guia Executores da interface do usuário > do Spark na página de detalhes do cluster.