النماذج الحسابية والمعمارية

مكتمل

في هذه الوحدة، سنطلع على النموذج الحسابي والنموذج المعماري لـ MapReduce.

نموذج الحساب

يمكن أن تتضمن وظائف MapReduce، مثل كل البرامج الموزَّعة، نموذجًا حسابيًا متزامنًا أو غير متزامن. في أثناء كل طور ومرحلة، تعمل مهام MapReduce على تنفيذ العديد من العمليات الحسابية التي تعتمد على النتائج من الطور أو المرحلة السابقة ولا يمكن المتابعة إلا بعد وصول تلك البيانات. على سبيل المثال، لا يمكن أن تبدأ مهمة تقليل قبل وصول كل الأقسام المطلوبة من مراحل التبديل والدمج والفرز. وعلاوة على ذلك، في طور ما، لا تتواصل المهام مع بعضها، ولا تحدث التفاعلات إلا في نهاية المرحلة أو الطور. يجب أن يضمن أي نظام متزامن خاصية التفاعل هذه،2 ويقدم MapReduce مثالاً جيدًا للنموذج الحسابي ذلك.

A simplified example of the primary-subordinate, tree-style architecture employed by Hadoop MapReduce.

الشكل 4: مثال مبسط على البنية الرئيسية التابعة، على نمط الشجرة الذي يستخدمه Hadoop MapReduce.

نموذج معماري

كما يُظهر الشكل التوضيحي، يستخدم MapReduce البنية الرئيسية التابعة. تُسمَّى العقدة الرئيسية JobTracker (JT)، وكل تابع يُسمَّى TaskTracker (TT). يتواصل JT وTT عبر شبكة نظام المجموعة عن طريق آلية إشارة التزامن الدورية. بشكل افتراضي، يرسل TT رسائل (إشارات تزامن) إلى JT كل ثلاث ثوانٍ، ويقوم JT بالرد6 بخريطة جديدة أو مهمة التقليل أو برسالة مختلفة. يستخدم JT إشارات التزامن هذه للكشف عن حالات فشل المهمة. كل TT يحتوي، بشكل افتراضي، على اثنتين من فتحات الخريطة واثنتين من فتحات التقليل التي يمكن للمهام المقابلة تنفيذها. يحدد تخصيص الفتحة هذا الحد الأقصى لعدد مهام الخريطة والتقليل (درجة توازي المهمة) التي يمكن تشغيلها في وقت واحد في TT.

Hadoop يأخذ شكل مخطط شبكة هرمي على غرار الشجرة مع رف ومفاتيح أساسية، كما هو مبين في الشكل. ينتشر TT عبر رفوف مختلفة وقد يتواجد في مركز بيانات واحد أو عدة مراكز بيانات. بين أي TT اثنين، يعتمد النطاق الترددي للاتصالات على مواقعها النسبية في مخطط الشبكة. على سبيل المثال، يمكن أن يتفاعل TT على الرف ذاته مع بعضه بشكل أسرع بكثير من نظيره خارج الرف. قياس النطاق الترددي بين أي TT اثنين صعب عمليًا، 1 ولهذا يستخدم Hadoop نهجًا بسيطًا قائمًا على المسافات. يمثل هذا النهج مواضع شبكة TT كسلسلة (أي، موقع TaskTracker5 في الشكل هو /CoreSwitch/RackSwitch1/TaskTracker5). يأخذ Hadoop مسافة وحدة بين أي TT ومفتاحه الأصلي، لذلك يمكن حساب المسافة الإجمالية بين أي TT اثنين ببساطة عن طريق إضافة مسافات إلى أقرب عنصر أصل مشترك. في مثالنا،
Total-Distance(/CoreSwitch/RackSwitch2/TaskTracker1, /CoreSwitch/RackSwitch2/JobTracker) = 4.


6 لا يرد JT على كل إشارة تزامن تم إرسالها من خلال TT. بإمكان TT إرسال إشارات تزامن فقط للإشارة إلى أنه لا يزال نشطًا. إذا كان TT يتضمن إشارة تزامنه طلبًا (مثل طلب خريطة أو مهمة التقليل)، فإن JT يرد بالرد بإشارة تزامن تحقق طلب TT (على سبيل المثال، خريطة أو مهمة التقليل).


المراجع

  1. T. White (2011). Hadoop: الدليل التعريفي النسخة الثانية من O'Reilly
  2. D. P. Bertsekas وJ. N. Tsitsiklis (1 يناير، 1997). Parallel and Distributed Computation: Numerical Methods Athena Scientific، الطبعة الأولى

‏‫اختبر معلوماتك

1.

بناءً على نموذج Hadoop المعماري، كيف يتم تعيين المهام إلى الفتحات في TaskTrackers؟