Share via


Manage compute (Gerir a computação)

Este artigo descreve como gerenciar a computação do Azure Databricks, incluindo exibir, editar, iniciar, encerrar, excluir, controlar o acesso e monitorar o desempenho e os logs. Você também pode usar a API de Clusters para gerenciar a computação programaticamente.

Ver computação

Para exibir sua computação, clique em ícone de computaçãoComputação na barra lateral do espaço de trabalho.

No lado esquerdo há duas colunas indicando se o cálculo foi fixado e o status do cálculo. Passe o cursor sobre o status para obter mais informações.

Exibir configuração de computação como um arquivo JSON

Às vezes, pode ser útil visualizar sua configuração de computação como JSON. Isso é especialmente útil quando você deseja criar computação semelhante usando a API de Clusters. Quando visualizar uma computação 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.

Fixar um cálculo

30 dias após o término de uma computação, ela é excluída permanentemente. Para manter uma configuração de computação para todos os fins depois que uma computação for encerrada por mais de 30 dias, um administrador pode fixar a computação. Até 100 recursos de computação podem ser fixados.

Os administradores podem fixar uma computação na lista de computação ou na página de detalhes da computação clicando no ícone de pino.

Editar um cálculo

Você pode editar a configuração de uma computação a partir da interface do usuário de detalhes de computação.

Nota

  • Os blocos de anotações e trabalhos que foram anexados ao cálculo permanecem anexados após a edição.
  • As bibliotecas instaladas na computação permanecem instaladas após a edição.
  • Se você editar qualquer atributo de uma computação em execução (exceto o tamanho e as permissões da computação), deverá reiniciá-la. Isso pode interromper os usuários que estão usando a computação no momento.
  • Você só pode editar uma computação em execução ou encerrada. No entanto, você pode atualizar as permissões para computação que não estejam nesses estados na página de detalhes da computação.

Clone uma computação

Para clonar uma computação existente, selecione Clonar no menu kebab da Menu de kebab computação.

Depois de selecionar Clonar, a interface do usuário de criação de computação será preenchida previamente com a configuração de computação. Os seguintes atributos NÃO estão incluídos no clone:

  • Permissões de computação
  • Cadernos anexados

Se não quiser incluir as bibliotecas instaladas anteriormente na computação clonada, clique no menu suspenso ao lado do botão Criar computação e selecione Criar sem bibliotecas.

Permissões de computação

Há quatro níveis de permissão para uma computação: SEM PERMISSÕES, PODE ANEXAR, PODE REINICIAR e PODE GERENCIAR. A tabela lista as habilidades para cada permissão.

Importante

Os usuários com permissões CAN ATTACH TO podem visualizar as chaves da conta de serviço no arquivo log4j. Tenha cuidado ao conceder esse nível de permissão.

Capacidade SEM PERMISSÕES PODE ANEXAR A PODE REINICIAR: PODE GERIR
Anexar bloco de notas à computação x x x
Ver IU do Spark x x x
Ver métricas de computação x x x
Ver registos de controladores x (ver nota)
Encerrar a computação x x
Iniciar e reiniciar a computação x x
Editar computação x
Anexar biblioteca à computação x
Redimensionar computação x
Modificar permissões x

Os administradores do espaço de trabalho têm a permissão CAN MANAGE em todos os cálculos em seu espaço de trabalho. Os usuários têm automaticamente a permissão CAN MANAGE na computação que criam.

Nota

Os segredos não são editados do log stdoutstderr e dos fluxos do driver Spark de um cluster. Para proteger dados confidenciais, por padrão, os logs de driver do Spark são visíveis apenas por usuários com permissão CAN MANAGE no trabalho, modo de acesso de usuário único e clusters de modo de acesso compartilhado. Para permitir que os usuários com permissão CAN ATTACH TO ou CAN RESTART visualizem os logs nesses clusters, defina a seguinte propriedade de configuração do Spark na configuração do cluster: spark.databricks.acl.needAdminPermissionToViewLogs false.

Em clusters do modo de acesso partilhado sem isolamento, os registos do do controlador do Spark podem ser visualizados por utilizadores com as permissões CAN ATTACH TO ou CAN MANAGE. Para limitar quem pode ler os logs apenas aos usuários com a permissão CAN MANAGE, defina spark.databricks.acl.needAdminPermissionToViewLogs como true.

Consulte Configuração do Spark para saber como adicionar propriedades do Spark a uma configuração de cluster.

Configurar permissões de computação

Esta seção descreve como gerenciar permissões usando a interface do usuário do espaço de trabalho. Você também pode usar a API de permissões ou o provedor Databricks Terraform.

