Partilhar via


Melhorar a fiabilidade do lançamento de computação usando tipos flexíveis de nós

Os recursos de computação clássicos no Azure Databricks usam tipos de nós flexíveis, o que permite que o seu recurso de computação volte a tipos de instância alternativos e compatíveis quando o tipo de instância especificado não está disponível.

Este comportamento melhora a fiabilidade do lançamento de computação ao reduzir falhas de capacidade (erros de stockout) durante os lançamentos de computação. Para instâncias spot com recurso de reserva, tipos de nós flexíveis podem tentar adquirir instâncias várias vezes entre diferentes tipos de instância antes de recorrer a instâncias sob demanda. Isto resulta numa maior percentagem de instâncias executadas como "spot" em vez de "on-demand", reduzindo os seus custos totais de computação.

Como funcionam os tipos de nós flexíveis

Quando lança um recurso de computação, o seu fornecedor de cloud por vezes fica sem capacidade para o tipo de instância especificado. Isto resulta num erro de ruptura de stock.

CLOUD_PROVIDER_RESOURCE_STOCKOUT

Embora estes erros sejam mais comuns em instâncias localizadas, podem ocorrer também em instâncias sob demanda.

Com tipos de nós flexíveis ativados, o Azure Databricks gera automaticamente ou utiliza a lista de reserva especificada de tipos de instância compatíveis. Se o seu tipo de instância preferido não estiver disponível, o Azure Databricks tenta adquirir estes tipos de instância de backup em vez de falhar de imediato.

Ative tipos de nós flexíveis no seu espaço de trabalho

Os administradores de espaços de trabalho podem ativar tipos de nós flexíveis nas suas definições de administrador de espaços de trabalho. Quando ativados, todos os novos recursos de computação clássicos recuam automaticamente para tipos de nós alternativos. Os recursos computacionais multiusos existentes não são afetados. Veja Como são afetadas as cargas de trabalho existentes?

Para permitir tipos de nós flexíveis num espaço de trabalho:

  1. Como administrador do espaço de trabalho, vá para a página de configurações.
  2. Clique na guia Computação .
  3. Alterne a opção Ativar tipos de nós auto-flexíveis:
    • Ativado: Todos os novos recursos clássicos de computação usam automaticamente tipos de nós flexíveis, salvo se estiverem explicitamente desativados.
    • Desativado: Os recursos de computação clássicos só usam tipos de nós flexíveis se configurares node_type_flexibility explicitamente na configuração dos recursos de computação.

Se esta configuração estiver desativada, os utilizadores ainda podem configurar tipos de nós flexíveis para recursos de computação individuais, configurando explicitamente campos worker_node_type_flexibility ou driver_node_type_flexibility com listas de alternativas personalizadas. Para impedir que os utilizadores configurem estes campos, os administradores do espaço de trabalho podem usar políticas de computação. Ver exemplos de políticas de tipo de nó flexível.

Especificar uma lista de retenção personalizada

Quando tipos de nós flexíveis estão ativados no seu espaço de trabalho, o Azure Databricks gera automaticamente uma lista de reserva de tipos de instância compatíveis para novos recursos de computação.

Se não quiser usar a lista de recurso gerada automaticamente, pode especificar a sua própria lista de recurso. Além disso, se os tipos de nós flexíveis estiverem desativados no seu espaço de trabalho, pode ainda especificar uma lista de regresso personalizada para o seu recurso de computação. Apenas certos tipos de instância são compatíveis. Veja os requisitos do tipo de instância de substituição. Para uma referência dos tipos de instância compatíveis, consulte a referência de compatibilidade de tipos de nó flexível.

Listas de retenção personalizadas só são suportadas ao configurar computação usando a API. Consulte a documentação de referência da API Clusters .

Por exemplo, a seguinte configuração especifica a que tipo de instância o recurso de computação irá recorrer, se necessário:


  "worker_node_type_flexibility": {
    "alternate_node_type_ids": [
      "Standard_L8s_v2"
    ]
  },
  "driver_node_type_flexibility": {
    "alternate_node_type_ids": [
      "Standard_L8s_v2"
    ]
  },

Requisitos do tipo de instância de fallback

Os tipos de instância de reserva devem ser compatíveis com o tipo de instância preferido pelo cálculo. A sua lista de tipos de instâncias de recurso deve cumprir os seguintes requisitos:

  • Mesmo número de vCPUs e memória que o tipo de instância preferencial (as instâncias alternativas devem ter entre 100% e 110% da memória do tipo de instância preferencial)
  • Mesmo número de discos locais e tamanho de disco que o tipo de instância preferido
  • Mesma arquitetura de CPU do tipo de instância preferido (toda ARM ou toda x86)
  • Mesma imagem do sistema operativo e suporte a Photon tal como o tipo de instância preferido
  • Sem tipos de instância de GPU (GPUs não são suportadas)
  • Máximo de 5 tipos únicos de instâncias de contingência
  • Todos os tipos de instância devem ter suporte consistente de armazenamento: ou todos suportam armazenamento tipo PREMIUM_LRS ou nenhum deles suporta.

Utilize tipos de nós flexíveis com pools

Pode também personalizar uma lista de alternativas para pools. Na API Pools, defina o campo node_type_flexibility para especificar os tipos de instância de fallback. Por exemplo:

