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

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

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

‫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}"
    

המסוף

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