כשיוצרים או מעדכנים אשכול וירטואלי של Managed Service for Apache Spark on GKE, מציינים מאגר צמתים אחד או יותר שהאשכול הווירטואלי ישתמש בהם להרצת משימות (האשכול הזה נקרא האשכול 'שנמצא בשימוש' או 'משויך' למאגרי הצמתים שצוינו). אם מאגר הצמתים שצוין לא קיים באשכול GKE, Managed Service for Apache Spark ב-GKE ייצור את מאגר הצמתים באשכול GKE עם ההגדרות שציינתם. אם מאגר הצמתים קיים ונוצר על ידי Managed Service for Apache Spark, המערכת תבדוק אותו כדי לוודא שההגדרות שלו תואמות להגדרות שצוינו.
הגדרות של מאגר צמתים ב-Managed Service for Apache Spark on GKE
אפשר לציין את ההגדרות הבאות במאגרי צמתים שמשמשים את האשכולות הווירטואליים של Managed Service for Apache Spark ב-GKE (ההגדרות האלה הן קבוצת משנה של הגדרות מאגר הצמתים של GKE):
acceleratorsacceleratorCountacceleratorTypegpuPartitionSize*localSsdCountmachineTypeminCpuPlatformminNodeCountmaxNodeCountpreemptiblespot*
הערות:
gpuPartitionSizeאפשר להגדיר את המאפיין הזה ב-API של Managed Service for Apache SparkGkeNodePoolAcceleratorConfig.-
spotאפשר להגדיר ב-API של Managed Service for Apache Spark GkeNodeConfig.
מחיקת מאגר צמתים
כשמוחקים אשכול של Managed Service for Apache Spark ב-GKE, מאגרי הצמתים שבהם נעשה שימוש באשכול לא נמחקים. במאמר מחיקת מאגר צמתים מוסבר איך למחוק מאגרי צמתים שלא נמצאים יותר בשימוש על ידי Managed Service for Apache Spark באשכולות GKE.
מיקום מאגר הצמתים
כשיוצרים או מעדכנים את האשכול הווירטואלי של Managed Service for Apache Spark ב-GKE, אפשר לציין את האזור שבו נמצאים מאגרי הצמתים שמשויכים אליו. האזורים של מאגר הצמתים צריכים להיות באזור של האשכול הווירטואלי המשויך.
מיפוי תפקידים למאגר צמתים
תפקידים של מאגר צמתים מוגדרים לעבודת מנהל (driver) ומבצע (executor) של Spark, עם תפקיד ברירת מחדל שמוגדר לכל סוגי העבודה על ידי מאגר צמתים. ל-Managed Service for Apache Spark באשכולות GKE צריך להיות לפחות מאגר צמתים אחד שהוקצתה לו ההרשאה default.
הקצאת תפקידים אחרים היא אופציונלית.
המלצה: כדאי ליצור מאגרי צמתים נפרדים לכל סוג תפקיד, עם סוג וגודל צומת על סמך דרישות התפקיד.
דוגמה ליצירת אשכול וירטואלי באמצעות ה-CLI של gcloud:
gcloud dataproc clusters gke create "${DP_CLUSTER}" \
--region=${REGION} \
--gke-cluster=${GKE_CLUSTER} \
--spark-engine-version=latest \
--staging-bucket=${BUCKET} \
--pools="name=${DP_POOLNAME},roles=default \
--setup-workload-identity
--pools="name=${DP_CTRL_POOLNAME},roles=default,machineType=e2-standard-4" \
--pools="name=${DP_DRIVER_POOLNAME},min=1,max=3,roles=spark-driver,machineType=n2-standard-4" \
--pools="name=${DP_EXEC_POOLNAME},min=1,max=10,roles=spark-executor,machineType=n2-standard-8"