Eliminación programada de clústeres

Para evitar que se te apliquen Google Cloud cargos por un clúster inactivo, usa la función de eliminación programada de clústeres de Dataproc al crear un clúster. Esta función ofrece opciones para eliminar un clúster cuando se produzcan los siguientes eventos:

Acciones que inhabilitan la eliminación programada

Mientras un clúster está en ejecución, las siguientes acciones inhabilitan la eliminación programada hasta que se revierta la acción de inhabilitación:

Calcular el tiempo de inactividad de un clúster

Puedes usar la eliminación programada para eliminar un clúster cuando lleve un tiempo especificado inactivo. El tiempo de inactividad se calcula después de crear el clúster y de completar el aprovisionamiento del clúster. El cálculo del tiempo de inactividad empieza cuando un clúster no tiene tareas en ejecución.

La dataproc:dataproc.cluster-ttl.consider-yarn-activity propiedad de clúster influye en el cálculo del tiempo de inactividad del clúster de la siguiente manera:

  • Esta propiedad está habilitada (con el valor true) de forma predeterminada.
  • Cuando esta propiedad está habilitada, tanto la actividad de YARN como la de la API Jobs de Dataproc deben estar inactivas para iniciar y seguir incrementando el cálculo del tiempo de inactividad del clúster.
    • La actividad de YARN incluye aplicaciones de YARN pendientes y en ejecución.
    • La actividad de la API Jobs de Dataproc incluye las tareas pendientes y en ejecución enviadas a la API Jobs de Dataproc.
  • Cuando esta propiedad se define como false, el cálculo del tiempo de inactividad del clúster se inicia y continúa solo cuando la actividad de la API Dataproc Jobs está inactiva.

La propiedad dataproc:dataproc.cluster-ttl.consider-yarn-activity se aplica a los clústeres creados con versiones de imagen lanzadas el 1.4.64, el 1.5.39, el 2.0.13 o posteriormente. En los clústeres creados con versiones de imagen anteriores, solo se tiene en cuenta la actividad de la API Jobs de Dataproc para calcular el tiempo de inactividad del clúster.

Usar la eliminación programada de clústeres

Puede definir valores de eliminación programada al crear un clúster con la CLI de Google Cloud, la API de Dataproc o la Google Cloud consola. Una vez que hayas creado el clúster, podrás actualizarlo para cambiar o eliminar los valores de eliminación programada que hayas definido previamente en él.

CLI de gcloud

Para crear o actualizar valores de eliminación programada en un clúster, debes transferir las marcas y los valores que se indican en la siguiente tabla a los comandos gcloud dataproc clusters create o gcloud dataproc clusters update.

Marca de la CLI de gcloud Descripción Granularidad de los valores Valor mínimo Valor máximo
--delete-max-idle1 Se aplica a los comandos de creación y actualización de clústeres. Es el tiempo que transcurre desde que el clúster se queda inactivo después de crearse o actualizarse y está listo para usarse hasta que empieza a eliminarse. Indica la duración en formato IntegerUnit, donde la unidad puede ser "s, m, h, d" (segundos, minutos, horas o días). Por ejemplo, "30m": 30 minutos a partir del momento en que el clúster se quede inactivo. 1 segundo 5 minutos 14 días
--no-delete-max-idle Solo se aplica al comando de actualización del clúster. Cancela la eliminación del clúster mediante el ajuste de la marca delete-max-idle anterior. no corresponde no corresponde no corresponde
--delete-expiration-time2 Se aplica a los comandos de creación y actualización de clústeres. Hora a la que se empezará a eliminar el clúster en formato de fecha y hora ISO 8601. Para generar la fecha y la hora en el formato correcto, puedes usar el generador de marcas de tiempo. Por ejemplo, "2017-08-22T13:31:48-08:00" especifica una hora de vencimiento de las 13:21:48 en la zona horaria UTC -8:00.1 segundo 10 minutos a partir de la hora actual 14 días a partir de la hora actual
--delete-max-age2 Se aplica a los comandos de creación y actualización de clústeres. El tiempo que transcurre desde que se envía la solicitud de creación del clúster hasta que este empieza a eliminarse. Indica la duración en formato IntegerUnit, donde la unidad puede ser "s, m, h, d" (segundos, minutos, horas o días). Por ejemplo: "30m": 30 minutos a partir de ahora; "1d": 1 día a partir de ahora. 1 segundo 10 minutos 14 días
--no-delete-max-age Solo se aplica al comando de actualización del clúster. Cancela la eliminación automática del clúster que se haya configurado con las marcas delete-max-age o delete-expiration-time. No aplicable No aplicable No aplicable
Notas:
  1. Puedes enviar la marca delete-max-idle con la marca delete-expiration-time o delete-max-age en tu solicitud de creación o actualización de clúster. La primera que se cumpla se aplicará para eliminar el clúster.
  2. Puedes transferir la marca delete-expiration-time o la marca delete-max-age al comando de creación o actualización de clústeres, pero no ambas.

