אמזון EMR ב- Amazon EKS מספק אפשרות פריסה עבור אמזון EMR המאפשר לך להפעיל עומסי עבודה של ניתוח שירות קוברנט של אמזון (אמזון EKS). זוהי אפשרות אטרקטיבית מכיוון שהיא מאפשרת לך להפעיל יישומים על מאגר משותף של משאבים ללא צורך באספקת תשתית. בנוסף, אתה יכול להשתמש סטודיו EMR של אמזון כדי לבנות קוד אנליטי הפועל על אשכולות אמזון EKS. EMR Studio הוא סביבת פיתוח משולבת מבוססת אינטרנט (IDE) המשתמשת במחברות Jupyter המנוהלות במלואן הניתנות לחיבור לכל אשכול EMR, כולל EMR ב-EKS. זה משתמש כניסה יחידה של AWS (SSO) או ספק זהות תואם (IdP) כדי להתחבר ישירות ל-EMR Studio באמצעות כתובת URL מאובטחת תוך שימוש באישורים של החברה.
פריסת EMR Studio לחיבור ל-EMR ב-EKS דורשת שילוב של מספר שירותי AWS:
בנוסף, עליך להתקין את ה-EMR הבא על רכיבי EKS:
פוסט זה עוזר לך לבנות את כל הרכיבים הדרושים ולחבר אותם יחד על ידי הפעלת סקריפט בודד. אנו מתארים גם את הארכיטקטורה של הגדרה זו וכיצד הרכיבים עובדים יחד.
סקירה כללית של אדריכלות
עם EMR ב-EKS, תוכלו להפעיל אפליקציות Spark לצד סוגים אחרים של אפליקציות באותו אשכול EKS של אמזון, מה שמשפר את הקצאת המשאבים ומפשט את ניהול התשתית. למידע נוסף על אופן הפעולה של אמזון EMR בתוך אשכול EKS של אמזון, ראה חדש - Amazon EMR בשירות Amazon Elastic Kubernetes (EKS). EMR Studio מספק IDE מבוסס אינטרנט המקל על פיתוח, הדמיה וניפוי באגים של יישומים הפועלים ב-EMR. למידע נוסף, ראה Amazon EMR Studio (תצוגה מקדימה): חוויית IDE חדשה של מחשב נייד עם Amazon EMR.
גרעיני Spark הם תרמילים מתוזמנים במרחב שמות באשכול EKS של אמזון. EMR Studio משתמש ב-Jupyter Enterprise Gateway (JEG) כדי להשיק ליבות Spark ב- Amazon EKS. נקודת קצה מנוהלת מסוג JEG מסופקת כפריסה של Kubernetes במרחב השמות המשויך של אשכול ה-EMR ונחשפת כשירות Kubernetes. כל אשכול וירטואלי EMR ממפה למרחב שמות של Kubernetes הרשום באשכול EKS של אמזון; אשכולות וירטואליים אינם מנהלים מחשוב פיזי או אחסון, אלא מצביעים על מרחב השמות של Kubernetes שבו מתוזמן עומס העבודה. לכל אשכול וירטואלי יכולים להיות מספר נקודות קצה מנוהלות, שלכל אחת מהן גרעינים מוגדרים משלה למקרי שימוש וצרכים שונים. נקודות קצה מנוהלות של JEG מספקות נקודות קצה HTTPS, בשירות של מאזן עומס יישומים (ALB), שניתן להגיע אליהן רק מ-EMR Studio ומחברות המארח בעצמך, שנוצרו בתוך רשת משנה פרטית של Amazon EKS VPC.
התרשים הבא ממחיש את ארכיטקטורת הפתרונות.
נקודת הקצה המנוהלת נוצרת במרחב השמות של האמזון EKS של האשכול הוירטואלי (במקרה זה, sparkns
) ונקודות הקצה של HTTPS מטופלות מרשתות משנה פרטיות. הפודים של הליבה פועלים עם תפקיד IAM לביצוע עבודה שהוגדר בנקודת הקצה המנוהלת. במהלך יצירת נקודות קצה מנוהלות, EMR ב-EKS משתמש בבקר מאזן עומסים של AWS ב- kube-system
מרחב שמות ליצירת ALB עם קבוצת יעד שמתחברת לנקודת הקצה המנוהלת JEG במרחב השמות של ה-Kubernetes של האשכול הווירטואלי.
אתה יכול להגדיר את הליבה של כל נקודת קצה מנוהלת בצורה שונה. לדוגמה, כדי לאפשר לגרעין Spark להשתמש דבק AWS כקטלוג שלהם, אתה יכול להחיל את קובץ התצורה הבא של JSON ב-configuration-overrides
סמן בעת יצירת נקודת קצה מנוהלת:
נקודת הקצה המנוהלת היא פריסת Kubernetes מולה שירות בתוך מרחב השמות המוגדר (במקרה זה, sparkns
). כאשר אנו עוקבים אחר מידע נקודות הקצה, אנו יכולים לראות כיצד פריסת Jupyter Enterprise Gateway מתחברת ל-ALB ולקבוצת היעד:
כדי לראות איך זה מתחבר, שקול שני מפגשי EMR Studio. ה-ALB חושף את פורט 18888 למפגשי EMR Studio. שירות JEG ממפה את היציאה החיצונית 18888 ב-ALB לדינמית NodePort
על שירות JEG (במקרה זה, 30091). שירות JEG מעביר את התעבורה ל- TargetPort
9547, שמנתב את התנועה לתרמיל הנהג המתאים של Spark. לכל הפעלה של מחברת יש ליבה משלה, שיש לה תרמילים משלו ל-Spark Driver ו-Executor, כפי שהדיאגרמה הבאה ממחישה.
צרף את EMR Studio לאשכול וירטואלי ולנקודת קצה מנוהלת
בכל פעם שמשתמש מצרף אשכול וירטואלי ונקודת קצה מנוהלת ל-Studio Workspace שלו ומשיק הפעלה של Spark, מנהלי התקן של Spark ומבצעי Spark מתוכננים. אתה יכול לראות את זה כשאתה רץ kubectl
כדי לבדוק אילו תרמילים הושקו:
כל הפעלת ליבת Spark של מחברת מחברת פורסת תרמיל מנהלי התקנים ותרמילים לביצוע שממשיכים לפעול עד כיבוי הפעלת הליבה.
הקוד בתאי המחברת פועל ב-executor pods שנפרסו באשכול EKS של אמזון.
הגדר EMR ב-EKS ו-EMR Studio
נדרשים מספר שלבים וחלקים כדי להגדיר גם EMR ב-EKS וגם ב-EMR Studio. הפעלת AWS SSO היא תנאי מוקדם. אתה יכול להשתמש בשני סקריפטי ההשקה המסופקים בסעיף זה או לפרוס אותם באופן ידני באמצעות השלבים המפורטים בהמשך פוסט זה.
אנו מספקים שני תסריטי השקה בפוסט זה. האחד הוא סקריפט bash שמשתמש AWS CloudFormation, eksctl, ו ממשק שורת הפקודה של AWS (AWS CLI) פקודות לספק פריסה מקצה לקצה של פתרון שלם. השני משתמש ב- ערכת פיתוח ענן AWS (AWS CDK) לעשות זאת.
התרשים הבא מציג את הארכיטקטורה והרכיבים שאנו פורסים.
תנאים מוקדמים
הקפד להשלים את התנאים המוקדמים הבאים:
למידע על ה-IDPs הנתמכים, ראה אפשר כניסה יחידה של AWS עבור Amazon EMR Studio.
תסריט בש
התסריט זמין ב GitHub.
תנאים מוקדמים
הסקריפט מחייב אותך להשתמש AWS Cloud9. עקוב אחר ההוראות ב- סדנת אמזון EKS. הקפד לעקוב אחר ההוראות הבאות בקפידה:
לאחר פריסת שולחן העבודה של AWS Cloud9, המשך לשלבים הבאים.
הכנה
השתמש בקוד הבא כדי לשכפל את ה-Repo GitHub ולהכין את הדרישות המוקדמות של AWS Cloud9:
פרוס את הערימה
לפני הפעלת הסקריפט, ספק את המידע הבא:
- מזהה חשבון AWS ואזור, אם שולחן העבודה של AWS Cloud9 שלך אינו נמצא באותו מזהה חשבון או אזור שבו אתה רוצה לפרוס EMR ב-EKS
- השם של שירות אחסון פשוט של אמזון (Amazon S3) דלי ליצור
- משתמש AWS SSO שישויך להפעלת EMR Studio
לאחר שהסקריפט פורס את המחסנית, כתובת ה-URL של EMR Studio שנפרסה מוצגת:
סקריפט AWS CDK
הסקריפטים של AWS CDK זמינים ב- GitHub. אתה צריך לבדוק את main
ענף. הערימות פורסות אשכול EKS של אמזון ו-EMR על אשכול וירטואלי של EKS ב-VPC חדש עם רשתות משנה פרטיות, ואופציונלי אמזון ניהלה את זרימת האוויר של אפאצ'י (Amazon MWAA) סביבת ו-EMR Studio.
תנאים מוקדמים
אתה צריך את AWS CDK גרסה 1.90.1 ומעלה. למידע נוסף, ראה תחילת העבודה עם AWS CDK.
אנו משתמשים ברשימת קידומות כדי להגביל את הגישה למשאבים מסוימים לטווחי IP של הרשת שאתה מאשר. ליצור רשימת קידומות אם אין לך כבר כזה.
אם אתה מתכנן להשתמש ב-EMR Studio, אתה צריך AWS SSO מוגדר בחשבון שלך.
הכנה
לאחר שתשכפל את המאגר ותשלם את main
להסניף, ליצור ולהפעיל סביבה וירטואלית חדשה של Python:
כעת התקן את התלות של Python:
לבסוף, אתחול את AWS CDK:
פרוס את הערימות
סנתז את ערימות AWS CDK עם הקוד הבא:
פקודה זו יוצרת ארבע ערימות:
- emr-eks-cdk – המחסנית הראשית
- mwaa-cdk - מוסיף אמזון MWAA
- studio-cdk - מוסיף תנאים מוקדמים של EMR Studio
- studio-cdk-live - מוסיף EMR Studio
התרשים הבא ממחיש את המשאבים שנפרסו על ידי ערימות CDK של AWS.
התחל על ידי פריסת הערימה הראשונה:
אם אתה רוצה להשתמש ב- Apache Airflow בתור המתזמר שלך, פרוס את הערימה הזו:
פרוס את ערימת EMR Studio הראשונה:
המתן עד שנקודת הקצה המנוהלת תהיה פעילה. אתה יכול לבדוק את המצב על ידי הפעלת הקוד הבא:
מזהה האשכול הוירטואלי זמין בפלט AWS CDK מחסנית emr-eks-cdk.
כאשר נקודת הקצה פעילה, פרוס את הערימה השנייה של EMR Studio:
פריסה ידנית
אם אתה מעדיף לפרוס ידנית EMR ב-EKS ו-EMR Studio, השתמש בשלבים בסעיף זה.
הגדר VPC
אם אתה משתמש ב-Amazon EKS v. 1.18, הגדר VPC שיש לו גם רשתות משנה פרטיות ומתוייג כראוי למאזני עומסים חיצוניים. לתיוג, ראה: איזון עומסי יישומים באמזון EKS ו צור תפקיד שירות EMR Studio.
צור אשכול EKS של אמזון
הפעל אשכול EKS של אמזון עם לפחות קבוצת צמתים מנוהלת אחת. להנחיות, ראה מגדיר ו תחילת העבודה עם אמזון EKS.
צור מדיניות IAM רלוונטית, תפקידים, IdP ואישור SSL/TLS
כדי ליצור מדיניות IAM, תפקידים, IdP ואישור SSL/TLS שלך, בצע את השלבים הבאים:
- אפשר גישה לאשכול עבור EMR ב-EKS.
- צור IdP ב-IAM על סמך כתובת ה-URL של ספק EKS OIDC.
- צור אישור SSL/TLS והצב אותו מנהל תעודות AWS.
- צור את המדיניות והתפקידים הרלוונטיים של IAM:
- תפקיד ביצוע עבודה
- עדכן את מדיניות האמון לתפקיד ביצוע העבודה
- פרוס וצור את מדיניות IAM עבור בקר מאזן העומס של AWS
- תפקיד שירות EMR Studio
- תפקיד משתמש EMR Studio
- מדיניות משתמש של EMR Studio המשויכים למשתמשי וקבוצות של AWS SSO
- רשום את אשכול EKS של אמזון עם אמזון EMR כדי ליצור את אשכול EMR הוירטואלי
- צור את המתאים קבוצות אבטחה לחיבור לכל סטודיו EMR שנוצר:
- קבוצת אבטחת סביבת עבודה
- קבוצת אבטחת מנועים
- תייגו את קבוצות האבטחה בתגים המתאימים. להנחיות, ראה צור תפקיד שירות EMR Studio.
התקנות נדרשות באמזון EKS
פרוס את בקר מאזן עומסים של AWS באשכול EKS של אמזון אם עדיין לא עשית זאת.
צור EMR על יצירות רלוונטיות ל-EKS ומפה את המשתמש ל-EMR Studio
בצע את הצעדים הבאים:
- צור לפחות אשכול וירטואלי אחד של EMR המשויך לאשכול EKS של אמזון. להנחיות, ראה שלב 1 של הגדר את Amazon EMR ב-EKS עבור EMR Studio.
- צור לפחות נקודת קצה מנוהלת אחת. להנחיות, ראה שלב 2 של הגדר את Amazon EMR ב-EKS עבור EMR Studio.
- צור לפחות סטודיו EMR אחד; לשייך את EMR Studio לרשתות המשנה הפרטיות המוגדרות עם אשכול EKS של אמזון. להנחיות, ראה צור סטודיו EMR.
- כאשר סטודיו EMR יהיה זמין, ממפה משתמש או קבוצה של AWS SSO ל-EMR Studio ולהחיל מדיניות IAM מתאימה על אותו משתמש.
השתמש ב-EMR Studio
כדי להתחיל להשתמש ב-EMR Studio, בצע את השלבים הבאים:
- מצא את כתובת האתר של EMR Studio של האולפנים באזור:
- עם כתובת ה-URL הרשומה, היכנס באמצעות שם המשתמש AWS SSO שבו השתמשת קודם לכן.
לאחר האימות, המשתמש מנותב ללוח המחוונים של EMR Studio.
- לבחור צור סביבת עבודה.
- בעד שם סביבת העבודה, הכנס שם.
- בעד תת רשת, בחר את רשת המשנה המתאימה לאחת מרשתות המשנה המשויכות לקבוצת הצמתים המנוהלים.
- בעד מיקום S3, הזן דלי S3 שבו תוכל לאחסן את תוכן המחברת.
- לאחר יצירת סביבת העבודה, בחר אחד שנמצא ב-
Ready
מעמד.
- בסרגל הצד, בחר בסמל אשכול EMR.
- תַחַת סוג אשכולבחר אשכול EMR על EKS.
- בחר את האשכול הווירטואלי הזמין ואת נקודת הקצה המנוהלת הזמינה.
- לבחור לצרף.
לאחר חיבורו, EMR Studio מציג את הגרעינים הזמינים ב- מחברת ו קונסול סָעִיף.
- לבחור PySpark (Kubernetes) כדי להפעיל ליבת מחברת ולהתחיל הפעלת Spark.
מכיוון שתצורת נקודת הקצה כאן משתמשת ב-AWS Glue עבור המטא-store שלו, אתה יכול לרשום את מסדי הנתונים והטבלאות המחוברים לקטלוג הנתונים של AWS Glue Data. אתה יכול להשתמש בסקריפט לדוגמה הבא כדי לבדוק את ההגדרה. שנה את הסקריפט לפי הצורך עבור מסד הנתונים והטבלה המתאימים שיש לך בקטלוג הנתונים שלך:
לנקות את
כדי להימנע מחיובים עתידיים, מחק את המשאבים שהושקו כאן על ידי הפעלת remove_setup.sh:
סיכום
EMR on EKS מאפשר לך להריץ יישומים על מאגר משותף של משאבים בתוך אשכול EKS של אמזון ללא צורך באספקת תשתית. EMR Studio הוא מחברת וכלי Jupyter המנוהלים במלואם המספקים ליבות הפועלות על אשכולות EMR, כולל אשכולות וירטואליים באמזון EKS. בפוסט זה, תיארנו את הארכיטקטורה של האופן שבו EMR Studio מתחבר עם EMR ב-EKS וסיפקנו סקריפטים לפריסה אוטומטית של כל הרכיבים כדי לחבר את שני השירותים.
אם יש לך שאלות או הצעות, אנא השאר תגובה.
על הכותבים
רנדי דפאו הוא אדריכל פתרונות ראשי בשירותי האינטרנט של אמזון. הוא עובד עם לקוחות AWS כדי לספק הדרכה וסיוע טכני בפרויקטים של מסדי נתונים, ועוזר להם לשפר את הערך של הפתרונות שלהם בעת השימוש ב-AWS.
מתיו טאן הוא ארכיטקט פתרונות בכיר ב-Analytics בשירותי האינטרנט של Amazon ומספק הדרכה ללקוחות המפתחים פתרונות עם שירותי AWS Analytics על עומסי העבודה האנליטיים שלהם.
- '
- "
- 100
- 7
- 9
- גישה
- חֶשְׁבּוֹן
- פעיל
- תעשיות
- הַקצָאָה
- אמזון בעברית
- אמזון שירותי אינטרנט
- ניתוח
- אַפָּשׁ
- בקשה
- יישומים
- ארכיטקטורה
- אימות
- AWS
- איזון
- לִבנוֹת
- מקרים
- תעודה
- חיובים
- לתשלום
- מיון
- ענן
- קוד
- Common
- לחשב
- תוכן
- להמשיך
- בקר
- יוצרים
- אישורים
- לקוחות
- לוח מחוונים
- נתונים
- מסד נתונים
- מאגרי מידע
- לפתח
- צעצועי התפתחות
- נהג
- נקודת קצה
- מִפְעָל
- סביבה
- הוצאת להורג
- ניסיון
- מפעל
- ראשון
- לעקוב
- חזית
- עתיד
- Git
- GitHub
- קְבוּצָה
- Hadoop
- כאן
- כוורת
- איך
- HTTPS
- IAM
- ICON
- זהות
- כולל
- מידע
- תשתית
- IP
- IT
- עבודה
- מחברת צדק
- קוברנט
- לשגר
- השקות
- קו
- רשימה
- לִטעוֹן
- ניהול
- מַפָּה
- מפות
- רשת
- מחשבים ניידים
- אפשרות
- אחר
- גופני
- תרמילים
- מדיניות
- מדיניות
- בריכה
- תצוגה מקדימה
- מנהל
- פְּרָטִי
- פרויקטים
- פיתון
- דרישות
- משאב
- משאבים
- הפעלה
- ריצה
- אבטחה
- שירותים
- סט
- פָּשׁוּט
- So
- פתרונות
- SQL
- התחלה
- החל
- מדינה
- מצב
- אחסון
- חנות
- נתמך
- יעד
- טכני
- מבחן
- זמן
- תְנוּעָה
- סומך
- משתמשים
- ערך
- וירטואלי
- אינטרנט
- שירותי אינטרנט
- בתוך
- מילים
- תיק עבודות
- עובד