מצב זמינות גבוהה

כשיוצרים אשכול Managed Service for Apache Spark, אפשר להעביר את האשכול למצב Hadoop High Availability (HA)‎ על ידי ציון מספר המכונות הראשיות באשכול. אפשר לציין את מספר המאסטרים רק בזמן יצירת האשכול.

נכון לעכשיו, Managed Service for Apache Spark תומך בשתי הגדרות של מאסטר:

  • ‫1 מאסטר (ברירת מחדל, לא HA)
  • ‫3 מאסטרים (Hadoop HA)

השוואה בין מצב ברירת המחדל למצב זמינות גבוהה של Hadoop

  • כשל ב-Compute Engine: במקרה הנדיר של כשל בלתי צפוי ב-Compute Engine, המכונות של Managed Service for Apache Spark יופעלו מחדש. הגדרת ברירת המחדל של מאסטר יחיד ב-Managed Service for Apache Spark נועדה לשחזר ולהמשיך לעבד עבודה חדשה במקרים כאלה, אבל משימות שנמצאות בתהליך ייכשלו בהכרח ויהיה צורך לנסות אותן שוב, ואי אפשר יהיה לגשת ל-HDFS עד שה-NameNode היחיד ישוחזר במלואו בהפעלה מחדש. במצב HA, זמינות גבוהה של HDFS וזמינות גבוהה של YARN מוגדרות כדי לאפשר פעולות YARN ו-HDFS ללא הפרעה, למרות כשלים או הפעלות מחדש של צומת יחיד.

  • סיום מנהל ההתקן של המשימה: מנהל ההתקן או התוכנית הראשית של כל משימה שאתם מריצים עדיין מייצגים נקודת כשל בודדת פוטנציאלית, אם התקינות של המשימה תלויה בהרצה מוצלחת של תוכנית מנהל ההתקן. משימות שנשלחות דרך Dataproc Jobs API לא נחשבות ל "זמינות גבוהה", והן עדיין יופסקו אם צומת המאסטר שמריץ את תוכניות מנהלי ההתקנים של המשימות המתאימות ייכשל. כדי שמשימות ספציפיות יהיו עמידות בפני כשלים בצומת יחיד באמצעות אשכול Cloud Dataproc עם זמינות גבוהה, המשימה צריכה: 1) לפעול בלי תוכנת מנהל התקן סינכרונית, או 2) להפעיל את תוכנת מנהל ההתקן עצמה בתוך מאגר YARN, ולהיות כתובה כך שתטפל בהפעלות מחדש של תוכנת מנהל ההתקן. במאמר הפעלת Spark ב-YARN מופיעה דוגמה לאופן שבו תוכניות מנהלי התקנים שניתנות להפעלה מחדש יכולות לפעול בתוך קונטיינרים של YARN, כדי לספק עמידות בפני תקלות.

  • כשל באזור: כמו בכל אשכולות Managed Service for Apache Spark, כל הצמתים באשכול זמינות גבוהה נמצאים באותו אזור. אם יש כשל שמשפיע על כל הצמתים באזור, הכשל לא יטופל.

שמות המכונות

מאסטר ברירת המחדל נקרא cluster-name-m, ומאסטרים של HA נקראים cluster-name-m-0,‏ cluster-name-m-1,‏ cluster-name-m-2.

Apache ZooKeeper

באשכול Managed Service for Apache Spark עם זמינות גבוהה, הרכיב Zookeeper מותקן באופן אוטומטי בצומתי מאסטר האשכול. כל המאסטרים משתתפים באשכול ZooKeeper, שמאפשר יתירות כשל אוטומטית לשירותי Hadoop אחרים.

HDFS

באשכול רגיל של Managed Service for Apache Spark:

  • ‫cluster-name-m ריצות:
    • NameNode
    • NameNode משני

באשכול של Managed Service for Apache Spark בזמינות גבוהה:

  • ‫cluster-name-m-0 ו-cluster-name-m-1 מריצים:
    • NameNode
    • ZKFailoverController
  • כל המאסטרים מריצים את JournalNode
  • אין Secondary NameNode

לפרטים נוספים על הרכיבים, קראו את המאמר זמינות גבוהה של HDFS.

YARN

באשכול רגיל של Managed Service for Apache Spark, ‏cluster-name-m מריץ את ResourceManager.

באשכול של Managed Service for Apache Spark עם זמינות גבוהה, כל המאסטרים מריצים את ResourceManager.

לפרטים נוספים על הרכיבים, קראו את המאמר זמינות גבוהה של YARN.

יצירת אשכול בזמינות גבוהה (HA)

המסוף

  • פותחים את הדף Create cluster ב-Managed Service for Apache Spark.
  • בקטע Define your cluster shape, בוחרים באפשרות זמינות גבוהה.
  • כברירת מחדל, ההגדרות של צומת הדרייבר זהות להגדרות של ה-primary worker. בקטע Additional configuration, אפשר לערוך את Driver node כדי לבטל את הסימון של התיבה Default driver node to the same as primary worker, ואז לציין את ההגדרות של צומת הדרייבר.

פקודת gcloud

כדי ליצור אשכול HA באמצעות gcloud dataproc clusters create, מריצים את הפקודה הבאה:
gcloud dataproc clusters create cluster-name \
    --region=region \
    --num-masters=3 \
    ... other args

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

כדי ליצור אשכול HA, משתמשים ב-API‏ clusters.create ומגדירים את masterConfig.numInstances לערך 3.