זמן הריצה של Amazon EMR עבור Apache Spark הוא זמן ריצה מותאם לביצועים עבור Apache Spark התואם ב-100% API עם Apache Spark בקוד פתוח. עם אמזון EMR מהדורה 6.9.0, זמן הריצה של EMR עבור Apache Spark תומך בגרסה המקבילה של Spark 3.3.0.
עם Amazon EMR 6.9.0, אתה יכול כעת להפעיל את יישומי Apache Spark 3.x שלך מהר יותר ובעלות נמוכה יותר מבלי לדרוש שינויים באפליקציות שלך. במבחני הביצועים שלנו, שנגזרו מבדיקות ביצועים של TPC-DS בקנה מידה של 3 TB, מצאנו שזמן הריצה של ה-EMR עבור Apache Spark 3.3.0 מספק שיפור ביצועים פי 3.5 (באמצעות זמן ריצה כולל) בממוצע לעומת Apache Spark 3.3.0 בקוד פתוח. XNUMX.
בפוסט זה, אנו מנתחים את התוצאות ממבחני הבנצ'מרק שלנו בהפעלת יישום TPC-DS Apache Spark בקוד פתוח ולאחר מכן על Amazon EMR 6.9, שמגיע עם זמן ריצה אופטימלי של Spark התואם ל-Spark בקוד פתוח. אנו עוברים על ניתוח עלויות מפורט ולבסוף מספקים הוראות שלב אחר שלב להפעלת ה-benchmark.
תוצאות נצפו
כדי להעריך את שיפורים בביצועים, השתמשנו בכלי עזר לבדיקת ביצועים של Spark בקוד פתוח, שנגזר מערך הכלים לבדיקת ביצועים של TPC-DS. הרצנו את הבדיקות על צבר EMR עם שבעה צמתים (שישה צמתים וצומת ראשי אחד) c5d.9xlarge עם זמן ריצה EMR עבור Apache Spark, ואשכול שני בניהול עצמי של שבעה צמתים על ענן מחשוב אלסטי של אמזון (Amazon EC2) עם גרסת הקוד הפתוח המקבילה של Spark. הרצנו את שתי הבדיקות עם נתונים שירות אחסון פשוט של אמזון (אמזון S3).
הקצאת משאבים דינמית (DRA) היא תכונה נהדרת לשימוש עבור עומסי עבודה משתנים. עם זאת, עבור תרגיל בנצ'מרקינג שבו אנו משווים שתי פלטפורמות אך ורק על ביצועים, ונפחי נתוני הבדיקה אינם משתנים (3 TB במקרה שלנו), אנו מאמינים שעדיף להימנע משונות כדי להפעיל השוואה בין תפוחים לתפוחים. בבדיקות שלנו הן בקוד פתוח ב-Spark והן ב- Amazon EMR, השבתנו את DRA תוך כדי הפעלת אפליקציית ההשוואה.
הטבלה הבאה מציגה את זמן הריצה הכולל של העבודה עבור כל השאילתות (בשניות) במערך הנתונים של השאילתות של 3 TB בין Amazon EMR גרסה 6.9.0 לבין קוד פתוח של Spark גרסה 3.3.0. ראינו שלמבחני ה-TPC-DS שלנו זמן ריצה כולל של אמזון EMR ב-Amazon EC2 היה מהיר פי 3.5 מזה באמצעות אשכול Spark בקוד פתוח באותה תצורה.
ההאצה לכל שאילתה באמזון EMR 6.9 עם ובלי זמן הריצה EMR עבור Apache Spark מומחשת בתרשים הבא. הציר האופקי מציג כל שאילתה במדד 3 TB. הציר האנכי מציג את המהירות של כל שאילתה עקב זמן הריצה של EMR. שיפורי הביצועים הבולטים מהירים יותר פי 10 עבור שאילתות TPC-DS 24b, 72, 95 ו-96.
ניתוח עלויות
שיפורי הביצועים של זמן הריצה EMR עבור Apache Spark מתורגמים ישירות לעלויות נמוכות יותר. הצלחנו להשיג חיסכון בעלויות של 67% בהפעלת אפליקציית הבנצ'מרק באמזון EMR בהשוואה לעלות שנגרמה להפעלת אותה אפליקציה בקוד פתוח Spark ב-Amazon EC2 עם אותו גודל אשכולות, בשל שעות מופחתות של אמזון EMR ואמזון שימוש ב-EC2. תמחור אמזון EMR מיועד ליישומי EMR הפועלים על אשכולות EMR עם מופעי EC2. המחיר של אמזון EMR מתווסף למחירי המחשוב והאחסון הבסיסיים כגון מחיר מופע EC2 ו חנות בלוקים אלסטית של אמזון (Amazon EBS) עלות (אם מצרף נפחי EBS). בסך הכל, עלות ההשוואה המשוערת באזור מזרח ארה"ב (נ' וירג'יניה) היא $27.01 לריצה עבור Spark בקוד פתוח ב-Amazon EC2 ו-$8.82 להרצה עבור Amazon EMR.
ג'וב בנצ'מרק | זמן ריצה (שעה) | מחיר משוער | סה"כ מופע EC2 | סך vCPU | זיכרון כולל (GiB) | מכשיר שורש (Amazon EBS) |
Spark בקוד פתוח באמזון EC2 (1 ראשי ו-6 צמתים ליבה) |
2.23 | $27.01 | 7 | 252 | 504 | 20 GiB gp2 |
אמזון EMR באמזון EC2 (1 ראשי ו-6 צמתים ליבה) |
0.63 | $8.82 | 7 | 252 | 504 | 20 GiB gp2 |
פירוט עלויות
להלן פירוט העלויות עבור עבודת Spark בקוד פתוח ב-Amazon EC2 (27.01$):
- סך העלות של Amazon EC2 – (7 * $1.728 * 2.23) = (מספר המקרים * תעריף שעתי c5d.9xlarge * זמן ריצה של עבודה בשעה) = $26.97
- עלות אמזון EBS – ($0.1/730 * 20 * 7 * 2.23) = (Amazon EBS לתעריף לשעה של GB * גודל EBS שורש * מספר מופעים * זמן ריצה של עבודה בשעה) = $0.042
להלן פירוט העלויות עבור אמזון EMR בעבודת אמזון EC2 ($8.82):
- סך העלות של אמזון EMR – (7 * $0.27 * 0.63) = ((מספר צמתים הליבה + מספר צמתים ראשיים)* c5d.9xlarge Amazon EMR מחיר * זמן ריצה של עבודה בשעה) = $1.19
- סך העלות של Amazon EC2 – (7 * $1.728 * 0.63) = ((מספר צמתים הליבה + מספר צמתים ראשיים)* c5d.9xlarge מופע מחיר * זמן ריצה של עבודה בשעה) = $7.62
- עלות אמזון EBS – ($0.1/730 * 20 GiB * 7 * 0.63) = (Amazon EBS לתעריף לשעה של GB * גודל EBS * מספר מופעים * זמן ריצה של עבודה בשעה) = $0.012
הגדר benchmarking של OSS Spark
בסעיפים הבאים, אנו מספקים מתאר קצר של השלבים הכרוכים בהגדרת ה-benchmarking. להנחיות מפורטות עם דוגמאות, עיין ב GitHub ריפו.
עבור השוואת OSS Spark שלנו, אנו משתמשים בכלי הקוד הפתוח פלינטרוק כדי להשיק את אמזון EC2 שלנו אפאצ 'י ספארק אֶשׁכּוֹל. Flintrock מספק דרך מהירה להשיק אשכול Apache Spark באמזון EC2 באמצעות שורת הפקודה.
תנאים מוקדמים
השלם את השלבים המוקדמים הבאים:
- יש Python 3.7.x ומעלה.
- יש Pip3 22.2.2 ומעלה.
- הוסף את ספריית Python bin לנתיב הסביבה שלך. הקובץ הבינארי של Flintrock יותקן בנתיב זה.
- הפעלה
aws configure
כדי להגדיר את שלך ממשק שורת הפקודה של AWS (AWS CLI) מעטפת כדי להצביע על חשבון ההשוואה. מתייחס תצורה מהירה עם תצורת aws לקבלת הוראות. - יש לי זוג מפתחות עם הרשאות קובץ מגבילות לגשת לצומת הראשי של OSS Spark.
- צור דלי S3 חדש בחשבון הבדיקה שלך במידת הצורך.
- העתק את נתוני המקור של TPC-DS כקלט לדלי S3 שלך.
- בנו את אפליקציית ההשוואה לפי השלבים המפורטים ב שלבים לבניית אפליקציית ניצוץ-benchmark-assembly. לחלופין, אתה יכול להוריד קובץ מראש spark-benchmark-assembly-3.3.0.jar אם אתה רוצה יישום מבוסס Spark 3.3.0.
פרוס את אשכול Spark והפעל את עבודת ההשוואה
בצע את הצעדים הבאים:
- התקן את כלי Flintrock באמצעות pip כפי שמוצג ב שלבים להגדרת OSS Spark Benchmarking.
- הפעל את הפקודה flintrock configure, אשר מקפיצה קובץ הגדרות ברירת מחדל.
- שנה את ברירת המחדל
config.yaml
קובץ בהתאם לצרכים שלך. לחלופין, העתק והדבק את קובץ config.yaml התוכן לקובץ התצורה המוגדר כברירת מחדל. לאחר מכן שמור את הקובץ במקום בו היה. - לבסוף, הפעל את אשכול Spark בעל 7 הצמתים באמזון EC2 דרך Flintrock.
זה אמור ליצור אשכול Spark עם צומת ראשי אחד ושישה צומת עבודה. אם אתה רואה הודעות שגיאה כלשהן, בדוק שוב את ערכי קובץ התצורה, במיוחד את גרסאות Spark ו-Hadoop ואת התכונות של מקור הורדה ו-AMI.
אשכול OSS Spark אינו מגיע עם מנהל משאבי YARN. כדי להפעיל את זה, עלינו להגדיר את האשכול.
- הורד yarn-site.xml ו enable-yarn.sh קבצים מהמאגר של GitHub.
- החלף עם כתובת ה-IP של הצומת הראשי באשכול Flintrock שלך.
אתה יכול לאחזר את כתובת ה-IP ממסוף אמזון EC2.
- העלה את הקבצים לכל הצמתים של אשכול Spark.
- הפעל את סקריפט ה-enable-yarn.
- הפעל את תמיכת Snappy ב-Hadoop (עבודת ההשוואה קוראת נתונים דחוסים של Snappy).
- הורד את קובץ ה-JAR של יישום השירות המבחן spark-benchmark-assembly-3.3.0.jar למכונה המקומית שלך.
- העתק את הקובץ הזה לאשכול.
- היכנס לצומת הראשי והתחל את YARN.
- שלח את משימת ההשוואה באשכול הקוד הפתוח Spark כפי שמוצג ב שלח את עבודת ההשוואה.
סכמו את התוצאות
הורד את קובץ תוצאות הבדיקה מדלי הפלט S3 s3://$YOUR_S3_BUCKET/EC2_TPCDS-TEST-3T-RESULT/timestamp=xxxx/summary.csv/xxx.csv
. (החלף $YOUR_S3_BUCKET
עם שם דלי S3 שלך.) אתה יכול להשתמש בקונסולת Amazon S3 ולנווט למיקום הפלט S3 או להשתמש ב-AWS CLI.
היישום Spark benchmark יוצר תיקיית חותמת זמן וכותב קובץ סיכום בתוך קידומת summary.csv. חותמת הזמן ושם הקובץ שלך יהיו שונים מזה המוצג בדוגמה הקודמת.
לקובצי ה-CSV הפלט יש ארבע עמודות ללא שמות כותרות. הם:
- שם שאילתה
- זמן חציוני
- מינימום זמן
- זמן מקסימלי
צילום המסך הבא מציג פלט לדוגמה. הוספנו באופן ידני שמות עמודות. הדרך שבה אנו מחשבים את הגיאומאני ואת זמן הריצה הכולל של העבודה מבוססת על אמצעים אריתמטיים. תחילה ניקח את הממוצע של ערכי ה-med, המינימום והמקסימום באמצעות הנוסחה AVERAGE(B2:D2). לאחר מכן ניקח ממוצע גיאומטרי של העמודה Avg באמצעות הנוסחה GEOMEAN(E2:E105).
הגדר benchmarking של אמזון EMR
להנחיות מפורטות, ראה שלבים להגדרת Benchmarking EMR.
תנאים מוקדמים
השלם את השלבים המוקדמים הבאים:
- הפעלה
aws configure
כדי להגדיר את מעטפת ה-AWS CLI שלך כך שתצביע על חשבון ההשוואה. מתייחס תצורה מהירה עם תצורת aws לקבלת הוראות. - העלה את אפליקציית הבנצ'מרק לאמזון S3.
פרוס את אשכול ה-EMR והפעל את עבודת ה-benchmark
בצע את הצעדים הבאים:
- הפוך את Amazon EMR במעטפת AWS CLI שלך באמצעות שורת הפקודה כפי שמוצג ב פרוס Cluster EMR והפעל את עבודת ההשוואה.
- הגדר את Amazon EMR עם צמתים ראשיים אחד (c5d.9xlarge) ושישה ליבות (c5d.9xlarge). מתייחס ליצור-אשכול לתיאור מפורט של אפשרויות AWS CLI.
- אחסן את מזהה האשכול מהתגובה. אתה צריך את זה בשלב הבא.
- שלח את משימת ההשוואה באמזון EMR באמצעות שלבי הוספה ב-AWS CLI.
סכמו את התוצאות
סכמו את התוצאות מדלי הפלט s3://$YOUR_S3_BUCKET/blog/EMRONEC2_TPCDS-TEST-3T-RESULT
באותו אופן כמו שעשינו עבור תוצאות OSS והשוואה.
לנקות את
כדי להימנע מחיובים עתידיים, מחק את המשאבים שיצרת באמצעות ההוראות ב- קטע ניקוי של ריפו של GitHub.
- עצור את אשכולות EMR ו-OSS Spark. אתה יכול גם למחוק אותם אם אתה לא רוצה לשמור את התוכן. אתה יכול למחוק משאבים אלה על ידי הפעלת הסקריפט cleanup-benchmark-env.sh ממסוף בסביבת ההשוואה שלך.
- אם השתמשת AWS Cloud9 בתור ה-IDE שלך לבניית קובץ JAR של יישום ההשוואה באמצעות שלבים לבניית אפליקציית ניצוץ-benchmark-assembly, ייתכן שתרצה למחוק גם את הסביבה.
סיכום
אתה יכול להפעיל את עומסי העבודה של Apache Spark שלך 3.5 פעמים (בהתבסס על זמן ריצה כולל) מהר יותר ובעלות נמוכה יותר מבלי לבצע שינויים כלשהם באפליקציות שלך באמצעות Amazon EMR 6.9.0.
כדי להתעדכן, הירשם לבלוג של Big Data הזנת RSS למידע נוסף על זמן הריצה של EMR עבור Apache Spark, שיטות עבודה מומלצות לתצורה וייעוץ לכוונון.
למבחני אמת מידה קודמים, ראה הפעל עומסי עבודה של Apache Spark 3.0 מהר יותר פי 1.7 עם זמן ריצה של Amazon EMR עבור Apache Spark. שים לב שתוצאת ההשוואה בעבר של פי 1.7 ביצועים התבססה על ממוצע גיאומטרי. בהתבסס על ממוצע גיאומטרי, הביצועים באמזון EMR 6.9 היו מהירים פי שניים.
על המחברים
Sekar Srinivasan הוא ארכיטקט פתרונות מומחה ב-AWS המתמקד בביג דאטה ואנליטיקס. ל-Sekar יש למעלה מ-20 שנות ניסיון בעבודה עם נתונים. הוא נלהב לעזור ללקוחות לבנות פתרונות ניתנים להרחבה תוך מודרניזציה של הארכיטקטורה שלהם ויצירת תובנות מהנתונים שלהם. בזמנו הפנוי הוא אוהב לעבוד בפרויקטים ללא מטרות רווח, במיוחד כאלה המתמקדים בחינוך ילדים מוחלשים.
פראבו רביצ'נדרן הוא ארכיטקט נתונים בכיר עם שירותי האינטרנט של אמזון, המתמקד באנליטיקה, ארכיטקטורת לייק נתונים והטמעה. הוא עוזר ללקוחות לתכנן ולבנות פתרונות מדרגיים וחזקים באמצעות שירותי AWS. בזמנו הפנוי, פראבו נהנה לטייל ולבלות עם המשפחה.
- הפצת תוכן ויחסי ציבור מופעל על ידי SEO. קבל הגברה היום.
- Platoblockchain. Web3 Metaverse Intelligence. ידע מוגבר. גישה כאן.
- מקור: https://aws.amazon.com/blogs/big-data/run-apache-spark-workloads-3-5-times-faster-with-amazon-emr-6-9/
- 1
- 10
- 100
- 1040
- שנים 20
- 7
- 9
- a
- יכול
- אודות
- מֵעַל
- גישה
- חֶשְׁבּוֹן
- הוסיף
- כתובת
- עצה
- תעשיות
- הַקצָאָה
- אמזון בעברית
- אמזון
- אמזון EMR
- אמזון שירותי אינטרנט
- אנליזה
- ניתוח
- לנתח
- ו
- אַפָּשׁ
- אפאצ 'י ספארק
- API
- בקשה
- יישומים
- ארכיטקטורה
- תכונות
- מְמוּצָע
- AVG
- AWS
- צִיר
- מבוסס
- תאמינו
- בנצ 'מרק
- הטוב ביותר
- שיטות עבודה מומלצות
- בֵּין
- גָדוֹל
- נתונים גדולים
- לחסום
- התמוטטות
- לִבנוֹת
- בִּניָן
- מקרה
- שינוי
- שינויים
- חיובים
- תרשים
- אשכול
- טור
- עמודות
- איך
- לְהַשְׁווֹת
- השוואה
- תואם
- לחשב
- תְצוּרָה
- קונסול
- תוכן
- ליבה
- עלות
- חיסכון עלויות
- עלויות
- לִיצוֹר
- נוצר
- יוצר
- לקוחות
- נתונים
- אגם דאטה
- תַאֲרִיך
- בְּרִירַת מֶחדָל
- נגזר
- תיאור
- מְפוֹרָט
- מכשיר
- DID
- אחר
- ישירות
- נכה
- לא
- לא
- להורדה
- כל אחד
- מזרח
- ebs
- חינוך
- לאפשר
- סביבה
- שווה
- שגיאה
- במיוחד
- מוערך
- Ether (ETH)
- להעריך
- דוגמה
- דוגמאות
- תרגיל
- ניסיון
- משפחה
- מהר יותר
- מאפיין
- שלח
- קבצים
- בסופו של דבר
- ראשון
- מרוכז
- מְרוּכָּז
- הבא
- נוסחה
- מצא
- חופשי
- החל מ-
- עתיד
- רווחים
- יצירת
- GitHub
- גדול
- Hadoop
- עזרה
- עוזר
- מאוזן
- שעות
- אולם
- HTML
- HTTPS
- הפעלה
- השבחה
- שיפורים
- in
- קלט
- תובנות
- למשל
- הוראות
- מעורב
- IP
- כתובת IP
- IT
- עבודה
- שמור
- אגם
- לשגר
- לִלמוֹד
- קו
- מקומי
- מיקום
- מכונה
- עשייה
- מנהל
- דרך
- באופן ידני
- מקסימום
- אומר
- זכרון
- הודעות
- יותר
- שם
- שמות
- נווט
- צורך
- נחוץ
- צרכי
- חדש
- הבא
- צומת
- צמתים
- ללא כוונת רווח
- יַקִיר
- מספר
- ONE
- קוד פתוח
- אופטימיזציה
- אפשרויות
- להזמין
- לנו
- מתווה
- מקיף
- לוהט
- עבר
- נתיב
- ביצועים
- הרשאות
- פלטפורמות
- אפלטון
- מודיעין אפלטון
- אפלטון נתונים
- נקודה
- פופס
- הודעה
- פרקטיקות
- מחיר
- מחירים
- תמחור
- יְסוֹדִי
- פְּרָטִי
- פרויקטים
- לספק
- ובלבד
- מספק
- אַך וְרַק
- פיתון
- מָהִיר
- ציון
- להבין
- מופחת
- באזור
- לשחרר
- להחליף
- משאב
- משאבים
- תגובה
- מגבילה
- תוצאה
- תוצאות
- חָסוֹן
- שורש
- הפעלה
- ריצה
- אותו
- שמור
- חיסכון
- להרחבה
- סולם
- שְׁנִיָה
- שניות
- סעיף
- סעיפים
- לחצני מצוקה לפנסיונרים
- שירותים
- הצבה
- התקנה
- פָּגָז
- צריך
- הראה
- הופעות
- פָּשׁוּט
- שישה
- מידה
- פתרונות
- מָקוֹר
- לעורר
- מומחה
- הוצאה
- התחלה
- שלב
- צעדים
- אחסון
- הירשמו
- כזה
- סיכום
- תמיכה
- תומך
- שולחן
- לקחת
- מסוף
- מבחן
- בדיקות
- השמיים
- שֶׁלָהֶם
- דרך
- זמן
- פִּי
- חותם
- ל
- כלי
- ארגז כלים
- סה"כ
- לתרגם
- נסיעה
- בְּסִיסִי
- מעוטי יכולת
- us
- נוֹהָג
- להשתמש
- תועלת
- ערכים
- גרסה
- באמצעות
- וירג'יניה
- כרכים
- אינטרנט
- שירותי אינטרנט
- אשר
- בזמן
- יצטרך
- לְלֹא
- תיק עבודות
- עובד
- עובד
- X
- XML
- יאמל
- שנים
- זפירנט