gerenciar compute
Este artigo descreve como gerenciar Databricks compute, incluindo exibir, editar, iniciar, encerrar, excluir, controlar o acesso e monitorar o desempenho e logs. O senhor também pode usar o clustering API para gerenciar compute programaticamente.
visualização compute
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.
visualizar a configuração do compute como um arquivo JSON
Às vezes, pode ser útil view sua configuração compute como JSON. Isso é especialmente útil quando o senhor deseja criar compute semelhantes usando o clustering API. Quando o senhor acessar view um compute existente, vá para Configuration tab, clique em JSON no canto superior direito do tab, copie o JSON e cole-o em sua chamada API. JSON view é somente leitura.
pin a compute
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 a compute
O senhor pode editar a configuração do site computena UI de detalhes do site compute.
- 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. O senhor pode, no entanto, atualizar as permissões para compute que não estejam nesses estados na página de detalhes compute.
Clonar um compute
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:
- permissões de computação
- 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 computar ACLs.
Os segredos não são removidos do driver Spark de um agrupamento log stdout
e stderr
transmissão. Para proteger dados confidenciais, os drivers default, Spark e logs podem ser visualizados apenas por usuários com permissão CAN MANAGE em Job, modo de acesso dedicado e clustering de modo de acesso padrão. Para permitir que os usuários com permissão CAN ATTACH TO ou CAN RESTART acessem view e logs nesses clusters, defina a seguinte propriedade de configuração Spark na configuração do cluster: spark.databricks.acl.needAdminPermissionToViewLogs false
.
No clustering de modo de acesso compartilhado sem isolamento, o driver Spark logs pode ser visualizado por usuários com permissão CAN ATTACH TO ou CAN MANAGE. Para limitar quem pode ler o logs a apenas usuários com a permissão CAN MANAGE, defina spark.databricks.acl.needAdminPermissionToViewLogs
como true
.
Consulte Spark configuration para saber como adicionar propriedades de Spark a uma configuração de clustering.
Configurar as permissões do site compute
Esta seção descreve como gerenciar permissões usando a interface de 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 compute.
- Na barra lateral, clique em Compute .
- Na linha do site compute, clique no menu kebab
à direita e selecione Edit permissions (Editar permissões ).
- Em Configurações de permissões , clique no menu dropdown 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 dropdown de permissões.
- Clique em Adicionar e clique em Salvar .
Encerrar um compute
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.
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.
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.
Rescisão 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 ).
Rescisão automática
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 do comando no compute for maior do que o período de inatividade especificado, o Databricks encerrará automaticamente o compute.
Um compute é considerado inativo quando todos os comandos no compute, incluindo Spark Job, transmissão estruturada, JDBC calls e Databricks web terminal activity, tiverem terminado de ser executados. Isso não inclui a execução do comando por meio de SSH em compute e a execução do comando bash fora do terminal da Web Databricks.
- compute não relatam atividades resultantes do uso de 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.
- A parada compute continua a acumular cobranças de DBU e de instância de nuvem durante o período de inatividade antes da rescisão.
Configurar a rescisão automática
O senhor pode configurar o encerramento automático na nova UI compute. 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 o encerramento automático desmarcando a caixa de seleção Rescisão automática ou especificando um período de inatividade de 0
.
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 executando JDBC, R ou transmissão comando pode informar um tempo de atividade obsoleto que leva ao encerramento prematuro do 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, o 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 etapas de correção, consulte a Base de conhecimento.
Excluir um compute
A exclusão de um compute encerra o compute e remove sua configuração. Para excluir um compute, selecione Delete no menu compute's .
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 o clustering API endpoint para excluir um compute programaticamente.
Reiniciar um compute
O senhor pode reiniciar um compute encerrado anteriormente na lista compute, na página de detalhes compute ou em um Notebook. O senhor também pode invocar o clustering API endpoint para começar a compute programaticamente.
Databricks identifica um compute usando sua ID de clustering exclusiva. Quando o senhor começa a encerrar o compute, o Databricks recria o compute com o mesmo ID, instala automaticamente todas as bibliotecas e anexa novamente o Notebook.
Reinicie o site compute 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.
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 trabalho programado. Você também pode forçar a reinicialização durante a janela de manutenção. Consulte Atualização automática do clustering.
Notebook exemplo: Encontrar um compute
Se o senhor for um administrador do 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. Databricks fornece esse script como um Notebook.
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. O computador é 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. O padrão é 1.perform_restart
: SeTrue
, o script reinicia qualquer compute com idade maior do 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 nome de escopo secreto e key. Para obter mais detalhes sobre a configuração dos segredos, consulte o Notebook.
Se o senhor definir perform_restart
como True
, o script reiniciará automaticamente o site elegível compute, o que pode causar falha no trabalho ativo e reiniciar o Notebook aberto. 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.
Identificar e, opcionalmente, reiniciar a execução prolongada compute
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.
O compute autostart permite que o senhor configure o compute para encerrar automaticamente sem exigir intervenção manual para reiniciar o compute para o trabalho agendado. Além disso, o senhor pode programar a inicialização do compute programando um Job para ser executado em um compute encerrado.
Antes que o site compute seja reiniciado automaticamente, compute e as permissões de controle de acesso ao trabalho são verificadas.
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 as informações do compute na UI do Apache Spark
O senhor pode view 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.
Veja compute logs
Databricks oferece três tipos de registro de atividades relacionadas ao compute:
- compute event logs, que captura eventos do ciclo de vida do 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.
- computar o script de inicialização logs, que são valiosos para o script de inicialização da depuração.
Esta seção discute o evento compute logs e o driver e worker logs. Para obter detalhes sobre o script de inicialização logs, consulte registro de script de inicialização.
computar evento logs
O evento compute log exibe eventos importantes do ciclo de vida compute que são acionados manualmente por ações do usuário ou automaticamente por 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.
Veja um evento do compute log
Para view o evento compute's log, selecione o evento log tab nas páginas de detalhes compute.
Para obter mais informações sobre um evento, clique em sua linha no site log e, em seguida, clique no botão JSON tab para obter detalhes.
driver de computação e worker logs
As declarações de impressão direta e log de seu Notebook, Job e biblioteca vão para o driver Spark logs. O senhor pode acessar esses arquivos log em Driver logs tab na página de detalhes compute. Clique no nome de um arquivo log para download.
Esses logs têm três saídas:
- Saída padrão
- Erro padrão
- Registros Log4j
Para view Spark worker logs, use o Spark UI tab. O senhor também pode configurar um local de entrega log para o compute. Tanto o worker quanto o compute logs são entregues no local que o senhor especificar.
Monitorar 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
O compute métricas é a ferramenta de monitoramento default para nãoserverless all-purpose e Job 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 Atualizar . Para obter mais informações, consulte compute métricas.
Gânglios métricos
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 para a hora anterior à hora selecionada.
O Ganglia não é compatível com os contêineres do Docker. Se o senhor usar um contêinerDocker com o seu compute, as Ganglia métricas não estarão disponíveis.
Configurar a coleta de métricas do Ganglia
Pelo site default, o Databricks coleta a Ganglia métricas 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
em Criar clustering API.
Notebook exemplo: Datadog métricas
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 do 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.
Instalar o agente do Datadog init script Notebook
Descomissionar instâncias pontuais
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 antecipadas por mecanismos de programação do provedor de nuvem. A preempção de instâncias spot pode causar problemas com o trabalho que está sendo executado, inclusive:
- Falhas de busca aleatória
- Perda aleatória de dados
- Perda de dados RDD
- Job falhas
Você pode ativar 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 local que contém um executor recebe uma notificação de preempção, o processo de desativação tentará migrar os dados shuffle e RDD para um executor íntegro. A duração antes da preempção final é normalmente de 30 segundos a 2 minutos, dependendo do provedor de nuvem.
A Databricks recomenda ativar a migração de dados quando o descomissionamento também estiver ativado. 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 levar a menos recálculos e a custos reduzidos.
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 falhas na busca do shuffle quando a tarefa em execução está buscando dados do shuffle no site executor.
Com o descomissionamento ativado, as falhas de tarefa causadas pela preempção de instância local não são adicionadas ao número total de tentativas com falha. As falhas na tarefa causadas por preempção não são contadas como tentativas fracassadas porque a causa da falha é externa à tarefa e não resultará em falha no trabalho.
Habilitar o descomissionamento
Para ativar o descomissionamento em um compute, insira as seguintes propriedades na seção Spark tab em Advanced Options (Opções avançadas ) na UI de configuração do compute. Para obter informações sobre essas propriedades, consulte Spark configuration.
-
Para ativar o descomissionamento de aplicativos, insira essa propriedade no campo Spark config :
spark.decommission.enabled true
-
Para ativar a migração de dados aleatórios durante o descomissionamento, insira essa propriedade no campo Spark config :
spark.storage.decommission.enabled true
spark.storage.decommission.shuffleBlocks.enabled true -
Para ativar a migração de dados do cache do RDD durante o descomissionamento, insira essa propriedade no campo Spark config :
spark.storage.decommission.enabled true
spark.storage.decommission.rddBlocks.enabled true
Quando a replicação do RDD StorageLevel é definida como mais de 1, a Databricks não recomenda ativar a migração de dados do RDD, pois as réplicas garantem que os RDDs não perderão dados.
-
Para ativar o descomissionamento para o trabalhador, insira essa propriedade no campo variável de ambiente :
SPARK_WORKER_OPTS="-Dspark.decommission.enabled=true"
visualizar o status de desativação e o motivo da perda na interface do usuário
Para acessar o status de desativação de um workerna interface do usuário, navegue até Spark compute UI - Master tab.
Quando o descomissionamento for concluído, o senhor poderá view o motivo da perda do executorno Spark UI > executor tab na página de detalhes do compute.