Exclusão programada de cluster

Para evitar cobranças por um cluster inativo, use o recurso de exclusão programada de cluster do Serviço Gerenciado para Apache Spark ao criar um cluster.Google Cloud Esse recurso oferece opções para excluir um cluster quando os seguintes eventos ocorrem:

Ações que desativam a exclusão programada

Enquanto um cluster está em execução, as ações a seguir desativam a exclusão programada até que a ação de desativação seja revertida:

Calcular o tempo de inatividade do cluster

É possível usar a exclusão programada para excluir um cluster após um tempo de inatividade especificado. O tempo de inatividade é calculado após a criação do cluster e a conclusão do provisionamento. O cálculo do tempo de inatividade começa quando um cluster não tem jobs em execução.

A propriedade do cluster dataproc:dataproc.cluster-ttl.consider-yarn-activity afeta o cálculo do tempo de inatividade do cluster da seguinte maneira:

  • Essa propriedade é ativada (definida como true) por padrão.
  • Quando essa propriedade está ativada, a atividade da API YARN e do Serviço Gerenciado para Apache Spark Jobs precisa estar inativa para iniciar e continuar incrementando o cálculo do tempo de inatividade do cluster.
    • A atividade do YARN inclui aplicativos do YARN pendentes e em execução.
    • A atividade da API Jobs do Serviço Gerenciado para Apache Spark inclui jobs pendentes e em execução enviados à API Jobs do Serviço Gerenciado para Apache Spark.
  • Quando essa propriedade é definida como false, o cálculo do tempo de inatividade do cluster começa e continua apenas quando a atividade da API Jobs do Serviço Gerenciado para Apache Spark está inativa.

A propriedade dataproc:dataproc.cluster-ttl.consider-yarn-activity se aplica a clusters criados com versões de imagem lançadas em ou após 1.4.64, 1.5.39, 2.0.13 e versões de imagem mais recentes. Para clusters criados com versões de imagem anteriores, apenas a atividade da API Jobs do Serviço Gerenciado para Apache Spark é considerada no cálculo do tempo de inatividade do cluster.

Usar a exclusão programada de cluster

É possível definir valores de exclusão programada ao criar um cluster usando a Google Cloud CLI, a API Dataproc ou o Google Cloud console. Depois de criar o cluster, é possível atualizá-lo para alterar ou excluir valores de exclusão programados definidos anteriormente no cluster.

CLI gcloud

É possível criar ou atualizar valores de exclusão programada em um cluster transmitindo as flags e os valores listados na tabela a seguir para os gcloud dataproc clusters create ou gcloud dataproc clusters update comandos.

Flag da CLI gcloud Descrição Granularidade do valor Valor mínimo Valor máximo
--delete-max-idle1 Aplica-se aos comandos de criação e atualização de clusters. A duração entre o momento em que o cluster fica inativo após a criação ou atualização e está em um estado pronto para uso até o momento em que o cluster começa a ser excluído. Forneça a duração no IntegerUnit formato, em que a unidade pode ser "s, m, h, d" (segundos, minutos, horas, dias). Exemplo: "30m": 30 minutos a partir do momento em que o cluster fica inativo. 1 segundo 5 minutos 14 dias
--no-delete-max-idle Aplica-se apenas ao comando de atualização do cluster. Cancela a exclusão do cluster pela configuração da delete-max-idle flag anterior. não aplicável não aplicável não aplicável
--delete-expiration-time2 Aplica-se aos comandos de criação e atualização de clusters. Tempo para iniciar a exclusão do cluster em formato de data e hora ISO 8601. Para gerar a data e hora no formato correto, use o gerador de carimbo de data/hora. Por exemplo, "2017-08-22T13:31:48-08:00" especifica o tempo de expiração 13h21m48s no fuso horário UTC -8:00.1 segundo 10 minutos a partir do horário atual 14 dias a partir do horário atual
--delete-max-age2 Aplica-se aos comandos de criação e atualização de clusters. Duração entre o momento do envio da solicitação de criação do cluster e o momento em que inicia a exclusão dele. Forneça a duração no IntegerUnit formato, em que a unidade pode ser "s, m, h, d" (segundos, minutos, horas, dias). Exemplos: "30m": 30 minutos a partir de agora; "1d": 1 dia a partir de agora. 1 segundo 10 minutos 14 dias
--no-delete-max-age Aplica-se apenas ao comando de atualização do cluster. Cancela a exclusão automática do cluster pela configuração da flag delete-max-age ou delete-expiration-time anterior. Não aplicável Não relevante Não aplicável
Observações:
  1. É possível transmitir a flag delete-max-idle com a flag delete-expiration-time ou delete-max-age na solicitação de criação ou atualização do cluster. A primeira a se tornar verdadeira entra em vigor para excluir o cluster.
  2. É possível transmitir a flag delete-expiration-time ou a flag delete-max-age para o comando de criação ou atualização do cluster, mas não ambas.

