Recriar e atualizar um cluster

Etapas para recriar e atualizar um cluster

Use a ferramenta de linha de comando gcloud ou a API Dataproc para copiar a configuração de um cluster existente, atualizar a configuração copiada e criar um novo cluster com a configuração atualizada.

CLI da gcloud

As instruções de exemplo mostram a atualização da configuração da versão da imagem em uma configuração de cluster. Você pode mudar o exemplo para atualizar diferentes configurações de cluster.

  1. Variáveis de configuração
    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. Exporte a configuração do cluster antigo para um arquivo YAML.
    gcloud dataproc clusters export $OLD_CLUSTER \
        --project=$PROJECT \
        --region=$REGION > "${OLD_CLUSTER}-config.yaml"
  3. Atualizar a configuração. O exemplo a seguir usa sed para atualizar a versão da imagem.
    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. Crie um cluster com um novo nome e a configuração atualizada.
    gcloud dataproc clusters import $NEW_CLUSTER \
        --project=$PROJECT \
        --region=$REGION \
        --source="${NEW_CLUSTER}-config-updated.yaml"
  5. Depois de confirmar que as cargas de trabalho são executadas no novo cluster sem problemas, exclua o cluster atual (antigo). IMPORTANTE: esta etapa exclui todos os dados armazenados no HDFS e no disco local no cluster.
    gcloud dataproc clusters delete $OLD_CLUSTER \
        --project=$PROJECT \
        --region=$REGION

API REST

As instruções de exemplo mostram como atualizar o nome do cluster e a imagem configurações de versão em uma configuração de cluster. É possível alterar variáveis de exemplo para atualizar diferentes configurações de cluster.

  1. Variáveis de configuração
    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. Exporte a configuração do cluster (antiga) para um arquivo 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. Atualizar a configuração. O exemplo a seguir usa jq para atualizar o nome do cluster e a versão da imagem.
    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. Importe a configuração do cluster atualizada para criar um novo cluster com a configuração atualizada.
    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. Depois de confirmar que as cargas de trabalho são executadas no novo cluster sem problemas, exclua o cluster atual (antigo). IMPORTANTE: esta etapa exclui todos os dados armazenados no HDFS e no disco local do cluster.
    curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://dataproc.googleapis.com/v1/projects/${PROJECT}/regions/${REGION}/clusters/${OLD_CLUSTER}"
    

Console

O console não é compatível com a recriação de um cluster importando a configuração de um cluster.