gerenciar computação
Este artigo descreve como gerenciar o Databricks compute, incluindo a exibição, a edição, a inicialização, o encerramento, a exclusão, o controle de acesso e o monitoramento do desempenho e logs. O senhor também pode usar a API de Clusters para gerenciar compute programaticamente.
Ver computação
Para view seu compute, clique em compute na barra lateral workspace.
No lado esquerdo, há duas colunas que indicam se o compute foi fixado e o status do compute. Passe o mouse sobre o status para obter mais informações.
Exibir a configuração de computação como um arquivo JSON
Às vezes, pode ser útil view sua configuração compute como JSON. Isso é especialmente útil quando o senhor deseja criar um compute semelhante usando a API Clusters. Quando o senhor acessar view um site existente compute, vá para Configuration tab, clique em JSON no canto superior direito do site tab, copie o JSON e cole-o em sua chamada de API. O JSON view é somente leitura.
Fixar um computador
30 dias após o término de um compute, ele é excluído permanentemente. Para manter uma configuração compute para todos os fins depois que um compute for encerrado por mais de 30 dias, um administrador pode pin o compute. Até 100 compute recurso pode ser fixado.
Os administradores podem acessar pin um compute na lista compute ou na página de detalhes compute clicando no ícone pin.
Editar uma computação
O senhor pode editar a configuração do site computena UI de detalhes do site compute.
Observação
O notebook e o trabalho que foram anexados ao site compute permanecem anexados após a edição.
biblioteca instalados no site compute permanecem instalados após a edição.
Se o senhor editar qualquer atributo de um compute em execução (exceto o tamanho e as permissões do compute ), deverá reiniciá-lo. Isso pode atrapalhar os usuários que estão usando o site compute.
O senhor só pode editar um site em execução ou encerrado compute. No entanto, o senhor pode atualizar as permissões para compute que não estejam nesses estados na página de detalhes compute.
Clonar uma computação
Para clonar um compute existente, selecione Clone no menu compute's kebab.
Depois que o senhor seleciona Clone, a UI de criação do compute é aberta pré-preenchida com a configuração do compute. Os seguintes atributos NÃO estão incluídos no clone:
compute permissões
Notebooks anexados
Se o senhor não quiser incluir a biblioteca instalada anteriormente no site clonado compute, clique no menu suspenso ao lado do botão Create compute e selecione Create without biblioteca.
Permissões de computação
Há quatro níveis de permissão para um compute: NO PERMISSIONS, CAN ATTACH TO, CAN RESTART, e CAN MANAGE. Para obter detalhes, consulte compute ACLs.
Observação
Os segredos não são redigidos nos registros do Spark driver de um cluster stdout
e stderr
transmissão. Para proteger dados confidenciais, em default, os logs de driver do Spark podem ser visualizados apenas por usuários com permissão CAN MANAGE em Job, 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 acessem view os logs nesses clusters, defina a seguinte propriedade de configuração do Spark na configuração dos clusters: spark.databricks.acl.needAdminPermissionToViewLogs false
.
Em clusters de modo de acesso compartilhado sem isolamento, os registros do driver do Spark podem ser visualizados por usuários com permissão 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 clusters.
Configurar permissões de computação
Esta seção descreve como gerenciar as permissões usando a interface do usuário workspace. O senhor também pode usar a API de permissões ou o provedor Terraform da Databricks.
O senhor deve ter a permissão CAN MANAGE em um compute para configurar as permissões do compute.
Na barra lateral, clique em Calcular.
Na linha do site compute, clique no menu kebab à direita e selecione Edit permissions (Editar permissões).
Em Permission Settings (Configurações de permissão), clique no menu suspenso Select user, group or service principal... (Selecionar usuário, grupo ou entidade de serviço...) e selecione um usuário, grupo ou entidade de serviço.
Selecione uma permissão no menu suspenso de permissões.
Clique em Add e em Save.
Encerrar uma computação
Para economizar compute recurso, o senhor pode encerrar um compute. A configuração do site computeencerrado é armazenada para que possa ser reutilizada (ou, no caso do Job, iniciada automaticamente) posteriormente. O senhor pode encerrar manualmente um compute ou configurar o compute para encerrar automaticamente após um período específico de inatividade. Quando o número de compute encerrados exceder 150, o compute mais antigo será excluído.
A menos que o site compute seja fixado ou reiniciado, ele será automática e permanentemente excluído 30 dias após o encerramento.
O site compute encerrado aparece na lista compute com um círculo cinza à esquerda do nome compute.
Observação
Quando o senhor executa um trabalho em um novo Job compute (o que geralmente é recomendado), o compute é encerrado e fica indisponível para reinicialização quando o trabalho é concluído. Por outro lado, se o senhor programar um trabalho para execução em um All-Purpose compute existente que tenha sido encerrado, esse compute será iniciado automaticamente.
Encerramento manual
O senhor pode encerrar manualmente um compute na lista compute (clicando no quadrado na linha do compute) ou na página de detalhes compute (clicando em Terminate).
Encerramento automático
O senhor também pode definir a terminação automática para um compute. Durante a criação do compute, o senhor pode especificar um período de inatividade em minutos após o qual deseja que o compute seja encerrado.
Se a diferença entre a hora atual e a última execução de comando no site compute for maior do que o período de inatividade especificado, o Databricks encerrará automaticamente esse site compute.
Um site compute é considerado inativo quando todos os comandos no site compute, incluindo Spark Job, transmissão estruturada e chamadas JDBC, tiverem terminado de ser executados. Isso não inclui a execução do comando por meio do SSH em compute e da execução do comando bash.
Aviso
compute não relatam atividades resultantes do uso da DStreams. Isso significa que um site de encerramento automático compute pode ser encerrado enquanto estiver executando DStreams. Desative a terminação automática para compute executando DStreams ou considere o uso de transmissão estruturada.
parado compute continuam a acumular cobranças de instância de DBU e nuvens durante o período de inatividade antes da rescisão.
Configurar rescisão automática
O senhor pode configurar o encerramento automático na nova UI compute. Certifique-se de que a caixa esteja marcada e digite o número de minutos na configuração Terminate after ___ of minutes of inactivity (Encerrar após ___ minutos de inatividade ).
Você pode desativar o encerramento automático desmarcando a caixa de seleção Rescisão automática ou especificando um período de inatividade de 0
.
Observação
A terminação automática tem 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 do compute. Por exemplo, o site compute que executa JDBC, R ou transmissão comando pode informar um tempo de atividade obsoleto que leva ao encerramento prematuro do site compute. Atualize para a versão mais recente do Spark para se beneficiar das correções de bugs e melhorias no encerramento automático.
Rescisão inesperada
Às vezes, um site compute é encerrado inesperadamente, não como resultado de um encerramento manual ou de um encerramento automático configurado.
Para obter uma lista de motivos de encerramento e passos de correção, consulte a Base de conhecimento.
Excluir uma computação
A exclusão de um compute encerra o compute e remove sua configuração. Para excluir um compute, selecione Delete no menu compute's .
Aviso
Não é possível desfazer esta ação.
Para excluir um pin compute, ele deve primeiro ser retirado do pin por um administrador.
O senhor também pode invocar a API de Clusters endpoint para excluir um compute programaticamente.
Reiniciar uma computação
O senhor pode reiniciar um compute previamente encerrado na lista compute, na página de detalhes compute ou em um Notebook. O senhor também pode invocar a API de Clusters endpoint para começar a compute programaticamente.
O Databricks identifica um compute usando seu ID de cluster exclusivo. Quando o senhor começa um compute encerrado, a Databricks recria o compute com o mesmo ID, instala automaticamente todas as bibliotecas e anexa novamente o Notebook.
Reiniciar um computador para atualizá-lo com as imagens mais recentes
Quando o senhor reinicia um compute, ele obtém as imagens mais recentes para os contêineres de recurso compute e os hosts de VM. É importante programar reinicializações regulares para compute de longa duração, como as usadas para processar dados de transmissão.
É 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 o senhor ativar o perfil de segurançacompliance para o account ou o workspace, o compute de longa duração será reiniciado automaticamente conforme necessário durante uma janela de manutenção programada. Isso reduz o risco de um reinício automático interromper um agendamento Job. O senhor também pode forçar a reinicialização durante a janela de manutenção. Consulte Atualização automática do cluster.
Notebook exemplo: Localizar computação de longa duração
Se o senhor for administrador de um workspace, poderá executar um script que determina há quanto tempo cada um dos seus compute está em execução e, opcionalmente, reiniciá-los se forem mais antigos do que um número especificado de dias. A Databricks fornece esse script como um Notebook.
Observação
Se o seu workspace fizer parte da visualização pública da atualização automática do compute , talvez o senhor não precise desse script. compute é reiniciado automaticamente, se necessário, durante as janelas de manutenção programadas.
As primeiras linhas do script definem os parâmetros de configuração:
min_age_output
: O número máximo de dias que um compute pode executar. default é 1.perform_restart
: SeTrue
, o script reinicia qualquer compute com idade maior que o número de dias especificado pormin_age_output
. O default éFalse
, que identifica o compute de longa duração, mas não o reinicia.secret_configuration
: substituaREPLACE_WITH_SCOPE
eREPLACE_WITH_KEY
por um escopo secreto e nome de chave. Para obter mais detalhes sobre como configurar os segredos, consulte o notebook.
Aviso
Se o senhor definir perform_restart
como True
, o script reiniciará automaticamente o compute elegível, o que pode causar falha no trabalho ativo e Reset abrir o Notebook. Para reduzir o risco de interromper o trabalho essencial para os negócios do seu workspace, planeje uma janela de manutenção programada e certifique-se de notificar os usuários do workspace.
Computar o início automático para consultas Job e JDBC/ODBC
Quando um trabalho atribuído a um compute encerrado é programado para ser executado, ou quando o senhor se conecta a um compute encerrado a partir de uma interface JDBC/ODBC, o compute é reiniciado automaticamente. Consulte Configure compute for Job e JDBC connect.
compute O autostart permite que o senhor configure o compute para encerrar automaticamente, sem necessidade de intervenção manual para reiniciar o compute para o trabalho agendado. Além disso, o senhor pode programar a inicialização do compute agendando um Job para execução em um compute encerrado.
Antes que o site compute seja reiniciado automaticamente, compute e Job as permissões de controle de acesso sejam verificadas.
Observação
Se o seu compute foi criado na plataforma Databricks versão 2.70 ou anterior, não há início automático: O trabalho programado para ser executado no site compute falhará.
Exibir informações de computação na UI do Apache Spark
O senhor pode view obter informações detalhadas sobre o Spark Job selecionando o Spark UI tab na página de detalhes compute.
Se o senhor reiniciar um compute encerrado, o Spark UI exibirá as informações do compute reiniciado e não as informações históricas do compute encerrado.
Consulte Diagnosticar problemas de custo e desempenho usando o site Spark UI para obter informações sobre como diagnosticar problemas de custo e desempenho usando o site Spark UI.
Exibir registros de computação
O Databricks oferece três tipos de registro de atividades relacionadas ao compute:
compute evento logs, que captura eventos do ciclo de vida compute como criação, encerramento e edições de configuração.
Driver Apache Spark e log de trabalho, que você pode usar para depuração.
compute logs do script de inicialização, que são valiosos para o script de inicialização da depuração.
Esta seção aborda os logs de eventos compute e os logs de driver e worker. Para obter detalhes sobre os registros de script de inicialização, consulte init script logging.
Computar logs de eventos
Os logs de eventos do compute exibem eventos importantes do ciclo de vida do compute que são acionados manualmente por ações do usuário ou automaticamente pelo Databricks. Esses eventos afetam as operações de um compute como um todo e o trabalho em execução no compute.
Para obter os tipos de eventos compatíveis, consulte a estrutura de dados da API Clusters.
Os eventos são armazenados por 60 dias, o que é comparável a outros tempos de retenção de dados no Databricks.
Computar os registros do driver e do trabalhador
As declarações de impressão direta e de registros do Notebook, do Job e da biblioteca vão para o driver do Spark logs. O senhor pode acessar esses arquivos de registro no Driver logs tab na página de detalhes compute. Clique no nome de um arquivo de registros para fazer o download.
Esses logs têm três saídas:
Saída padrão
Erro padrão
Registros Log4j
Para view os registros de trabalho do Spark, use a IU do Spark tab. O senhor também pode configurar um local de entrega de registros para o site compute. Os registros worker e compute são entregues no local que o senhor especificar.
Monitore o desempenho
Para ajudar o senhor a monitorar o desempenho do Databricks compute, o Databricks fornece acesso às métricas da página de detalhes compute. Para Databricks Runtime 12.2 e abaixo, Databricks fornece acesso a Ganglia métricas. Para Databricks Runtime 13.3 LTS e acima, compute métricas são fornecidas por Databricks.
O senhor também pode instalar agentes do Datadog em nós compute para enviar métricas do Datadog para o seu Datadog account.
Computar métricas
compute métricas é a ferramenta de monitoramento default para nãoserverless para todos os fins e para o trabalho compute. Para acessar a interface de usuário compute métricas, navegue até as métricas tab na página de detalhes compute.
O senhor pode view métricas históricas selecionando um intervalo de tempo usando o filtro de seleção de data. As métricas são coletadas a cada minuto. O senhor também pode obter as métricas mais recentes clicando no botão refresh botão. Para obter mais informações, consulte view compute metrics.
Métricas Ganglia
Observação
As métricas Ganglia estão disponíveis apenas para o Databricks Runtime 12.2 e abaixo.
Para acessar a Ganglia UI, navegue até as métricas tab na página de detalhes compute e ative a configuração Legacy métricas. As métricas de GPU estão disponíveis para o site compute habilitado para GPU.
Para consultar as métricas ao vivo, clique no link Ganglia UI.
Para view métricas históricas, clique em um arquivo Snapshot . O Snapshot contém métricas agregadas da hora anterior ao horário selecionado.
Observação
O Ganglia não é compatível com os contêineres do Docker. Se o senhor usar um contêiner do Docker com seu compute, as métricas do Ganglia não estarão disponíveis.
Configurar a coleta de métricas do Ganglia
Pelo site default, a 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 init script ou no campo spark_env_vars
na API Create cluster.
Exemplo Notebook : métricas Datadog
O senhor pode instalar agentes do Datadog em nós compute para enviar métricas do Datadog para o seu Datadog account. O seguinte Notebook demonstra como instalar um agente Datadog em um compute usando um compute-scoped init script.
Para instalar o agente Datadog em todos os sites compute, gerencie o compute-scoped init script usando uma política compute.
Desativar instâncias spot
Como as instâncias spot podem reduzir os custos, a criação de compute usando instâncias spot em vez de instâncias on-demand é uma maneira comum de executar o Job. No entanto, as instâncias pontuais podem ser evitadas por mecanismos de programação do provedor de nuvens. A preempção de instâncias spot pode causar problemas com o trabalho que está sendo executado, inclusive:
Falhas na busca aleatória
Perda de dados aleatória
Perda de dados RDD
Falhas Job
Você pode ativar o descomissionamento para ajudar a resolver esses problemas. O descomissionamento aproveita a notificação que o provedor clouds geralmente envia antes que uma instância spot seja descomissionada. Quando uma instância spot contendo um executor recebe uma notificação de preempção, o processo de descomissionamento 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 clouds .
A Databricks recomenda ativar a migração de dados quando o descomissionamento também estiver ativado. 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.
Observação
A desativação é 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 falhas de busca aleatória quando a tarefa em execução estiver buscando dados aleatórios do executor.
Com o descomissionamento habilitado, as falhas de tarefa causadas pela preempção da instância spot não são adicionadas ao número total de tentativas fracassadas. As falhas de tarefas causadas por preempção não são contadas como tentativas malsucedidas porque a causa da falha é externa à tarefa e não resultará em falha Job .
Habilitar descomissionamento
Para ativar o descomissionamento em um compute, insira as seguintes propriedades no Spark tab em Advanced Options (Opções avançadas ) na UI de configuração do compute. Para obter informações sobre essas propriedades, consulte Configuração do Spark.
Para habilitar o descomissionamento de aplicativos, insira esta propriedade no campo Spark config :
spark.decommission.enabled true
Para habilitar a migração aleatória de dados durante o descomissionamento, insira esta propriedade no campo Spark config :
spark.storage.decommission.enabled true spark.storage.decommission.shuffleBlocks.enabled true
Para habilitar a migração de dados do cache RDD durante o descomissionamento, insira esta propriedade no campo Spark config :
spark.storage.decommission.enabled true spark.storage.decommission.rddBlocks.enabled true
Observação
Quando a replicação RDD StorageLevel é definida como mais de 1, a Databricks não recomenda permitir a migração de dados RDD, uma vez que as réplicas garantem que os RDDs não perderão dados.
Para habilitar a desativação do worker, insira esta propriedade no campo variável de ambiente :
SPARK_WORKER_OPTS="-Dspark.decommission.enabled=true"
Visualize o status de desativação e o motivo da perda na IU
Para acessar o status de desativação de um workerna UI, navegue até a UI do Spark compute - Master tab.
Quando o descomissionamento for concluído, o senhor poderá view o motivo da perda do executorna Spark UI > Executors tab na página de detalhes compute.