מהו MapReduce ב- Hadoop? אדריכלות | דוגמא

מהו MapReduce ב- Hadoop?

MapReduce היא מסגרת תוכנה ומודל תכנות המשמש לעיבוד כמויות עצומות של נתונים. MapReduce עבודת התוכנית בשני שלבים, כלומר מפה וצמצום. משימות מפה עוסקות בפיצול ומיפוי של נתונים בעוד צמצום משימות דשדוש וצמצום הנתונים.

Hadoop מסוגלת להריץ תוכניות MapReduce הכתובות בשפות שונות: Java, Ruby, Python ו- C ++. התוכניות של Map Reduce במחשוב ענן הן מקבילות, ולכן שימושיות מאוד לביצוע ניתוח נתונים בקנה מידה גדול באמצעות מכונות מרובות באשכול.

הקלט לכל שלב הוא ערך מפתח זוגות. בנוסף, כל מתכנת צריך לציין שתי פונקציות: פונקציית מפה ו להפחית את התפקוד .

במדריך Hadoop MapReduce למתחילים זה, תלמד-

ארכיטקטורת MapReduce ב- Big Data מוסברת בפירוט

התהליך כולו עובר ארבעה שלבי ביצוע, כלומר פיצול, מיפוי, ערבוב וצמצום.

עכשיו במדריך MapReduce הזה, בואו נבין עם דוגמה של MapReduce–

קח בחשבון שיש לך נתוני קלט הבאים לתוכנית MapReduce ב- Big Data | _+_ |

MapReduce אדריכלות



הפלט הסופי של המשימה MapReduce הוא

רַע 1
מעמד 1
טוֹב 1
Hadoop 3
הוא 2
ל 1
ברוך הבא 1

הנתונים עוברים את השלבים הבאים של MapReduce ב- Big Data

פיצולי קלט:

קלט למשרת MapReduce בביג דאטה מחולק לחתיכות בגודל קבוע הנקראות פיצולי קלט פיצול קלט הוא נתח של הקלט הנצרך על ידי מפה אחת

מיפוי

זהו השלב הראשון בביצוע תוכנית להפחתת מפות. בשלב זה הנתונים בכל פיצול מועברים לפונקציית מיפוי כדי לייצר ערכי פלט. בדוגמה שלנו, תפקיד של שלב המיפוי הוא לספור מספר מופעים של כל מילה מפיצולי קלט (פרטים נוספים אודות פיצול קלט ניתן להלן) ולהכין רשימה בצורה של

דשדוש

שלב זה צורך את התפוקה של שלב המיפוי. משימתה היא לאחד את הרשומות הרלוונטיות מפלט שלב המיפוי. בדוגמה שלנו, אותן מילים מחוברות יחד עם התדירות שלהן.

צמצום

בשלב זה מצטברים ערכי פלט משלב הדשדוש. שלב זה משלב ערכים משלב הדשדוש ומחזיר ערך פלט יחיד. בקיצור, שלב זה מסכם את מערך הנתונים המלא.

בדוגמה שלנו, שלב זה מצטבר הערכים משלב הדשדוש, כלומר, מחשב את המופעים הכוללים של כל מילה.

MapReduce אדריכלות מוסברת בפירוט

  • נוצרת משימת מפה אחת לכל פיצול ולאחר מכן מבצעת פונקציית מפה עבור כל רשומה בפיצול.
  • תמיד כדאי שיהיו פיצולים מרובים מכיוון שהזמן הנדרש לעיבוד פיצול קטן בהשוואה לזמן הנדרש לעיבוד כל הקלט. כאשר הפיצולים קטנים יותר, עדיף לעבד את העיבוד מאוזן מכיוון שאנו מעבדים את הפיצולים במקביל.
  • עם זאת, גם לא רצוי שיהיו פיצולים קטנים מדי. כאשר פיצולים קטנים מדי, עומס יתר של ניהול הפיצולים ויצירת משימות המפה מתחיל לשלוט בזמן ביצוע העבודה הכולל.
  • עבור רוב העבודות, עדיף לבצע גודל פיצול השווה לגודל של בלוק HDFS (שהוא 64 MB, כברירת מחדל).
  • ביצוע משימות מפה גורם לכתיבת פלט לדיסק מקומי בצומת המתאים ולא ל- HDFS.
  • הסיבה לבחירת דיסק מקומי על פני HDFS היא להימנע משכפול המתקיים במקרה של פעולת חנות HDFS.
  • פלט מפה הוא פלט ביניים המעובד על ידי הפחתת משימות כדי לייצר את הפלט הסופי.
  • לאחר השלמת העבודה, ניתן לזרוק את פלט המפה. אז אחסוןו ב- HDFS עם שכפול הופך להיות מוגזם.
  • במקרה של כשל בצומת, לפני שפלט המפה נצרך על ידי משימת הצמצום, Hadoop מפעילה מחדש את משימת המפה בצומת אחר ויוצרת מחדש את פלט המפה.
  • צמצום המשימה אינו פועל על הרעיון של יישוב נתונים. פלט של כל משימת מפה מוזנה למשימת הקטנה. פלט המפה מועבר למכונה שבה פועלת משימת צמצום.
  • במכונה זו, הפלט מוזג ואז מועבר לפונקציית ההפחתה שהוגדרה על ידי המשתמש.
  • שלא כמו פלט המפה, הפחת הפחתה מאוחסן ב- HDFS (ההעתק הראשון מאוחסן בצומת המקומי והעתקים אחרים מאוחסנים בצמתים מחוץ למעמד). לכן, כתיבת הפחת הפחת

כיצד מארגן MapReduce את העבודה?

כעת במדריך MapReduce זה, נלמד כיצד פועל MapReduce

Hadoop מחלק את התפקיד למשימות. ישנם שני סוגי משימות:

  1. משימות מפה (פיצולים ומיפוי)
  2. צמצם משימות (דשדוש, הפחתה)

כמוזכר לעיל.

תהליך הביצוע המלא (ביצוע משימות מפה וצמצום, שניהם) נשלט על ידי שני סוגים של ישויות הנקראות א

  1. גשש עבודה : מתנהג כמו א לִשְׁלוֹט (אחראי לביצוע מלא של העבודה שהוגשה)
  2. עוקבי משימות מרובים : מתנהג כמו עבדים, כל אחד מהם מבצע את העבודה

לכל עבודה המוגשת לביצוע במערכת, יש אחת גשש עבודה המתגורר ב נאמנאוד ויש מספר משימות משימות המתגוררים ב Datanode .

כיצד פועל Hadoop MapReduce

  • משרה מחולקת למספר משימות אשר מופעלות לאחר מכן על מספר קשרי נתונים באשכול.
  • באחריות מעקב העבודה לתאם את הפעילות על ידי תזמון משימות להפעלה על צומת נתונים שונים.
  • ביצוע המטלה האישית הוא לאחר מכן להשגיח על ידי עוקב המשימות, המתגורר על כל צומת נתונים המבצע חלק מהעבודה.
  • אחריות מעקב המשימות היא לשלוח את דו'ח ההתקדמות למעקב אחר התפקידים.
  • בנוסף, גשש המשימות שולח מעת לעת 'דופק לב' לאותת ל- Jobtracker כדי להודיע ​​לו על המצב הנוכחי של המערכת.
  • לפיכך מעקב אחר משרות עוקב אחר ההתקדמות הכוללת של כל עבודה. במקרה של כשל במשימה, גשש העבודה יכול לתזמן אותו מחדש על גשש משימות אחר.