Volver a crear y actualizar un clúster de Dataproc

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.

  1. 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')
    
  2. 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"
  3. 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"
  4. 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"
  5. 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.

  1. 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')
    
    
  2. 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"
  3. 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"
  4. 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"
  5. 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.