Gerenciar a computação

Este artigo descreve como gerenciar a computação do Azure Databricks, incluindo exibição, edição, início, encerramento, exclusão, controle de acesso e monitoramento de logs e desempenho. Você também pode usar a API de Clusters para gerenciar a computação programaticamente.

Exibir 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 estão duas colunas indicando se a computação foi fixada e o status da computação. Passe o mouse sobre o status para obter mais informações.

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

Às vezes, pode ser útil exibir sua configuração de computação como JSON. Isso é especialmente útil quando você deseja criar computação semelhante usando a API de Clusters. Ao exibir 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 à API. O modo de exibição JSON é somente leitura.

Fixar uma computação

30 dias depois que um cluster é terminado, ele é excluído permanentemente. Para manter uma configuração de computação para todos os fins depois que uma computação tiver sido 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 de computação clicando no ícone de pin.

Editar uma computação

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

Observação

  • Os notebooks e trabalhos anexados à computação 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 de computação), será necessário reiniciá-lo. 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 estão nesses estados na página de detalhes de computação.

Clonar uma computação

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

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

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

Se você 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: NO PERMISSIONS, CAN ATTACH TO, CAN RESTART e CAN MANAGE. A tabela lista as habilidades de cada permissão.

Importante

Os usuários com permissões PODE ANEXAR A podem exibir as chaves da conta de serviço no arquivo log4j. Conceda esse nível de permissão com cautela.

Capacidade SEM PERMISSÕES PODE ANEXAR PODE REINICIAR PODE GERENCIAR
Anexar notebook à computação x x x
Exibir interface do usuário do Spark x x x
Exibir métricas de computação x x x
Exibir logs de driver x (consulte a observação)
Encerrar a computação x x
Iniciar e reiniciar a computação x x
Editar computação x
Anexar biblioteca à computação x
Redimensionar a computação x
Modificar permissões x

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

Observação

Os segredos não são ocultados nos logs do driver do Spark de um cluster nos fluxos stdout e stderr. Para proteger dados confidenciais, por padrão, os logs do driver Spark só podem ser visualizados por usuários com a permissão PODE GERENCIAR em clusters de trabalho, de modo de acesso de usuário único e de modo de acesso compartilhado. Para permitir que usuários com a permissão PODE ANEXAR A ou PODE REINICIAR 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 compartilhado sem isolamento, os logs do driver Spark podem ser visualizados por usuários com a permissão PODE ANEXAR A ou PODE GERENCIAR. Para limitar quem pode ler os logs apenas aos usuários com a permissão PODE GERENCIAR, defina spark.databricks.acl.needAdminPermissionToViewLogs como true.

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

Configurar permissões de computação

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

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 Computação.
  2. Na linha da computação, clique no menu kebab Reticências Verticais à 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, inicializados automaticamente) posteriormente. Você pode encerrar manualmente uma computação ou configurar a computação para terminar automaticamente após um período de inatividade especificado. Quando o número de computação encerrada excede 150, a computação mais antiga é excluída.

A menos que uma computação seja fixada ou reiniciada, ela será excluída automaticamente e permanentemente 30 dias após o término.

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

Observação

Quando você executa um trabalho em uma nova computação de trabalho (o que geralmente é recomendado), a computação termina e não está disponível para reiniciar quando o trabalho é concluído. Por outro lado, se você agendar um trabalho para ser executado em uma computação all-purpose existente que foi encerrada, essa computação início automático.

Importante

Se você estiver usando um espaço de trabalho Premium de avaliação, todos os recursos de computação em execução serão encerrados:

  • Quando você atualiza um workspace para Premium completo.
  • Se o workspace não for atualizado, e a avaliação expirar.

Encerramento manual

Você pode encerrar manualmente uma computação da lista de computação (clicando no quadrado na linha de computação’) ou na página de detalhes de computação (clicando em Encerrar).

Encerramento automático

Você também pode definir a terminação automática para uma computação. 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 a última execução de comando 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

  • A computação não relata a atividade resultante do uso de DStreams.Computação do Azure. Isso significa que uma computação de encerramento automático pode ser encerrada durante a execução de DStreams. Desative a terminação automática para computação executando DStreams ou considere usar o Streaming Estruturado.
  • A computação ociosa continua acumulando encargos de instância de nuvem e DBU durante o período de inatividade antes do encerramento.

