יצירה מחדש ועדכון של אשכול
אפשר להשתמש בכלי gcloud של שורת הפקודה או ב-Dataproc 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}"
המסוף
במסוף אין תמיכה ביצירה מחדש של אשכול על ידי ייבוא של הגדרת אשכול.