Pasos para volver a crear y actualizar un clúster
Puedes usar la herramienta de línea de comandos de gcloud
o la API de Dataproc para copiar la configuración de un clúster existente, actualizar la configuración copiada y, luego, crear un clúster nuevo con la configuración actualizada.
gcloud CLI
En las instrucciones de ejemplo, se muestra cómo actualizar la configuración de la versión de la imagen en la de un clúster. Puedes cambiar el ejemplo para actualizar diferentes parámetros de configuración del clúster.
- Configura variables.
export PROJECT=project-id export REGION=region export OLD_CLUSTER=old-cluster-name export NEW_CLUSTER=new-cluster-name export NEW_IMAGE_VERSION=image-version (for example, '2.2-debian12')
- Exporta la configuración del clúster existente (anterior) a un archivo YAML.
gcloud dataproc clusters export $OLD_CLUSTER \ --project=$PROJECT \ --region=$REGION > "${OLD_CLUSTER}-config.yaml"
- Actualiza la configuración. En el siguiente ejemplo, se usa
sed
para actualizar la versión de la imagen.sed -E "s|(^[[:blank:]]+)imageVersion: .+|\1imageVersion: ${NEW_IMAGE_VERSION}|g" "${OLD_CLUSTER}-config.yaml" | sed -E '/^[[:blank:]]+imageUri: /d' > "${NEW_CLUSTER}-config-updated.yaml"
- Crea un clúster nuevo con un nombre nuevo y la configuración actualizada.
gcloud dataproc clusters import $NEW_CLUSTER \ --project=$PROJECT \ --region=$REGION \ --source="${NEW_CLUSTER}-config-updated.yaml"
- Después de confirmar que tus cargas de trabajo se ejecutan en el clúster nuevo sin problemas, borra el clúster existente (anterior). IMPORTANTE: En este paso, se borran todos los datos almacenados en HDFS y en el disco local de tu clúster.
gcloud dataproc clusters delete $OLD_CLUSTER \ --project=$PROJECT \ --region=$REGION
API de REST
En las instrucciones de ejemplo, se muestra cómo actualizar el nombre del clúster y la configuración de la versión de la imagen en la de un clúster. Puedes cambiar las variables de ejemplo para actualizar diferentes parámetros de configuración del clúster.
- Configura variables.
export PROJECT=project-id export REGION=region export OLD_CLUSTER=old-cluster-name export NEW_CLUSTER=new-cluster-name export NEW_IMAGE_VERSION=image-version (for example, '2.2-debian12')
- Exporta la configuración existente (anterior) del clúster a un archivo JSON.
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://dataproc.googleapis.com/v1/projects/${PROJECT}/regions/${REGION}/clusters/${OLD_CLUSTER}?alt=json" > "${OLD_CLUSTER}-config.json"
- Actualiza la configuración. En el siguiente ejemplo, se usa
jq
para actualizar el nombre del clúster y la versión de la imagen.jq ".clusterName = \"${NEW_CLUSTER}\" | .config.softwareConfig.imageVersion=\"${NEW_IMAGE_VERSION}\" | del(.config.workerConfig.imageUri) | del(.config.masterConfig.imageUri)" "${OLD_CLUSTER}-config.json" > "${NEW_CLUSTER}-config-updated.json"
- Importa la configuración del clúster actualizada para crear un clúster nuevo con la configuración actualizada.
curl -i -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json; charset=utf-8" -d "@${NEW_CLUSTER}-config-updated.json" "https://dataproc.googleapis.com/v1/projects/${PROJECT}/regions/${REGION}/clusters?alt=json"
- Después de confirmar que tus cargas de trabajo se ejecutan en el clúster nuevo sin problemas, borra el clúster existente (anterior). IMPORTANTE: En este paso, se borran todos los datos almacenados en HDFS y en el disco local de tu clúster.
curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://dataproc.googleapis.com/v1/projects/${PROJECT}/regions/${REGION}/clusters/${OLD_CLUSTER}"
Console
La consola no admite la recreación de un clúster mediante la importación de su configuración.