MapReduce הוא רעיון תכנות חיוני שעליך לשלוט בו כדי להפוך למהנדס נתונים מקצועי. הוא מספק פתרונות למערכות מבוזרות לניהול קבצי נתונים גדולים. לפיכך, הבנת הרקע התיאורטי של MapReduce תהפוך את לימוד הטכניקה עצמה לקלה עבורך.
אבל מה זה MapReduce ואיך זה עובד במערכות קבצים מבוזרות? את זה תגלה בפוסט הזה.
מה זה MapReduce?
MapReduce הוא מודל הנדסת נתונים המיושם על תוכניות או יישומים המעבדים לוגיקה של נתונים גדולים בתוך אשכולות מקבילים של שרתים או צמתים. הוא מפיץ לוגיקה של עיבוד על פני מספר צמתים של נתונים ומצבירה את התוצאות לשרת הלקוח.
MapReduce מבטיח שהעיבוד מהיר, חסכוני בזיכרון ואמין, ללא קשר לגודל הנתונים.
Hadoop File System (HDFS), Google File System (GFS), Apache Kafka, GlusterFS ועוד הן דוגמאות למערכות קבצי ביג דאטה מבוזרות המשתמשות באלגוריתם MapReduce.
מהי מערכת קבצים מבוזרת?
מערכת קבצים מבוזרת (DFS) היא שיטת אחסון במחשוב הכוללת פיצול קבצי נתונים גדולים לנתחים קטנים יותר ופיזורם על פני מספר שרתים בתוך המערכת. זה מאפשר ללקוחות ממקורות שונים לכתוב ולקרוא נתונים, לשתף ולהפעיל לוגיקה ניתנת לתכנות על נתונים - ממש מכל מקום.
מערכת קבצים מבוזרת מורכבת בדרך כלל מהשרת הראשי (נקרא גם NameNode ב-Hadoop), אשכולות מקבילים, ומספר צמתים או שרתים המכילים נתחי נתונים משוכפלים, הכל בנתון מֶרְכָּז. עם זאת, כל אשכול בתוך מערכת הקבצים המבוזרת מכיל מאות עד אלפי צמתים אלה.
השרת הראשי מזהה שינויים בתוך האשכולות באופן אוטומטי. כך שהוא יכול להקצות תפקידים בהתאם לכל צומת.
כאשר השרת הראשי מקבל קובץ נתונים, הוא שולח אותו לאשכולות בתוך DFS. אשכולות אלה מחלקים ומפיצים את הנתונים לכל צומת בתוכם. לאחר מכן כל צומת משכפל את הנתונים למה שנקרא בלוקי נתונים כדי ליצור שרשרת. בשלב זה, כל צומת הופך לשרת chunk.
קָשׁוּר:מהם מרכזי נתונים ולמה הם חשובים?
בנוסף לניהול הגישה לנתונים, השרת הראשי מחזיק הערת מטא נתונים על כל קובץ. כך, הוא יודע איזה צומת מטפל באיזה קובץ בכל אשכול.
כיצד פועלת MapReduce במערכות קבצים מבוזרות?
כפי שהוזכר קודם לכן, נתונים גדולים זמינים במספר שרתי צ'אנק ב-DFS. אחת הדרכים לבצע לוגיקה ניתנת לתכנות על קבצי נתונים אלה היא לצבור אותם לאחד. לאחר מכן תוכל למשוך אותם לשרת יחיד, שמטפל כעת בהיגיון.
למרות שזו דרך קונבנציונלית לשאילתות נתונים, הבעיה היא שהנתונים הופכים שוב לשלם בתוך השרת היחיד. כך ששרת בודד עדיין יצטרך לנהל את ההיגיון בכמה פטה-בייט של נתונים בו-זמנית. לרוע המזל, זו הייתה הבעיה שהמערכת התכוונה לפתור בהתחלה. אז זה לא שיטה מומלצת, אחרי הכל.
קָשׁוּר:כיצד לבצע שאילתות על טבלאות מסד נתונים מרובות בבת אחת עם חיבורי SQL
יתר על כן, צבירה כזו לשרת בודד מהווה מספר סיכונים בביצועים. אלה עשויים לנוע בין קריסת שרת, יעילות חישוב ירודה, זמן השהייה גבוה, צריכת זיכרון גבוהה ופגיעות ועד יותר.
אבל דרך נוספת להפעיל את ההיגיון הניתן לתכנות היא להשאיר את הנתונים בנתחים בתוך כל שרת מבוזר. ואז להזריק את הפונקציה הלוגית לכל שרת. זה אומר שכל שרת נתח בתוך אשכול מטפל כעת בחישוב שלו. שימוש בגישה זו אומר שאין צורך לצבור או למשוך נתונים לשרת בודד.
שיש את הרעיון של MapReduce במערכת קבצי נתונים מבוזרת. זה מבטיח ששרת בודד לא צריך למשוך נתונים מהמקור. במקום זאת, הוא מפזר את פונקציית העיבוד (MapReduce) למספר צמתים נפרדים אשכולות, כך שכל צומת בתוך כל אשכול מטפל בלוגיקה בנפרד מבלי להעמיס אף אחד שרת.
כתוצאה מכך, מספר שרתים מטפלים בהיגיון בפיסות נתונים במקביל. חלוקה זו של עבודה בין שרתים גורמת לביצועים מיטביים ואבטחה גבוהה יותר, בין היתר.
כיצד מעובדת תוצאת MapReduce ב-DFS?
כך פועל כל עיבוד MapReduce ב-DFS:
- השרת הראשי מקבל שאילתת נתונים גדולים (פונקציית MapReduce) מהלקוח.
- לאחר מכן הוא שולח את זה לכל אשכול כדי לפזר אותו על פני כל צומת בתוכו.
- כל צומת מעבד את הפונקציה MapReduce ומצטבר את התוצאה שלה.
- שרת אחר אוסף את התוצאות מכל צומת ושולח אותן בחזרה לשרת הראשי.
- לאחר מכן השרת הראשי שולח את התוצאה כתגובה ללקוח.
לפיכך, התפקיד היחיד של שרת ראשי הוא לשלוח תוצאה ממוחשבת בקלות ללקוח, להאזין לשינויים ולנהל גישה לנתונים. זה לא מבצע שום חישובים. זו הסיבה שרוב יישומי מחשוב הענן מהירים בצורה מרשימה למרות כמות הנתונים שהם מעבדים.
מה זה בדיוק המפה והקטנה ב-MapReduce?
MapReduce משתמשת בשני לוגיקה תכנותית לעיבוד נתונים גדולים במערכת ניהול קבצים מבוזרת (DFS). אלה הם מפה ומקטינים פונקציה.
ה מַפָּה הפונקציה מבצעת את עבודת העיבוד בכל אחד מצמתי הנתונים בכל אשכול של מערכת קבצים מבוזרת. ה לְהַפחִית לאחר מכן, הפונקציה אוספת את התוצאות המוחזרות על ידי כל שרת נתחים ומעבירה אותו לשרת אחר בתוך DFS לצורך צבירת תוצאות. השרת המקבל שולח את החישוב הזה לשרת הראשי, שמפרסם את הערך המוחזר לשרת בצד הלקוח.
מה קורה כששרת צ'אנק נופל?
שרתים בתוך מערכת קבצים מבוזרת (DFS) עשויים לחוות השבתה לפעמים. אתה אולי חושב שזה ישבור את המערכת כולה, אבל זה לא.
יש מערכת במחשוב שמונעת התמוטטות קרובה כזו. זה נקרא סובלנות תקלות.
קָשׁוּר:מהו מחשוב ענן? איך עובדת טכנולוגיית הענן?
מכאן שגם כאשר שרת נכבה במהלך עיבוד נתונים, סובלנות תקלות מבטיחה שהשרת הראשי מזהה אותו באופן מיידי. ומכיוון שיש העתק של נתחי הנתונים על פני הצמתים, השרת הראשי מעביר באופן מיידי את עבודת העיבוד לשרת אחר. בדרך זו, זמן השבתה של השרת בתוך DFS אינו משפיע על עיבוד הנתונים.
MapReduce מקל על עיבוד Big Data
MapReduce הוא מודל חיוני שמקל על מחשוב במערכות קבצים מבוזרות. מכיוון שהיא מאפשרת למספר צמתים להריץ חישוב במקביל, זוהי שיטה מהירה המשמשת ענקיות טכנולוגיה שונות כדי לפתור רבות מהבעיות הנלוות לניתוח ביג דאטה.
גוגל, אמזון, יבמ, בין היתר, הן דוגמאות לחברות שמשתמשות במושג הזה. גוגל, למשל, מיישמת את הרעיון של MapReduce כדי להביא תוצאות שאילתות במהלך החיפוש בגוגל.
ביג דאטה מניע תעשיות רבות ויש לו השפעה על חיי כולנו. אבל האם זה יותר מסוכן או מועיל?
קרא הבא
- תִכנוּת
- תִכנוּת
- ביג דאטה
- ניתוח נתונים
Idowu נלהב מכל דבר טכנולוגי ופרודוקטיביות חכמה. בזמנו הפנוי הוא משתעשע בקידוד ועובר ללוח השחמט כשהוא משועמם, אבל הוא גם אוהב להתנתק מהשגרה מדי פעם. התשוקה שלו להראות לאנשים את הדרך סביב הטכנולוגיה המודרנית מניעה אותו לכתוב יותר.
הירשם לניוזלטר שלנו
הצטרף לניוזלטר שלנו לקבלת טיפים טכניים, ביקורות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!
לחץ כאן כדי להירשם