ما هو MapReduce في Hadoop؟ Archiالهيكل والمخطط
⚡ ملخص ذكي
MapReduce هو نموذج برمجة Hadoop الذي يحول مجموعة بيانات كبيرة إلى نتيجة صغيرة عن طريق تشغيل دالة map على كل جزء من المدخلات ثم دالة reduce على القيم الوسيطة المجمعة.
ما هو MapReduce في Hadoop؟
MapReduce هو إطار عمل برمجي ونموذج برمجة يُستخدم لمعالجة كميات هائلة من البيانات. تعمل برامج MapReduce على مرحلتين، هما: Map وReduce. تتولى مهام Map تقسيم البيانات ثم تطبيقها على البيانات المُعالجة.ping من البيانات أثناء قيام مهام التخفيض بإعادة ترتيب البيانات وتقليلها.
Hadoop قادر على تشغيل برامج MapReduce المكتوبة بلغات مختلفة: Javaروبي, Pythonو C++برامج MapReduce متوازية بطبيعتها، لذا فهي مفيدة للغاية لإجراء تحليل البيانات على نطاق واسع باستخدام أجهزة متعددة في المجموعة.
تتكون مدخلات كل مرحلة من أزواج المفاتيح والقيم. بالإضافة إلى ذلك، يحتاج كل مبرمج إلى تحديد دالتين: دالة الخريطة ودالة الاختزال.
مابريديوس Archiوأوضح tecture في البيانات الضخمة مع المثال
تمر العملية برمتها بأربع مراحل تنفيذية وهي: التقسيم، والتخطيط.ping، وإعادة ترتيبها، وتقليصها.
والآن في هذا الدرس التعليمي حول MapReduce، دعونا نفهم ذلك من خلال مثال MapReduce.
لنفترض أن لديك بيانات الإدخال التالية لبرنامج MapReduce الخاص بك في البيانات الكبيرة :
Welcome to Hadoop Class Hadoop is good Hadoop is bad
الرسم البياني أدناه tracقم بتمرير هذه الخطوط الثلاثة عبر كل مرحلة، بدءًا من تقسيمات الإدخال على اليسار وحتى عدد الكلمات النهائي على اليمين.
الإخراج النهائي لمهمة MapReduce هو
| سيئة | 1 |
| الفئه | 1 |
| خير | 1 |
| Hadoop | 3 |
| is | 2 |
| إلى | 1 |
| حياك الله | 1 |
تمر البيانات بالمراحل التالية من تقنية MapReduce في البيانات الضخمة.
تقسيمات الإدخال
تُقسّم المدخلات إلى مهمة MapReduce في البيانات الضخمة إلى أجزاء ثابتة الحجم تُسمى أجزاء المدخلات. جزء المدخلات هو جزء من المدخلات يتم استهلاكه بواسطة خريطة واحدة.
التخطيط
هذه هي المرحلة الأولى في تنفيذ برنامج MapReduce. في هذه المرحلة، يتم تمرير البيانات في كل قسم إلى خريطة.ping وظيفة لإنتاج قيم الإخراج. في مثالنا، وظيفة الخريطةping تتمثل المرحلة في حساب عدد مرات ظهور كل كلمة من تقسيمات المدخلات (مزيد من التفاصيل حول تقسيمات المدخلات موضحة أدناه) وإعداد قائمة على شكل .
خلط
تستهلك هذه المرحلة مخرجات الخريطةping المرحلة. وتتمثل مهمتها في توحيد السجلات ذات الصلة من الخريطةping مخرجات الطور. في مثالنا، يتم تجميع الكلمات المتشابهة معًا مع تردداتها الخاصة.
تقليص
في هذه المرحلة، يتم تجميع قيم المخرجات من مرحلة التوزيع العشوائي. تجمع هذه المرحلة القيم من مرحلة التوزيع العشوائي وتُعيد قيمة مخرجات واحدة. باختصار، تُلخص هذه المرحلة مجموعة البيانات الكاملة.
في مثالنا، تقوم هذه المرحلة بتجميع القيم من مرحلة الخلط، أي أنها تحسب إجمالي مرات ظهور كل كلمة.
مابريديوس Archiوأوضح tecture بالتفصيل
توضح النقاط التالية كيفية وضع مهام التقسيم والتعيين والاختزال وتخزينها فعليًا عبر المجموعة.
- يتم إنشاء مهمة خريطة واحدة لكل تقسيم، والتي تقوم بعد ذلك بتنفيذ وظيفة الخريطة لكل سجل في التقسيم.
- من المفيد دائمًا تقسيم البيانات إلى أجزاء متعددة، لأن الوقت اللازم لمعالجة كل جزء منها قصير مقارنةً بالوقت اللازم لمعالجة المدخلات كاملةً. وعندما تكون الأجزاء أصغر، يكون توزيع الحمل على المعالجة أفضل، نظرًا لأنها تُعالج بالتوازي.
- مع ذلك، ليس من المستحسن أيضاً أن تكون التقسيمات صغيرة جداً. فعندما تكون التقسيمات صغيرة جداً، تبدأ تكلفة إدارة التقسيمات وإنشاء مهام الخرائط في الهيمنة على إجمالي وقت تنفيذ المهمة.
- بالنسبة لمعظم الوظائف، من الأفضل أن يكون حجم التقسيم مساوياً لحجم HDFS يتم التحكم في حجم الكتلة، الذي يبلغ افتراضيًا 128 ميجابايت بدءًا من Hadoop 2.x (وكان 64 ميجابايت في Hadoop 1.x)، بواسطة
dfs.blocksizeخاصية. - يؤدي تنفيذ مهام الخريطة إلى كتابة المخرجات إلى قرص محلي على العقدة المعنية، وليس إلى نظام ملفات Hadoop الموزع (HDFS).
- السبب في اختيار القرص المحلي بدلاً من نظام ملفات HDFS هو تجنب عملية النسخ التي تحدث أثناء عملية تخزين HDFS.
- إخراج الخريطة هو مخرج وسيط تتم معالجته عن طريق تقليل المهام لإنتاج المخرج النهائي.
- بمجرد اكتمال المهمة، يمكن التخلص من مخرجات الخريطة. لذا، فإن تخزينه في HDFS مع النسخ المتماثل يصبح مبالغة.
- في حالة فشل العقدة، قبل أن تستهلك مهمة التصغير مخرجات الخريطة، يقوم Hadoop بإعادة تشغيل مهمة الخريطة على عقدة أخرى ويعيد إنشاء مخرجات الخريطة.
- لا تعتمد مهام الاختزال على مفهوم موضع البيانات. يتم تغذية مخرجات كل مهمة خريطة إلى مهمة الاختزال. تُنقل مخرجات الخريطة إلى الجهاز الذي تُنفذ عليه مهمة الاختزال.
- على هذا الجهاز، يتم دمج الإخراج ثم تمريره إلى وظيفة التصغير المعرفة من قبل المستخدم.
- على عكس مخرجات عملية الخريطة، تُخزَّن مخرجات عملية الاختزال في نظام ملفات Hadoop الموزع (HDFS) (تُخزَّن النسخة الأولى على العقدة المحلية، بينما تُخزَّن النسخ الأخرى على عقد خارجية). لذا، فإن كتابة مخرجات عملية الاختزال تستهلك عرض نطاق الشبكة، ولكن فقط بقدر ما تستهلكه عملية كتابة عادية في نظام ملفات Hadoop الموزع.
كيف ينظم MapReduce العمل؟
سنتعلم الآن في هذا الدرس التعليمي حول MapReduce كيفية عمل MapReduce.
يقسم هادوب العمل إلى مهام. وهناك نوعان من المهام:
- مهام الخرائط (التقسيمات والخرائط)ping)
- تقليل المهام (إعادة ترتيب المهام، تقليلها)
تتم السيطرة على عملية التنفيذ الكاملة، أي تنفيذ مهام Map وReduce، بواسطة نوعين من الكيانات تسمى:
- وظيفةTracker: يتصرف كخبير وهو مسؤول عن التنفيذ الكامل للمهمة المقدمة.
- مهام متعددةTrackers: يتصرفون كعبيد، حيث يقوم كل منهم بجزء من العمل.
لكل مهمة يتم إرسالها للتنفيذ في النظام، توجد مهمة واحدةTracker الذي يقع على NameNode، وهناك مهام متعددةTrackers التي تتواجد على DataNodes.
ملاحظة: الوظيفةTracكير وتاكسTracينتمي زوج ker إلى إصدار MapReduce 1 (Hadoop 1.x). بدءًا من Hadoop 2.x فصاعدًا، يقسم YARN هذه المهام بين مدير موارد على مستوى المجموعة، ومدير عقدة على كل عقدة، ومدير تطبيق واحد لكل مهمة، على الرغم من أن مراحل map و shuffle و reduce نفسها لم تتغير.
يوضح الرسم البياني أدناه كيفية تقسيم المهمة المقدمة إلى مهام فرعية و tracked عبر المجموعة.
- يتم تقسيم المهمة إلى مهام متعددة يتم تشغيلها بعد ذلك على عقد بيانات متعددة في مجموعة.
- إنها مسؤولية الوظيفة tracker لتنسيق النشاط عن طريق جدولة المهام لتشغيلها على عقد بيانات مختلفة.
- ثم تتولى المهمة مسؤولية تنفيذ مهمة فردية tracker، الذي يوجد على كل عقدة بيانات تقوم بتنفيذ جزء من المهمة.
- المهمة tracتتمثل مسؤولية كير في إرسال تقرير التقدم إلى الوظيفة tracكير.
- بالإضافة إلى ذلك، فإن المهمة tracيرسل ker إشارة "نبض" بشكل دوري إلى المهمةTracker حتى يتم إخطاره بالحالة الحالية للنظام.
- وهكذا الوظيفة tracكير يحتفظ track من التقدم الإجمالي لكل مهمة. في حالة فشل المهمة، يتم إنهاء المهمة tracيمكن لـ ker إعادة جدولة ذلك على مهمة مختلفة tracكير.


