יצירה מחדש ועדכון של אשכול
אתם יכולים להשתמש בכלי שורת הפקודה gcloud או ב-Managed Service for Apache Spark API כדי להעתיק הגדרות מאשכול קיים, לעדכן את ההגדרות שהועתקו ואז ליצור אשכול חדש עם ההגדרות המעודכנות.
CLI של gcloud
ההוראות לדוגמה מראות איך לעדכן את הגדרת גרסת קובץ האימג' בהגדרות של אשכול. אפשר לשנות את הדוגמה כדי לעדכן הגדרות שונות של אשכולות.
- מגדירים משתנים.
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')
- מייצאים את ההגדרות של האשכול הקיים (הישן) לקובץ YAML.
gcloud dataproc clusters export $OLD_CLUSTER \ --project=$PROJECT \ --region=$REGION > "${OLD_CLUSTER}-config.yaml" - מעדכנים את ההגדרות. בדוגמה הבאה משתמשים ב-
sedכדי לעדכן את גרסת התמונה.sed -E "s|(^[[:blank:]]+)imageVersion: .+|\1imageVersion: ${NEW_IMAGE_VERSION}|g" "${OLD_CLUSTER}-config.yaml" | sed -E '/^[[:blank:]]+imageUri: /d' > "${NEW_CLUSTER}-config-updated.yaml" - יוצרים אשכול חדש עם שם חדש וההגדרות המעודכנות.
gcloud dataproc clusters import $NEW_CLUSTER \ --project=$PROJECT \ --region=$REGION \ --source="${NEW_CLUSTER}-config-updated.yaml" - אחרי שמוודאים שעומסי העבודה פועלים באשכול החדש בלי בעיות, מוחקים את האשכול הקיים (הישן). חשוב: הפעולה הזו מוחקת את כל הנתונים שמאוחסנים ב-HDFS ובדיסק המקומי באשכול.
gcloud dataproc clusters delete $OLD_CLUSTER \ --project=$PROJECT \ --region=$REGION
API בארכיטקטורת REST
בהוראות לדוגמה מוסבר איך לעדכן את שם האשכול ואת הגדרות גרסת התמונה בהגדרות של האשכול. אפשר לשנות את משתני הדוגמה כדי לעדכן הגדרות שונות של האשכול.
- מגדירים משתנים.
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')
- מייצאים את הגדרות האשכול הקיים (הישן) לקובץ 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" - מעדכנים את ההגדרות. בדוגמה הבאה משתמשים ב-
jqכדי לעדכן את שם האשכול ואת גרסת קובץ האימג'.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" - מייבאים את הגדרת האשכול המעודכנת כדי ליצור אשכול חדש עם ההגדרה המעודכנת.
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" - אחרי שמוודאים שעומסי העבודה פועלים באשכול החדש בלי בעיות, מוחקים את האשכול הקיים (הישן). חשוב: השלב הזה מוחק את כל הנתונים שמאוחסנים ב-HDFS ובדיסק המקומי באשכול.
curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://dataproc.googleapis.com/v1/projects/${PROJECT}/regions/${REGION}/clusters/${OLD_CLUSTER}"
המסוף
אי אפשר ליצור מחדש אשכול במסוף באמצעות ייבוא של הגדרות האשכול.