نموذج البرمجة

مكتمل

يقدم Hadoop‏ MapReduce كمحرك تحليلات، ويستخدم "في الخلفية" Hadoop Distributed File System (HDFS).1 يقلد HDFS‏ Google File System (GFS)2 وأقسام مجموعات بيانات الإدخال في مجموعات ثابتة الحجم (كتل)، مع توزيعها على عقد نظام المجموعة المشاركة. بشكل افتراضي 64 ميغابايت، يمكن تكوين كل كتلة HDFS بشكل مختلف من قبل المستخدمين. بإمكان الوظائف في وقت لاحق معالجة كتل HDFS بالتوازي في آلات موزَّعة، ومن ثم استخدام التوازي الذي تم تمكينه من خلال تقسيم مجموعات البيانات. يقسم MapReduce الوظائف إلى مهام متعددة المشار إليها كمهام الخريطة والتقليل. يتم تغليف كل مهام الخريطة فيما يعرف بمرحلة الخريطة، ويتم إدراج تقليل المهام فيما يسمى طور التقليل. يمكن أن يحتوي طور الخريطة على مهمة أو عدة مهام خريطة، ويمكن ألا تحتوي مرحلة التقليل على أي مهام تقليل أو تحتوي على العديد من مهام التقليل. عندما لا تتضمن وظيفة MapReduce أي مهام تقليل، تتم الإشارة إليه كـ "بدون مهام تقليل"3

A full, simplified view of the phases, stages, tasks, data input, data output, and data flow in the MapReduce analytics engine.

الشكل 1: عرض كامل ومبسط للأطوار والمراحل والمهام وإدخال البيانات وإخراج البيانات وتدفق البيانات في محرك تحليلات MapReduce

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

تستهلك مهام الخريطة والتقليل بيانات مختلفة، وتعمل بشكل مستقل وبالتوازي فقط في أطوار كل منها. أي، أن المهام في الطور ذاته لا تتواصل أبدًا (إرسال أو تلقي الرسائل) ويحدث التواصل فقط في MapReduce بشكل صريح (من خلال مساعدة إطار عمل MapReduce) بين مهام مختلفة في أطوار مختلفة. على وجه التحديد، تعمل مهام الخريطة على إنشاء أقسام جديدة في طور الخريطة، ومحرك Hadoop ذاته ينقل الأقسام (عبر الشبكة) إلى مهام التقليل في طور التقليل في عملية تسمى التبديل. والأساس المنطقي وراء هذه الاستراتيجية هو أن Hadoop لن يعمل على التحجيم لمجموعات كبيرة (مئات أو آلاف العقد) إذا سُمح للمهام بالتواصل بشكل عشوائي. بدلاً من ذلك، تحدث كل الاتصالات فقط بين أطوار الخريطة والتقليل وتحت السيطرة الكاملة للمحرك ذاته (وليس المهام). لذلك يمكن اعتبار برنامج نموذجي قيد التشغيل في متغير MapReduce حالة خاصة لنموذج تمرير الرسالة. لا تتوفر للمهام إمكانية الوصول إلى ذاكرة مشتركة شائعة ولكن تعتمد على الرسائل التي يتم تمريرها بواسطة إطار العمل بين حواجز مزامنة الخريطة والتقليل.


المراجع

  1. HDFS Architecture Guide Hadoop
  2. S. غيماوات، ها غوبيوف، وإس تي. ليونغ (أكتوبر 2003). نظام ملفات Google SOSP
  3. S. تشن وس. و. شلوسر (2008). MapReduce يلبي مجموعة متنوعة من التطبيقات IRP-TR-08-05، أبحاث Intel