Você deve ter a permissão CAN MANAGE em uma computação para configurar permissões de computação.

  1. Na barra lateral, clique em Computar.
  2. Na linha para a computação, clique no menu Elipse Vertical kebab à direita e selecione Editar permissões.
  3. Em Configurações de Permissão, clique no menu suspenso Selecionar usuário, grupo ou entidade de serviço... e selecione um usuário, grupo ou entidade de serviço.
  4. Selecione uma permissão no menu suspenso de permissão.
  5. Clique em Adicionar e clique em Salvar.

Encerrar uma computação

Para salvar recursos de computação, você pode encerrar uma computação. A configuração da computação encerrada é armazenada para que possa ser reutilizada (ou, no caso de trabalhos, iniciada automaticamente) posteriormente. Você pode encerrar manualmente uma computação ou configurá-la para encerrar automaticamente após um período especificado de inatividade. Quando o número de computação terminada excede 150, a computação mais antiga é excluída.

A menos que uma computação seja fixada ou reiniciada, ela é excluída automática e permanentemente 30 dias após o encerramento.

A computação terminada aparece na lista de computação com um círculo cinza à esquerda do nome da computação.

Nota

Quando você executa um trabalho em um novo cálculo de trabalho (que geralmente é recomendado), o cálculo termina e não está disponível para reinicialização quando o trabalho é concluído. Por outro lado, se você agendar um trabalho para ser executado em uma computação para todos os fins existente que tenha sido encerrada, essa computação será iniciada automaticamente.

Importante

Se você estiver usando um espaço de trabalho Trial Premium, todos os recursos de computação 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 uma computação na lista de computação (clicando no quadrado na linha da computação) ou na página de detalhes da computação (clicando em Encerrar).

Cessação automática

Você também pode definir a terminação automática para um cálculo. Durante a criação da computação, você pode especificar um período de inatividade em minutos após o qual deseja que a computação seja encerrada.

Se a diferença entre a hora atual e o último comando executado na computação for maior do que o período de inatividade especificado, o Azure Databricks encerrará automaticamente essa computação.

Uma computação é considerada inativa quando todos os comandos na computação, incluindo trabalhos do Spark, streaming estruturado e chamadas JDBC, terminaram de ser executados.

Aviso

  • Os cálculos não relatam a atividade resultante do uso do DStreams. Isso significa que uma computação de terminação automática pode ser encerrada enquanto estiver executando o DStreams. Desative a terminação automática para computação executando DStreams ou considere o uso do Structured Streaming.
  • A computação ociosa continua 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 nova interface do usuário de computação. 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 de computação. Por exemplo, a computação executando comandos JDBC, R ou streaming pode relatar um tempo de atividade obsoleto que leva ao encerramento prematuro da computação. 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, uma computação é encerrada 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 uma computação

A exclusão de um cálculo encerra o cálculo e remove sua configuração. Para excluir um computador, selecione Excluir no menu do Menu de kebab computador.

Aviso

Não é possível desfazer essa ação.

Para excluir um cálculo fixo, ele deve primeiro ser desfixado por um administrador.

Você também pode invocar o ponto de extremidade da API de Clusters para excluir uma computação programaticamente.

Reiniciar uma computação

Você pode reiniciar uma computação encerrada anteriormente na lista de computação, na página de detalhes da computação ou em um bloco de anotações. Você também pode invocar o ponto de extremidade da API de Clusters para iniciar uma computação programaticamente.

O Azure Databricks identifica uma computação usando sua ID de cluster exclusiva. Quando você inicia uma computação encerrada, o Databricks recria a computação 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, você não poderá iniciar uma computação.

Reinicie uma computação para atualizá-la com as imagens mais recentes

Quando você reinicia uma computação, ela obtém as imagens mais recentes para os contêineres de recursos de computação e os hosts da VM. É importante agendar reinicializações regulares para computação de longa duração, como as usadas 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, a computação de longa execução será reiniciada automaticamente conforme necessário durante uma janela de manutenção agendada. Isso reduz o risco de uma reinicialização automática interromper um trabalho agendado. Você também pode forçar a reinicialização durante a janela de manutenção. Consulte Atualização automática de cluster.

Exemplo de bloco de notas: Encontrar computação de longa duração

