Volver a crear y actualizar un clúster
Puedes usar la herramienta de línea de comandos gcloud
o la API de Dataproc para copiar la configuración de un clúster, actualizarla y, a continuación, crear un clúster con la configuración actualizada.
CLI de gcloud
En las instrucciones de ejemplo se muestra cómo actualizar el ajuste de versión de imagen en la configuración de un clúster. Puedes cambiar el ejemplo para actualizar diferentes ajustes de configuración del clúster.
- Define las 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 antiguo 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 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 nuevo clúster sin problemas, elimina el clúster antiguo. IMPORTANTE: Con este paso, se eliminan todos los datos del clúster almacenados en sistemas HDFS y en discos locales.
gcloud dataproc clusters delete $OLD_CLUSTER \ --project=$PROJECT \ --region=$REGION
API 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 configuración de un clúster. Puedes cambiar las variables de ejemplo para actualizar diferentes ajustes de configuración del clúster.
- Define las 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 (antigua) 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 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 nuevo clúster sin problemas, elimina el clúster antiguo. IMPORTANTE: Con este paso, se eliminan todos los datos del clúster almacenados en sistemas HDFS y en discos locales.
curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://dataproc.googleapis.com/v1/projects/${PROJECT}/regions/${REGION}/clusters/${OLD_CLUSTER}"
Consola
En la consola no se puede volver a crear un clúster importando su configuración.