Configurar encerramento automático

Você pode configurar a terminação automática na nova interface do usuário de computação. Certifique-se de que a caixa esteja marcada e insira o número de minutos na configuração Terminar após ___ minutos de inatividade.

Você pode recusar o encerramento automático desmarcando a caixa de seleção término automático ou especificando um período de inatividade de 0.

Observação

O encerramento automático tem o melhor suporte 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 à terminação de computação prematura. Atualize para a versão mais recente do Spark para se beneficiar de correções de bugs e melhorias no encerramento automático.

Encerramento inesperado

À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 terminação e etapas de correção, consulte a Base de dados de conhecimento.

Excluir uma computação

Excluir uma computação encerra a computação e remove sua configuração. Para excluir uma computação, selecione Excluir no menu Kebab menu de computação.

Aviso

Você não pode desfazer essa ação.

Para excluir uma computação fixada, ela deve primeiro ser desafixada por um administrador.

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

Reiniciar uma computação

Você pode reiniciar uma computação encerrada anteriormente da lista de computação, da página de detalhes de computação ou de um notebook. Você também pode invocar a API Clusters ponto de extremidade 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 reanexa os notebooks.

Observação

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.

Reiniciar 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 de VM. É importante agendar reinicializações regulares para computação de longa execução, como aquelas 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.

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. Confira Atualização automática do cluster.

Exemplo de Notebook: localizar computação de execução longa

Se você for um administrador do espaço de trabalho, poderá executar um script que determina por quanto tempo cada um de seus cálculos 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 notebook.

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 executar. O padrão é 1.
  • perform_restart: se True, o script reiniciará qualquer computação com idade maior que o número de dias especificado por min_age_output. O padrão é False, que identifica a computação de execução longa, mas não os reinicia.
  • secret_configuration: substitua REPLACE_WITH_SCOPE e REPLACE_WITH_KEY por um escopo secreto e um nome de chave. Para obter mais detalhes sobre como configurar os segredos, consulte o notebook.

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 redefinam notebooks abertos. Para reduzir o risco de interromper os trabalhos essenciais para os negócios do seu espaço de trabalho, planeje uma janela de manutenção programada e certifique-se de notificar os usuários do espaço de trabalho.

Identificar e, opcionalmente, reiniciar a computação de execução prolongada

Obter notebook

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

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

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

Antes que uma computação seja reiniciada automaticamente, computação e trabalho permissões de controle de acesso são verificadas.

Observação

Se a computação tiver sido criada na plataforma do Azure Databricks versão 2.70 ou anterior, não haverá nenhum início automático: os trabalhos agendados para execução na 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 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 ver como 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 de ciclo de vida de computação, como edições de criação, encerramento e configuração.
  • Os logs do driver e do trabalho do Apache Spark podem ser utilizados para fins de depuração.
  • Compute logs de script init, que são valiosos para depurar scripts de inicialização.

Esta seção discute logs de eventos de computação e logs de driver e de trabalho. Para obter detalhes sobre os logs de script de inicialização, consulte Registro em log de scripts de inicialização.

logs de eventos de computação

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

Para os tipos de eventos com suporte, confira 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 um log de eventos de computação

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

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

Logs de trabalho e driver de computação

As instruções de impressão e log diretas de seus notebooks, trabalhos e bibliotecas vão para os logs de driver do Spark. Você pode acessar esses arquivos de log na guia Logs do driver na página de detalhes da computação. Para baixar um arquivo de log, clique no nome dele.

Esses logs têm três saídas:

  • Saída padrão
  • Erro padrão
  • Logs Log4j

Para exibir os logs de trabalho do Spark, use a guia da 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 ao local especificado.

Monitorar o desempenho

Para ajudá-lo a monitorar o desempenho da computação do Azure Databricks, o Azure Databricks fornece acesso às métricas da página de detalhes de computação. Para o Databricks Runtime 12.2 e abaixo, o Azure Databricks fornece acesso às métricas Ganglia. Para o Databricks Runtime 13.3 LTS e versões superiores, 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 workspace do Log Analytics no Azure Monitor, a plataforma de monitoramento do Azure.

Você também pode instalar agentes do Datadog em nós de computação para enviar métricas do Datadog para sua conta do 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 versões superiores. Para acessar a interface do usuário das métricas de computação, navegue até a guia Métricas na página de detalhes de computação.

