Para evitar cobranças Google Cloud por um cluster inativo ou a necessidade de excluir e recriar um cluster para evitar cobranças , use o recurso de parada programada do cluster do Serviço Gerenciado para Apache Spark, que interrompe todas as VMs do cluster . Você não recebe cobranças por VMs interrompidas, mas as cobranças continuam para recursos associados, como discos permanentes.
A interrupção de um cluster interrompe todas as VMs do cluster e faz com que todos os jobs em execução falhem. Quando um cluster é interrompido, não é possível atualizá-lo, enviar jobs para ele ou acessar componentes opcionais no cluster usando o Gateway de componentes do Serviço Gerenciado para Apache Spark. Depois de interromper um cluster, você pode reiniciar o cluster e retomar o trabalho.
A parada programada do cluster está disponível para clusters criados com as versões 2.2.42+, 2.1.76+ e 2.0.57+ e versões de imagem mais recentes.
Recursos
É possível interromper clusters após um período de inatividade especificado, em um horário futuro especificado ou após um período especificado da solicitação de criação do cluster.
A parada programada do cluster oferece suporte a clusters com workers secundários e clusters de escalonamento zero.
É possível atualizar ou cancelar a configuração de parada programada do cluster.
Limitações e considerações
- A parada programada do cluster não é compatível com clusters com SSDs locais.
- Embora seja possível atualizar uma configuração de parada programada do cluster, uma operação de parada iniciada continuará. Para verificar se a operação de parada foi iniciada, examine os registros do cluster no Cloud Logging.
- A atualização de uma programação de parada em um cluster que já passou do horário de parada programada remove a configuração de parada programada. Para reativar a parada programada, inclua um horário futuro na solicitação de atualização.
Ações que desativam a parada programada do cluster
Enquanto um cluster está em execução, as ações a seguir desativam a parada programada do cluster até que a ação de desativação seja revertida:
- Remover o papel do Agente de serviço do IAM do Serviço Gerenciado para Apache Spark na conta de serviço do Agente de serviço do Dataproc
- Desativar a API do Serviço Gerenciado para Apache Spark no projeto do cluster
- Ativar o VPC-Service Controls se a conta de serviço do Agente de serviço do Serviço Gerenciado para Apache Spark (identidade do plano de controle) não estiver dentro do limite do perímetro
Cálculo do tempo de inatividade do cluster
Para que um cluster seja considerado inativo, as condições a seguir precisam ser atendidas:
- a criação do cluster está concluída (o tempo gasto no provisionamento e na inicialização do cluster é excluído do cálculo do tempo de inatividade)
- nenhum job está em execução no cluster
- o cluster não está no estado
STOPPED
O envio de um job para o cluster ou a interrupção de um cluster redefine o cálculo do tempo de inatividade.
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 de jobs do YARN e do Serviço Gerenciado para Apache Spark 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 de jobs do Serviço Gerenciado para Apache Spark inclui jobs pendentes e em execução enviados à API de jobs do Serviço Gerenciado para Apache Spark.
- Quando essa propriedade é definida como
false, o cálculo do tempo de inatividade do cluster é iniciado e continua apenas quando a atividade da API de jobs do Serviço Gerenciado para Apache Spark está inativa.
Usar a parada programada do cluster
Google Cloud Console do
É possível definir valores de parada programada ao criar um cluster usando o Google Cloud console da seguinte maneira:
- Abra a página Criar cluster.
- Em Definir configurações de controle de custos , selecione Definir uma política de retenção opcional para controlar os custos, e selecione as configurações de parada do cluster (ou exclusão do cluster).
CLI gcloud
É possível definir valores de parada programada ao criar um cluster usando a Google Cloud CLI ou a API do Serviço Gerenciado para Apache Spark. Depois de criar o cluster, é possível atualizá-lo para mudar ou excluir os valores de parada programada do cluster definidos anteriormente.
| Sinalização | Descrição | Melhor granularidade | Valor mín. | Valor máx. |
|---|---|---|---|---|
--stop-max-idle1 |
Aplica-se aos comandos de criação e atualização de clusters.
A duração entre o momento em que o cluster entra no estado inativo
(após a criação ou inicialização) e o momento em que o cluster começa a parar.
Forneça a duração no formato IntegerUnit, em que a unidade pode
ser "s, m, h, d" (segundos, minutos, horas, dias, respectivamente). Exemplos:
"30m" ou "1d" (30 minutos ou 1 dia a partir do momento em que o cluster fica inativo). |
1 segundo | 5 minutos | 14 dias |
--no-stop-max-idle |
Aplica-se apenas ao comando de atualização do cluster.
Cancela a parada programada do cluster pela flag definida anteriormente
--stop-max-idle |
Não aplicável | Não relevante | Não aplicável |
--stop-expiration-time2 |
Aplica-se aos comandos de criação e atualização de clusters. O horário para começar a interromper o cluster em formato de data e hora ISO 8601. É possível gerar a data e hora no formato correto usando 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 |
--stop-max-age2 |
Aplica-se aos comandos de criação e atualização de clusters.
A duração entre o momento do envio da solicitação de criação do cluster
ao momento em que o cluster começa a parar. Forneça a duração
em 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 |
- É possível transmitir a flag
stop-max-idlecom a flagstop-expiration-timeoustop-max-agena solicitação de criação ou atualização do cluster. A primeira a se tornar verdadeira entra em vigor para interromper o cluster. - É possível transmitir a flag
stop-expiration-timeou a flagstop-max-agepara 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 \ --stop-max-idle=DURATION \ --stop-expiration-time=TIME \ ... other flags ...
Exemplo de atualização de cluster:
Exemplo:
gcloud dataproc clusters update CLUSTER_NAME \ --region=REGION \ --stop-max-idle=DURATION \ --no-stop-max-age \ ... other flags
API REST
É possível criar ou atualizar valores de parada programada em um cluster definindo os campos e valores API ClusterLifecycleConfig da API 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.
| Sinalização | Descrição | Melhor granularidade | Valor mín. | Valor máx. |
|---|---|---|---|---|
idleStopTtl1 |
Aplica-se aos comandos de criação e atualização de clusters.
A duração entre o momento em que o cluster entra no estado inativo
após a criação ou atualização do cluster e o momento em que o cluster
começa a parar.
Forneça uma duração em segundos com até nove dígitos fracionários,
terminando com 's'. Exemplo: "3.5s".
Envie uma solicitação cluster.patch com uma duração vazia para cancelar um valor idleDeleteTtl
de definido anteriormente. |
1 segundo | 5 minutos |
14 dias |
autoStopTime2 |
Aplica-se aos comandos de criação e atualização de clusters. O horário para começar a interromper o cluster. 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 |
autoStopTtl2 |
A duração entre o momento do envio da solicitação de criação ou atualização do cluster e o momento em que o cluster começa a parar. Forneça uma duração em segundos com até nove dígitos fracionários, terminando com 's'. Exemplo: "3.5s". | 1 segundo | 10 minutos. Envie uma cluster.patch solicitação com uma
duração vazia para cancelar um valor autoStopTtl de definido anteriormente. |
14 dias |
- É possível transmitir a flag
stop-max-idlecom a flagstop-expiration-timeoustop-max-agena solicitação de criação ou atualização do cluster. A primeira a se tornar verdadeira entra em vigor para interromper o cluster. - É possível transmitir a flag
stop-expiration-timeou a flagstop-max-agepara o comando de criação ou atualização do cluster, mas não ambas.
Como usar a parada programada com a exclusão programada
Se você usar a parada programada do cluster com a exclusão programada do cluster, ao criar ou atualizar um cluster, observe as seguintes restrições:
O período
stop-max-idleprecisa ser menor ou igual ao períododelete-max-idleou ao período resultante dedelete-max-ageoudelete-expiration-time.O
stop-max-agee ostop-expiration-timeprecisam ser posteriores aodelete-max-agee aodelete-expiration-time, respectivamente.
Conferir as configurações de parada programada do cluster
Google Cloud Console do
- É possível conferir as configurações de parada programada do cluster selecionando o nome dele na página Clusters do Serviço Gerenciado para Apache Spark no Google Cloud console do Google Cloud.
- 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 parada programada.
CLI gcloud
Use o comando gcloud dataproc clusters list para
confirmar que um cluster tem a parada programada ativada.
gcloud dataproc clusters list \ --region=REGION
Exemplo de resposta:
... NAME WORKER_COUNT ... SCHEDULED_STOP CLUSTER_ID NUMBER ... enabled ...
Use o comando gcloud dataproc clusters describe para conferir as configurações de parada programada LifecycleConfig do cluster.
gcloud dataproc clusters describe CLUSTER_NAME \ --region=REGION
Exemplo de resposta:
... lifecycleConfig: autoStopTime: '2018-11-28T19:33:48.146Z' idleStopTtl: 1800s idleStartTime: '2018-11-28T18:33:48.146Z' ...
Os valores autoStopTime e idleStopTtl são definidos pelo usuário. O Serviço Gerenciado para Apache Spark gera o valor idleStartTime, que é o horário de início mais recente do cluster.
Embora o Serviço Gerenciado para Apache Spark calcule idleStartTime com base na cessação da atividade do job, o mecanismo de parada programada do cluster considera o idleStartTime e o último horário de início do cluster.
Especificamente, se um cluster for interrompido por um usuário ou pelo Serviço Gerenciado para Apache Spark, o cálculo de inatividade para o recurso de parada programada será redefinido. Isso significa que a contagem regressiva para uma parada programada será reiniciada na próxima inicialização do cluster. No entanto, o idleStartTime não é redefinido quando um cluster interrompido é reiniciado. Ele continua refletindo a última ocorrência de inatividade do job antes da parada.
Portanto, duas condições precisam ser atendidas para que o Serviço Gerenciado para Apache Spark interrompa um cluster com base no idleStopTtl:
- O cluster precisa estar inativo durante o período especificado por
idleStopTtldesde a última inicialização. - O cluster precisa estar inativo durante o período especificado por
idleStopTtldesde a últimaidleStartTimeredefinição.
API REST
Você pode fazer uma
clusters.list
solicitação para confirmar que um cluster tem a parada programada ativada.