"node_type_flexibility": {
    "alternate_node_type_ids": ["Standard_L8s_v2"]
  }

Os pools não suportam a utilização de tipos de instância flexíveis para manter o número mínimo de inatividade. O pool só pode lançar VMs usando os tipos de instância de reserva quando se tenta um lançamento computacional a partir do pool. O pré-aquecimento da contagem minIdle utiliza apenas o tipo de instância preferido.

Veja os tipos de instância adquiridos

Ao usar tipos de nós flexíveis, o seu recurso de computação pode consistir numa mistura de diferentes tipos de instância. Todos os tipos de instâncias de reserva são compatíveis com o seu tipo preferido, mantendo o mesmo número de vCPU, memória, layout do disco, arquitetura do CPU e imagem do sistema operativo para garantir que a sua carga de trabalho corre corretamente.

Pode ver que tipos de instância foram adquiridos para o seu recurso de computação:

  1. Na página de detalhes de computação, clique nos três pontos ao lado do botão Terminar e selecione Ver JSON.
  2. Revise o node_type_id campo de cada executor para ver que tipos de instância estão em execução.

Também pode usar a API de informações do Get clusters para recuperar esta informação programaticamente. Adicionalmente, utilizadores com permissão para aceder às tabelas do sistema podem consultar a node_timelines tabela. Veja o esquema da tabela cronológica do nó .

Desativar os tipos de nós flexíveis num recurso de computação

Observação

A Databricks recomenda manter os tipos de nós flexíveis ativados, a menos que tenha requisitos rigorosos para um tipo específico de instância.

Se preferir que o lançamento de computação falhe em vez de recorrer a um tipo alternativo de instância, pode desativar o comportamento flexível dos nós ao nível individual do recurso de computação. Isto só é suportado quando se utiliza a API Clusters. Para desativar tipos de nós flexíveis, defina os campos de tipo de nó flexível como vazios na configuração de cálculo. Por exemplo:

"worker_node_type_flexibility": {
  "alternate_node_type_ids": []
},
"driver_node_type_flexibility": {
  "alternate_node_type_ids": []
}

Perguntas frequentes

Como é que as cargas de trabalho existentes são afetadas?

Os recursos computacionais multiuso existentes mantêm-se inalterados. Para usar o fallback automático, crie um novo recurso de computação geral após ativar a configuração, ou atualize a especificação da API de recurso de computação com uma lista de fallback personalizada.

Para trabalhos que utilizam computação de trabalhos, cada execução cria um novo recurso de computação, portanto, execuções subsequentes de trabalhos existentes usam automaticamente um recurso de contingência flexível.

Isto é compatível com pools de instâncias?

Yes. Tipos de nós flexíveis aplicam-se às configurações do teu pool de instâncias. Alguns pontos a notar:

  • O inativo mínimo mantém-se consistente: As instâncias mínimas de inatividade (minIdle) do pool são mantidas usando o teu tipo de nó principal. Quaisquer novas VMs lançadas por meio de um pedido de lançamento de cluster podem ser atendidas usando tipos de nós alternativos compatíveis quando o tipo primário está restrito.
  • Edições do pool: Não podes editar um pool de instâncias depois de criado. Se quiser alterar alguma configuração de contingência personalizada, tem de criar um novo pool de instâncias.
  • Visibilidade da API: A /api/2.0/instance-pools/get resposta não mostra flexibilidade no tipo de nó a menos que tenha configurado explicitamente uma lista de contingência personalizada no pool. Para ver a configuração de fallback do seu pool de instâncias, pode criar um cluster de exemplo e visualizar a resposta /api/2.1/clusters/get.

Como funciona a faturação?

É cobrado com base nas tarifas padrão DBU para os tipos de instância realmente adquiridos. Quaisquer descontos ao nível de instância que tenha com o seu fornecedor de cloud aplicam-se automaticamente aos tipos de instância correspondentes usados pelo recurso de computação.

Como é que isto interage com as quotas de tipos de nós no meu espaço de trabalho?

Se um lançamento de computação falhar porque o seu tipo de nó principal atingir um limite de "quota excedida", os tipos de nós flexíveis ainda podem melhorar a fiabilidade do lançamento ao recuar automaticamente para uma alternativa compatível. Dito isto, para falhas baseadas em quotas, a Databricks recomenda considerar o recurso a soluções alternativas como uma rede de segurança, em vez da solução principal. Pode solicitar um aumento de quota ao seu fornecedor de cloud para que o Azure Databricks possa adquirir consistentemente os seus tipos de instâncias preferidos antes de recorrer a alternativas, ou usar computação serverless.

Posso ativar tipos de nós flexíveis apenas para um subconjunto das minhas cargas de trabalho?

O tipo de recurso automático gerado por nó só é configurável ao nível do espaço de trabalho. No entanto, tens duas opções para controlar o comportamento de recuo de uma carga de trabalho específica:

  • (Recomendado) Ative tipos de nós flexíveis para o workspace e depois exclua um cluster específico definindo alternate_node_type_ids uma lista [] vazia na especificação desse cluster.
  • Desative os tipos de nós flexíveis para todo o espaço de trabalho e opte por uma especificação específica do cluster fornecendo uma lista alternate_node_type_ids de backup personalizada que satisfaça os requisitos de compatibilidade.