Ejemplo de creación de clúster:

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

Ejemplo de actualización de clúster:

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

API REST

Para crear o actualizar valores de eliminación programada en un clúster, defina los campos y valores de ClusterLifecycleConfig de la API de Dataproc que se indican en la siguiente tabla como parte de una solicitud de la API cluster.create o cluster.patch de Dataproc.

Campo de la API Descripción Granularidad de los valores Valor mínimo Valor máximo
idleDeleteTtl1 Se aplica a los comandos de creación y actualización de clústeres. Es el tiempo que transcurre desde que el clúster se queda inactivo después de crearse o actualizarse y está listo para usarse hasta que empieza a eliminarse. Cuando actualices un clúster con un valor nuevo, este debe ser superior al valor establecido anteriormente. Proporciona una duración en segundos con hasta nueve dígitos fraccionarios, terminada en "s". Ejemplo: "3.5s". Envíe una duración vacía para cancelar un valor de idleDeleteTtl definido anteriormente. 1 segundo 5 minutos 14 días
autoDeleteTime2 Se aplica a los comandos de creación y actualización de clústeres. Hora a la que se debe empezar a eliminar el clúster. Cuando actualices un clúster con una nueva hora, esta debe ser posterior a la hora establecida anteriormente. Si se asigna un valor vacío a autoDeleteTime al actualizar, se cancelará la eliminación automática.
Proporciona una marca de tiempo en formato RFC 3339 UTC "Zulu", con una precisión de nanosegundos. Ejemplo: "2014-10-02T15:01:23.045123456Z".
1 segundo 10 minutos a partir de la hora actual 14 días a partir de la hora actual
autoDeleteTtl2 El tiempo que transcurre desde que se envía la solicitud de creación o actualización del clúster hasta que este empieza a eliminarse. Cuando se actualiza un clúster, la nueva hora de eliminación programada (la hora de la solicitud de actualización más la nueva duración) debe ser posterior a la hora de eliminación del clúster establecida anteriormente. Envíe un valor vacío para cancelar un valor autoDeleteTtl definido anteriormente. Indica una duración en segundos con hasta nueve dígitos fraccionarios, terminada en "s". Ejemplo: "3.5s". 1 segundo 10 minutos 14 días
Notas:
  1. Puedes definir o actualizar tanto idleDeleteTtl como autoDeleteTime o autoDeleteTtl en tu solicitud de creación o actualización de clúster. La primera que se convierta en verdadera se aplicará para eliminar el clúster.
  2. Puedes definir o actualizar autoDeleteTime o autoDeleteTtl en tu solicitud, pero no ambos.

Consola

  1. Abre la página de Dataproc Crear un clúster.
  2. Selecciona el panel Personalizar clúster.
  3. En la sección Eliminación programada, selecciona las opciones que quieras aplicar a tu clúster.

Ver la configuración de un clúster con eliminación programada

CLI de gcloud

Puedes usar el comando gcloud dataproc clusters list para confirmar que un clúster tiene habilitada la eliminación programada.

 gcloud dataproc clusters list \
     --region=REGION
Ejemplo de salida:
...
NAME         WORKER_COUNT ... SCHEDULED_DELETE
CLUSTER_ID   NUMBER       ... enabled
...

Puedes usar el comando gcloud dataproc clusters describe para consultar los ajustes de eliminación programada del clúster LifecycleConfig.

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'
...

autoDeleteTime y idleDeleteTtl son los valores de configuración de eliminación programada definidos en el clúster. Dataproc genera el valor idleStartTime, que es la hora de inicio de inactividad más reciente del clúster. Dataproc elimina el clúster si permanece inactivo durante idleStartTime + idleDeleteTtl.

API REST

Puedes enviar una solicitud clusters.list para confirmar que un clúster tiene habilitada la eliminación programada.

Consola

  • Para ver la configuración de eliminación programada de un clúster, selecciona su nombre en la página Clústeres de Dataproc en la consola Google Cloud .
  • En la página de detalles del clúster, selecciona la pestaña Configuración. Ve a la lista de configuraciones de clústeres para ver los ajustes de eliminación programada.