Você pode exibir métricas históricas selecionando um intervalo de tempo usando o filtro seletor de data. 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 cache.

Métricas do Ganglia

Observação

As métricas do Ganglia estão disponíveis apenas para o Databricks Runtime 12.2 e abaixo.

Para acessar a interface do usuário do Ganglia, navegue até a guia de Métricas na página de detalhes de computação. As métricas de 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 exibir métricas ao vivo, clique no link Interface do usuário do Ganglia.

Para exibir métricas históricas, clique em um arquivo de instantâneo. O instantâneo contém métricas agregadas para a hora anterior à hora selecionada.

Observação

Não há suporte para o Ganglia com contêineres do Docker. Se você usar uma 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 padrão, o Azure Databricks coleta métricas do Ganglia a cada 15 minutos. Para configurar o período de coleta, defina a variável de ambiente DATABRICKS_GANGLIA_SNAPSHOT_PERIOD_MINUTES usando um script de init ou no campo spark_env_vars em Criar a API do cluster.

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 instruções completas, consulte Monitorando o Azure Databricks.

Observação

Se você tiver implantado o workspace do Azure Databricks em sua própria rede virtual e configurado os NSG (grupos de segurança de rede) para negar todo o tráfego de saída que não é exigido pelo Azure Databricks, será necessário configurar uma regra de saída adicional para a marca de serviço "AzureMonitor".

Exemplo de notebook: métricas do Datadog

Métricas do Datadog

Você pode instalar agentes do Datadog em nós de computação para enviar métricas do Datadog para sua conta do Datadog. O notebook a seguir demonstra como instalar um agente datadog em uma computação usando um script de inicialização com escopo de computação.

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

Instalar o notebook de script de init do agente do Datadog

Obter notebook

instâncias de ponto de desativação

Como instâncias spot podem reduzir custos, criar 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 preempções pelos mecanismos de agendamento do provedor de nuvem. A preempção de instâncias spot pode causar problemas com trabalhos em execução, incluindo:

  • Falhas de busca aleatória
  • Perda de dados aleatórios
  • Perda de dados RDD
  • Falhas de trabalho

Você pode habilitar a desativação para ajudar a resolver esses problemas. A desativação utiliza a notificação que o provedor de nuvem geralmente envia antes que uma instância spot seja desativada. Quando uma instância spot que contém um executor recebe uma notificação de preempção, o processo de desativação tentará migrar dados aleatórios 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 a desativação também está habilitada. Em geral, 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 resultar em menos recomputação e economia de custos.

Observação

O descomissionamento é um dos melhores esforços e não garante que todos os dados possam ser migrados antes da preempção final. Ela não pode garantir falhas de busca aleatória ao executar tarefas que estão buscando dados aleatórios do executor.

Com a desativação habilitada, as falhas de tarefa causadas pela preempção de instância spot não são adicionadas ao número total de tentativas com falha. As falhas de tarefa causadas pela preempção não são contadas como tentativas com falha porque a causa da falha é externa à tarefa e não resultará em falha de trabalho.

Habilitar o encerramento

Para habilitar o descomissionamento em uma computação, insira as seguintes propriedades na guia Apache 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 a Configuração do Spark.

  • Para habilitar o encerramento de aplicativos, insira essa propriedade no campo Configuração do Spark:

    spark.decommission.enabled true
    
  • Para habilitar a migração aleatória de dados durante o encerramento, insira essa 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 do cache RDD durante o encerramento, insira essa propriedade no campo Configuração do Spark:

    spark.storage.decommission.enabled true
    spark.storage.decommission.rddBlocks.enabled true
    

    Observação

    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 percam dados.

  • Para habilitar o encerramento de trabalhos, insira essa propriedade no campo Variáveis de ambiente:

    SPARK_WORKER_OPTS="-Dspark.decommission.enabled=true"
    

Exibir o status de encerramento e o motivo da perda na interface do usuário

Para acessar o status de descomissionamento de um trabalhador da interface do usuário, navegue até a guia interface do usuário de computação do Spark – Master.

Quando o descomissionamento for concluído, você poderá exibir o motivo da perda do executor na guia Executores da > interface do usuário do Spark na página de detalhes de computação.