Se você for um administrador de espaço de trabalho, poderá executar um script que determine por quanto tempo cada computação 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 uma computação pode ser executada. A predefinição é 1.
  • perform_restart: Se True, o script reinicia qualquer computação com idade maior do que o número de dias especificado pelo min_age_output. O padrão é False, que identifica a computação de longa execução, mas não a reinicia.
  • secret_configuration: Substitua REPLACE_WITH_SCOPE e REPLACE_WITH_KEY por um escopo secreto e 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 a computação qualificada, 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 a computação de longa execução

Obter o bloco de notas

Início automático de computação para trabalhos e consultas JDBC/ODBC

Quando um trabalho atribuído a uma computação encerrada está agendado para ser executado ou você se conecta a uma computação encerrada a partir de uma interface JDBC/ODBC, a computação é reiniciada automaticamente. Consulte Criar um trabalho e JDBC connect.

O início automático de computação permite configurar a computação para encerrar automaticamente sem exigir intervenção manual para reiniciar a computação para trabalhos agendados. Além disso, você pode agendar a inicialização da computação agendando um trabalho para ser executado em uma computação encerrada.

Antes de uma computação ser reiniciada automaticamente, as permissões de controle de acesso à computação e ao trabalho são verificadas.

Nota

Se sua computação foi criada na plataforma Azure Databricks versão 2.70 ou anterior, não há início automático: os trabalhos agendados para execução em computação encerrada falharão.

Exibir informações de computação 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 de computação.

Se você reiniciar uma computação encerrada, a interface do usuário do Spark exibirá informações para a computação reiniciada, não as informações históricas para a computação encerrada.

Consulte Diagnosticar problemas de custo e desempenho usando a interface do usuário do Spark para diagnosticar problemas de custo e desempenho usando a interface do usuário do Spark.

Exibir logs de computação

O Azure Databricks fornece três tipos de registro em log de atividades relacionadas à computação:

  • Logs de eventos de computação, que capturam eventos do ciclo de vida da computação, como criação, encerramento e edições de configuração.
  • Driver Apache Spark e log de trabalho, que você pode usar para depuração.
  • Calcule logs init-script, que são valiosos para depurar scripts init.

Esta seção discute logs de eventos de computação e logs de driver e de trabalho. Para obter detalhes sobre logs de script de inicialização, consulte Log de script de inicialização.

Computar logs de eventos

O log de eventos de computação exibe eventos importantes do ciclo de vida da computação que são acionados manualmente por ações do usuário ou automaticamente pelo Azure Databricks. Tais eventos afetam a operação de uma computação como um todo e os trabalhos em execução na computação.

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.

Exibir o log de eventos de uma computação

Para exibir o log de eventos da computação, selecione a guia Log de eventos nas páginas de detalhes da computação.

Para obter mais informações sobre um evento, clique em sua linha no log e, em seguida, clique na guia JSON para obter detalhes.

Computar logs de driver e de trabalho

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 de computação. 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 a computação. Os logs de trabalho e de computação são entregues no local especificado.

Monitore o desempenho

Para ajudá-lo a monitorar o desempenho da computação do Azure Databricks, o Azure Databricks fornece acesso a métricas da página de detalhes da computação. Para o Databricks Runtime 12.2 e inferior, o Azure Databricks fornece acesso às métricas do Gânglios. Para o Databricks Runtime 13.3 LTS e superior, as métricas de computação são fornecidas pelo Azure Databricks.

Além disso, você pode configurar uma computação 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.

Você também pode instalar agentes Datadog em nós de computação para enviar métricas Datadog para sua conta Datadog.

Métricas de computação

As métricas de computação são a ferramenta de monitoramento padrão para o Databricks Runtime 13.3 LTS e superior. Para acessar a interface do usuário de métricas de computação, navegue até a guia Métricas na página de detalhes da computação.

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 Exibir métricas de computação.

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 de computação. 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 computação habilitada 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 sua computação, 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 cluster API.

Azure Monitor

Você pode configurar uma computação 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, consulte 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

Métricas do Datadog

Você pode instalar agentes Datadog em nós de computação para enviar métricas Datadog para sua conta Datadog. O bloco de anotações a seguir demonstra como instalar um agente Datadog em uma computação usando um script init com escopo de computação.

Para instalar o agente Datadog em toda a computação, gerencie o script init com escopo de computação usando uma política de computação.

Instalar o bloco de anotações de script de inicialização do agente Datadog

Obter o bloco de notas

Descomissionar instâncias spot

Como as instâncias spot podem reduzir custos, a criação de computação 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 desativada. Quando uma instância spot contendo 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 recomputação 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 o descomissionamento em uma computação, insira as seguintes propriedades na guia Spark em Opções avançadas na interface do usuário de configuração de computação. 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 compute 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 de computação.