יצירה מחדש ועדכון של אשכול

יצירה מחדש ועדכון של אשכול

אתם יכולים להשתמש בכלי שורת הפקודה gcloud או ב-Managed Service for Apache Spark API כדי להעתיק הגדרות מאשכול קיים, לעדכן את ההגדרות שהועתקו ואז ליצור אשכול חדש עם ההגדרות המעודכנות.

‫CLI של gcloud

ההוראות לדוגמה מראות איך לעדכן את הגדרת גרסת קובץ האימג' בהגדרות של אשכול. אפשר לשנות את הדוגמה כדי לעדכן הגדרות שונות של אשכולות.

  1. מגדירים משתנים.
    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. מייצאים את ההגדרות של האשכול הקיים (הישן) לקובץ YAML.
    gcloud dataproc clusters export $OLD_CLUSTER \
        --project=$PROJECT \
        --region=$REGION > "${OLD_CLUSTER}-config.yaml"
  3. מעדכנים את ההגדרות. בדוגמה הבאה משתמשים ב-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"
  4. יוצרים אשכול חדש עם שם חדש וההגדרות המעודכנות.
    gcloud dataproc clusters import $NEW_CLUSTER \
        --project=$PROJECT \
        --region=$REGION \
        --source="${NEW_CLUSTER}-config-updated.yaml"
  5. אחרי שמוודאים שעומסי העבודה פועלים באשכול החדש בלי בעיות, מוחקים את האשכול הקיים (הישן). חשוב: הפעולה הזו מוחקת את כל הנתונים שמאוחסנים ב-HDFS ובדיסק המקומי באשכול.
    gcloud dataproc clusters delete $OLD_CLUSTER \
        --project=$PROJECT \
        --region=$REGION

‫API בארכיטקטורת REST

בהוראות לדוגמה מוסבר איך לעדכן את שם האשכול ואת הגדרות גרסת התמונה בהגדרות של האשכול. אפשר לשנות את משתני הדוגמה כדי לעדכן הגדרות שונות של האשכול.

  1. מגדירים משתנים.
    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. מייצאים את הגדרות האשכול הקיים (הישן) לקובץ 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. מעדכנים את ההגדרות. בדוגמה הבאה משתמשים ב-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"
  4. מייבאים את הגדרת האשכול המעודכנת כדי ליצור אשכול חדש עם ההגדרה המעודכנת.
    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. אחרי שמוודאים שעומסי העבודה פועלים באשכול החדש בלי בעיות, מוחקים את האשכול הקיים (הישן). חשוב: השלב הזה מוחק את כל הנתונים שמאוחסנים ב-HDFS ובדיסק המקומי באשכול.
    curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://dataproc.googleapis.com/v1/projects/${PROJECT}/regions/${REGION}/clusters/${OLD_CLUSTER}"
    

המסוף

אי אפשר ליצור מחדש אשכול במסוף באמצעות ייבוא של הגדרות האשכול.