Recrie e atualize um cluster
Pode usar a ferramenta de linha de comandos gcloud
ou a API Dataproc
para copiar a configuração de um cluster existente, atualizar a configuração copiada
e, em seguida, criar um novo cluster com a configuração atualizada.
CLI gcloud
As instruções de exemplo mostram a atualização da definição de versão da imagem numa configuração de cluster. Pode alterar o exemplo para atualizar diferentes definições de configuração do cluster.
- Defina variáveis.
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')
- Exporte a configuração do cluster existente (antigo) para um ficheiro YAML.
gcloud dataproc clusters export $OLD_CLUSTER \ --project=$PROJECT \ --region=$REGION > "${OLD_CLUSTER}-config.yaml"
- Atualize a configuração. O exemplo seguinte usa o
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"
- Crie um novo 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"
- Depois de confirmar que as cargas de trabalho são executadas no novo cluster sem problemas,
elimine o cluster existente (antigo). IMPORTANTE: este passo elimina todos os dados armazenados no HDFS e no disco local no seu cluster.
gcloud dataproc clusters delete $OLD_CLUSTER \ --project=$PROJECT \ --region=$REGION
API REST
As instruções de exemplo mostram a atualização do nome do cluster e das definições da versão da imagem numa configuração do cluster. Pode alterar as variáveis de exemplo para atualizar diferentes definições de configuração do cluster.
- Defina variáveis.
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')
- Exporte a configuração do cluster existente (antiga) para um ficheiro 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"
- Atualize a configuração. O exemplo seguinte 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"
- 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"
- Depois de confirmar que as cargas de trabalho são executadas no novo cluster sem problemas, elimine o cluster existente (antigo). IMPORTANTE: este passo elimina todos os dados armazenados no HDFS e no disco local no seu cluster.
curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://dataproc.googleapis.com/v1/projects/${PROJECT}/regions/${REGION}/clusters/${OLD_CLUSTER}"
Consola
A consola não suporta a recriação de um cluster através da importação de uma configuração de cluster.