כשיוצרים אשכול 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.