.
Las políticas de seguridad de la organización, las reglas de cumplimiento reglamentarios y otras consideraciones te pueden llevar a "rotar" tus clústeres de Dataproc a intervalos regulares borrando y volviendo a crear clústeres según un programa. Como parte de la rotación de clústeres, los clústeres nuevos se pueden aprovisionar con Versiones de imágenes de Dataproc sin modificar los parámetros de configuración de los clústeres reemplazados.
En esta página, se muestra cómo configurar clústeres que planeas rotar (“rotados) clústeres), envíales trabajos y, luego, rota los clústeres según sea necesario.
Rotación del clúster de imagen personalizada: Puedes aplicar las personalizaciones nuevas o anteriores a una anterior o nueva Imagen base de Dataproc cuando se vuelve a crear el clúster de imágenes personalizadas.
Configura clústeres rotados
Para configurar clústeres rotados, crea nombres de clúster únicos con un sufijo de marca de tiempo
para distinguir los clústeres anteriores de los nuevos y, luego, adjuntar etiquetas a los clústeres
que indican si un clúster es parte de un grupo de clústeres rotado y
y reciben nuevas ofertas de trabajo. En este ejemplo, se usan cluster-pool
y
cluster-state=active
para estos fines, pero puedes usar
tus propios nombres de etiquetas.
Establece las variables de entorno:
PROJECT=project ID \ REGION=region \ CLUSTER_POOL=cluster-pool-name \ CLUSTER_NAME=$CLUSTER_POOL-$(date '+%Y%m%d%H%M') \ BUCKET=Cloud Storage bucket-name
Notas:
- cluster-pool-name: Es el nombre del grupo de clústeres asociado con
uno o más clústeres. Este nombre se usa en el nombre del clúster y con el
cluster-pool
adjunta al clúster para identificarlo como parte del grupo.
- cluster-pool-name: Es el nombre del grupo de clústeres asociado con
uno o más clústeres. Este nombre se usa en el nombre del clúster y con el
Crea el clúster. Puedes agregar argumentos y usar diferentes etiquetas.
gcloud dataproc clusters create ${CLUSTER_NAME} \ --project=${PROJECT_ID} \ --region=${REGION} \ --bucket=${BUCKET} \ --labels="cluster-pool=${CLUSTER_POOL},cluster-state=active"
Envía trabajos a los clústeres
Los siguientes servicios de Google Cloud CLI y Grafo acíclico dirigido (DAG) de Apache Airflow y ejemplos envían un trabajo de Apache Pig a un clúster. Las etiquetas de clúster son que se usa para enviar el trabajo a un clúster activo dentro de un grupo de clústeres.
gcloud
Enviar un trabajo de Apache Pig ubicado en Cloud Storage Elige el clúster mediante el uso de etiquetas.
gcloud dataproc jobs submit pig \ --region=${REGION} \ --file=gs://${BUCKET}/scripts/script.pig \ --cluster-labels="cluster-pool=${CLUSTER_POOL},cluster-state=active"
Airflow
Enviar un trabajo de Apache Pig ubicado en Cloud Storage con Airflow Elige el clúster mediante el uso de etiquetas.
from airflow import DAG from airflow.providers.google.cloud.operators.dataproc import DataprocSubmitJobOperator from datetime import datetime # Declare variables project_id=# e.g: my-project region="us-central1" dag_id='pig_wordcount' cluster_labels={"cluster-pool":${CLUSTER_POOL}, "cluster-state":"active"} wordcount_script="gs://bucket-name/scripts/wordcount.pig" # Define DAG dag = DAG( dag_id, schedule_interval=None, start_date=datetime(2023, 8, 16), catchup=False ) PIG_JOB = { "reference": {"project_id": project_id}, "placement": {"cluster_labels": cluster_labels}, "pig_job": {"query_file_uri": wordcount_script}, } wordcount_task = DataprocSubmitJobOperator( task_id='wordcount', region=region, project_id=project_id, job=PIG_JOB, dag=dag )
Rotar clústeres
Actualiza las etiquetas de clúster adjuntas a los clústeres que deseas rotar. Esta de ejemplo usa la etiqueta
cluster-state=pendingfordeletion
para indicar que el clúster no recibe envíos de trabajos nuevos y se está rotando, pero puedes usar tu propia etiqueta para este propósito.gcloud dataproc clusters update ${CLUSTER_NAME} \ --region=${REGION} \ --update-labels="cluster-state=pendingfordeletion"
Después de que se actualiza la etiqueta de clúster, el clúster no recibe trabajos nuevos. ya que los trabajos se envían a clústeres dentro de un grupo de clústeres solo con etiquetas
active
(consulta Envía trabajos a clústeres).Borra los clústeres que estás rotando después de que terminen de ejecutar trabajos.