Exemplo de criação de cluster:

gcloud dataproc clusters create CLUSTER_NAME \
    --region=REGION \
    --delete-max-idle=DURATION \
    --delete-expiration-time=TIME \
    ... other flags ...

Exemplo de atualização de cluster:

gcloud dataproc clusters update CLUSTER_NAME \
    --region=REGION \
    --delete-max-idle=DURATION \
    --no-delete-max-age \
    ... other flags

API REST

É possível criar ou atualizar valores de exclusão programada em um cluster definindo os campos e valores API ClusterLifecycleConfig do Serviço Gerenciado para Apache Spark listados na tabela a seguir como parte de uma solicitação de API cluster.create ou cluster.patch do Serviço Gerenciado para Apache Spark.

Campo da API Descrição Granularidade do valor Valor mínimo Valor máximo
idleDeleteTtl1 Aplica-se aos comandos de criação e atualização de clusters. A duração entre o momento em que o cluster fica inativo após a criação ou atualização e está em um estado pronto para uso até o momento em que o cluster começa a ser excluído. Ao atualizar um cluster com um novo valor, o novo valor precisa ser maior que o definido anteriormente. Forneça uma duração em segundos com até nove dígitos fracionários, terminando com 's'. Exemplo: "3.5s". Envie uma duração vazia para cancelar um valor definido anteriormente idleDeleteTtl. 1 segundo 5 minutos 14 dias
autoDeleteTime2 Aplica-se aos comandos de criação e atualização de clusters. Momento de início da exclusão do cluster. Ao atualizar um cluster com um novo horário, o novo horário precisa ser posterior ao definido anteriormente. Ao atualizar, se um valor vazio for definido para autoDeleteTime, ele cancelará a exclusão automática existente.
Forneça um carimbo de data/hora no formato UTC "Zulu" RFC 3339, precisamente medido em nanossegundos. Exemplo: "2014-10-02T15:01:23.045123456Z".
1 segundo 10 minutos a partir do horário atual 14 dias a partir do horário atual
autoDeleteTtl2 A duração entre o momento do envio da solicitação de criação ou atualização do cluster e o momento em que inicia a exclusão dele. Ao atualizar um cluster, o novo horário de exclusão programada (horário da solicitação de atualização mais a nova duração) precisa ser posterior ao horário de exclusão do cluster definido anteriormente. Envie um valor vazio para cancelar um valor autoDeleteTtl definido anteriormente. Forneça uma duração em segundos com até nove dígitos fracionários, terminando com "s". Exemplo: "3.5s". 1 segundo 10 minutos 14 dias
Observações:
  1. É possível definir ou atualizar idleDeleteTtl e autoDeleteTime ou autoDeleteTtl na solicitação de criação ou atualização do cluster. A primeira a se tornar verdadeira entra em vigor para excluir o cluster.
  2. É possível definir ou atualizar autoDeleteTime ou autoDeleteTtl na solicitação, mas não ambos.

Console

  1. Abra a página Criar um cluster do Serviço Gerenciado para Apache Spark.
  2. Selecione o painel Personalizar cluster.
  3. Na seção Exclusão programada, selecione as opções a serem aplicadas ao cluster.

Conferir as configurações do cluster para exclusão programada

CLI gcloud

Use o comando gcloud dataproc clusters list para confirmar que um cluster tem a exclusão programada ativada.

 gcloud dataproc clusters list \
     --region=REGION
Exemplo de saída:
...
NAME         WORKER_COUNT ... SCHEDULED_DELETE
CLUSTER_ID   NUMBER       ... enabled
...

Use o comando gcloud dataproc clusters describe para verificar as configurações de exclusão programada LifecycleConfig do cluster.

gcloud dataproc clusters describe CLUSTER_NAME \
    --region=REGION
...
lifecycleConfig:
  autoDeleteTime: '2018-11-28T19:33:48.146Z'
  idleDeleteTtl: 1800s
  idleStartTime: '2018-11-28T18:33:48.146Z'
...

Os autoDeleteTime e idleDeleteTtl são os valores de configuração de exclusão programados definidos no cluster. O Serviço Gerenciado para Apache Spark gera o valor idleStartTime, que é o horário de início mais recente do cluster. O Serviço Gerenciado para Apache Spark exclui o cluster se ele permanecer inativo em idleStartTime + idleDeleteTtl.

API REST

Você pode fazer uma solicitação clusters.list para confirmar que um cluster tem a exclusão programada ativada.

Console

  • É possível conferir as configurações de exclusão programada do cluster selecionando o nome dele na página Clusters do Serviço Gerenciado para Apache Spark no Google Cloud console.
  • Na página de detalhes dos clusters, selecione a Configuração guia. Acesse a lista de configurações do cluster para conferir as configurações de exclusão programada.