الصفحة الرئيسية

الموضوعات

MapReduce

ما هو MapReduce؟
استخدم MapReduce مع منتجات IBM اشترك في رسالة Think الإخبارية
رسم توضيحي يحتوي على مجموعة من الصور التوضيحية لشاشة كمبيوتر وخادم وسُحُب ونقاط

تم التحديث: 19 نوفمبر 2024 
المساهمون
: Jim Holdsworth و Matthew Kosinski

ما هو MapReduce؟

MapReduce هو نموذج برمجي يستخدم المعالجة المتوازية لتسريع معالجة البيانات على نطاق واسع. يتيح لك MapReduce قابلية التوسع الهائلة عبر مئات أو آلاف الخوادم داخل مجموعة Hadoop.

يشير الاسم "MapReduce" إلى المهمتين التي ينفذهما النموذج للمساعدة على "تقسيم" مهمة معالجة البيانات الكبيرة إلى العديد من المهام الأصغر التي يمكن تشغيلها بشكل أسرع بالتوازي.

  • الأول هو "مهمة رسم الخريطة"، والتي تأخذ مجموعة واحدة من البيانات وتحولها إلى مجموعة أخرى من البيانات بتنسيق أزواج مفاتيح/قيمة، مثل المدن (المفاتيح) ودرجات الحرارة المرتفعة اليومية (القيم).

  • والثاني هو "مهمة الاختزال"، التي تأخذ المخرجات من مهمة رسم الخريطة، وتجمع جميع القيم التي لها نفس المفتاح وتعالج البيانات لإنتاج مجموعة نهائية من أزواج المفاتيح/القيمة.

نموذج برمجة MapReduce هو أحد مكونات المعالجة الأساسية في صميم Apache Hadoop، وهو إطار عمل برمجي مفتوح المصدر تدعمه مؤسسة Apache Software Foundation ومبني على لغة البرمجة Java.

يمكن أيضًا استخدام نموذج MapReduce خارج Hadoop.

يتطلب الذكاء الاصطناعي طرقًا جديدة لإدارة البيانات

تعرّف على كيفية العثور على أساس البيانات المفتوح والموثوق المناسب لاحتياجات عملك.

محتوى ذو صلة سجل للحصول على دليل تحديث التطبيقات
كيف يعمل MapReduce

يساعد MapReduce في تقسيم مشاريع معالجة البيانات إلى أجزاء أصغر حتى تتمكن من العمل بشكل أسرع.

قد يستغرق استخدام معالج واحد لتحليل ملف ضخم يحتوي على تيرابايتات أو بيتابايتات من البيانات، على سبيل المثال، 10 ساعات. يمكن لوظيفة MapReduce تقسيم ملف البيانات نفسه إلى 10 مهام تعمل بالتوازي على 10 معالجات. قد تستغرق هذه المهمة ساعة أو أقل لتشغيلها. يمكن تجميع البيانات من عقد الحوسبة الموزعة لإنتاج النتائج.

في حين أن رسم الخرائط والاختزال هما الوظيفتان الأساسيتان لنموذج MapReduce، فإن العملية الشاملة تتضمن بضع خطوات أخرى.

المدخلات

يقبل تطبيق MapReduce بيانات الإدخال، والتي يمكن أن تتضمن بيانات منظمة أو بيانات غير منظمة. تطبيقات MapReduce تعمل عادةً مع ملفات الإدخال المخزنة في نظام الملفات الموزعة Hadoop (HDFS)، ولكن يمكن أن يعمل النموذج مع مصادر البيانات الأخرى أيضًا. (لمزيد من المعلومات، راجع "MapReduce ضمن النظام البنائي Hadoop".)

بالنسبة لوظيفة معينة، يساعد إطار عمل MapReduce في تحديد الخوادم الموزعة وإدارة الاتصالات ونقل البيانات ودعم تحمل الأخطاء والتكرار.

التقسيم
 

يتم تقسيم بيانات الإدخال إلى كتل أصغر. يتم توزيع هذه الكتل على المُخطِّطات—وهي الدوال التي تقوم بالتخطيط في الخطوة التالية، والموجودة في عقد مختلفة. يهدف إطار عمل MapReduce إلى تخصيص موحد تقريبًا للبيانات عبر المُخطِّطات لتحقيق موازنة تحميل فعالة.

التخطيط
 

في كل عقدة، تعالج دالة الخريطة البيانات التي تتلقاها، وتحول البيانات إلى أزواج مفاتيح/قيمة.

يتم تحديد العدد الإجمالي للمُخطِّطات ضمن إطار عمل Hadoop، بناءً على الحجم الإجمالي للبيانات وكتل الذاكرة المتاحة على كل مخطط. يمكن تعيين معلمات المُخطِّطات والمُختزلات وتنسيقات الإخراج داخل مجموعة Hadoop العنقودية.

الخلط
 

يفرز إطار عمل Hadoop مخرجات الخريطة ويعين جميع أزواج المفاتيح/القيم التي لها نفس "المفتاح" (الموضوع) إلى نفس المُختزل. على سبيل المثال، في مجموعة بيانات المدن ودرجات حرارتها المرتفعة يوميًا، ستنتقل أي بيانات تحتوي على مفتاح "طوكيو" إلى نفس المُختزل.

المُختزل، كما يوحي اسمه، هو الدالة التي تنفذ خطوة الاختزال.

الاختزال
 

تقوم دوال الاختزال بمعالجة أزواج المفتاح/القيمة التي يصدرها المُخطِّطات. ويمكن أن يتضمن ذلك الدمج أو الجدولة أو إجراء عمليات أخرى على البيانات، اعتمادًا على نوع المعالجة المطلوبة.

يمكن إجراء التخطيط والاختزال على نفس مجموعة الخوادم، ولكن هذا أمر اختياري. 

النتيجة
 

يقوم كل مُختزل بإخراج النتائج من معالجته إلى HDFS أو مخزن بيانات آخر.

مثال على MapReduce

بغض النظر عن كمية البيانات التي تريد المجموعة تحليلها، تظل المبادئ الأساسية كما هي.

في هذا المثال، تتضمن مجموعة البيانات المدن (المفاتيح) ودرجات الحرارة اليومية المقابلة (القيم) المسجلة لكل مدينة. قد يبدو نموذج زوج المفاتيح/القيم كما يلي: < تورنتو، 18 >.

تنتشر البيانات عبر ملفات متعددة. قد يتضمن كل ملف بيانات من مزيج من المدن، وقد يتضمن نفس المدينة عدة مرات.

ومن مجموعة البيانات هذه، يريد المستخدم تحديد "درجة الحرارة العظمى" لكل مدينة عبر الفترة التي تم تتبعها.

قد يبدو تنفيذ MapReduce للتعامل مع هذه المهمة كما يلي:

  1. يتم إدخال ملفات البيانات التي تحتوي على معلومات درجة الحرارة إلى تطبيق MapReduce كمدخلات.

  2. يتم تقسيم الملفات إلى مهام الخريطة، مع تعيين كل مهمة لأحد المُخطِّطات.

  3. تقوم المُخطِّطات بتحويل البيانات إلى أزواج مفاتيح/قيم.

  4. يتم خلط مخرجات الخريطة وفرزها بحيث تنتهي جميع القيم التي لها نفس مفتاح المدينة بنفس المُختزل. على سبيل المثال، تنتقل جميع قيم درجات الحرارة الخاصة بتورنتو إلى مُختزل واحد، بينما يقوم مُختزل آخر بتجميع جميع القيم الخاصة بلندن.

  5. يعالج كل مُختزل بياناته لتحديد أعلى قيمة لدرجة الحرارة لكل مدينة. ثم يتم اختزال البيانات إلى أعلى زوج مفاتيح/قيم لكل مدينة.

  6. بعد مرحلة الاختزال، يمكن جمع أعلى القيم للحصول على النتائج: <طوكيو، 38> < لندن، 27>  <نيويورك، 33> < تورونتو، 32>.
MapReduce ضمن النظام البنائي Hadoop

نظام Hadoop البنائي عبارة عن مجموعة من الوحدات مفتوحة المصدر المصممة للعمل معًا لتعزيز الكفاءة. هناك وحدات تشكل إطار عمل Hadoop الرئيسي، بما في ذلك MapReduce بالإضافة إلى 3 وحدات أخرى:

نظام الملفات الموزعة Hadoop (HDFS)
 

HDFS هو نظام ملفات موزعة لتخزين بيانات التطبيقات على ما يصل إلى آلاف الخوادم السلعية.

تم تصميم HDFS لتوفير تحمل الأخطاء في Hadoop وتوفير وصول سريع إلى البيانات. يتم نسخ كتل البيانات عبر عقد متعددة في وقت التحميل أو الكتابة بشكل افتراضي.

تتميز بنية HDFS بوجود NameNode لإدارة مساحة اسم نظام الملفات والوصول إلى الملفات، بالإضافة إلى DataNodes متعددة لإدارة تخزين البيانات.

Yet Another Resource Negotiator (YARN)
 

Apache Hadoop, YARN مفتوح المصدر، وهو إطار عمل لجدولة الوظائف وإدارة موارد المجموعة. فهو يدعم أحمال تشغيل متعددة، مثل SQL Query والنمذجة المتقدمة والبث في الوقت الفعلي.

Hadoop Common
 

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

وحدات أخرى
 

بالإضافة إلى إطار عمل Hadoop الرئيسي، يشمل نظام Hadoop البنائي أيضًا:

  • HBase (قاعدة بيانات NoSQL غير علائقية)
  • Mahout و Spark MLlib (مكتبات خوارزميات للتعلم الآلي)
  • Oozie (برنامج جدولة الوظائف)
  • Apache Hive و Apache Pig (أدوات معالجة البيانات القائمة على الاستعلام)
  • Solr و Lucene (للبحث والفهرسة)
  • Spark (محرك معالجة البيانات في الذاكرة) 
  • Zookeeper (تنسيق المجموعة)
فوائد MapReduce

توفر برمجة MapReduce العديد من الفوائد التي يمكن أن تساعد المؤسسة في اكتساب رؤى قيّمة من تحليلات البيانات الكبيرة، مثل:

  • قابلية التوسع: يتيح MapReduce للمجموعة معالجة بيتابايتات من البيانات المخزنة في HDFS عبر خوادم أو عقد متعددة.

  • معالجة أسرع: بفضل المعالجة المتوازية والحد الأدنى من حركة البيانات، يوفر MapReduce تحسين معالجة البيانات الكبيرة لكميات هائلة من البيانات.

  • التبسيط: يمكن للمطورين كتابة تطبيقات MapReduce في لغات البرمجة التي يختارونها، بما في ذلك Java و C++ و Python.

  • توفير التكاليف: باعتباره برنامجاً مصدر مفتوح، يمكن لـ MapReduce أن يوفر للمؤسسة بعض التكاليف في نفقات البرمجيات. ومع ذلك، ستظل هناك تكاليف مرتبطة بموظفي البنية التحتية وهندسة البيانات.
حالات استخدام MapReduce

يمكن لـ MapReduce التعامل بكفاءة مع العديد من حالات الاستخدام المباشرة، على الرغم من أن مهام معالجة البيانات المعقدة قد تعمل بشكل أسرع على التطبيقات الأخرى. فيما يلي بعض التطبيقات المناسبة لنهج المعالجة المتوازية لـ MapReduce:

  • تكامل البيانات، حيث يتم استخدام إطار عمل MapReduce لتشغيل عملية الاستخراج والتحويل والتحميل (ETL) لإعداد البيانات للتحليل والتخزين.

  • معالجة الصور، حيث يمكن تقسيم المهام مثل تصنيف الصور إلى مجموعات بيانات أصغر ومعالجتها بالتوازي.

  • تحليل السجل، مثل تحديد الاتجاهات من خلال مراجعات ملفات السجل من خوادم الويب أو التطبيقات.

  • التعلم الآلي (ML)، حيث يمكن أن يساعد MapReduce في مهام التدريب على التعلم الآلي، مثل الفلترة التعاونية والتجميع بالمتوسطات والانحدار الخطي.

  • تحليل المشاعر، حيث يمكن لـ MapReduce المساعدة في جمع نقاط العملاء على موقع ويب أو تحديد مجموعات الاستجابة، على سبيل المثال.

  • الجدولة، مثل إحصاء عدد العملاء الذين جددوا حساباتهم، حسب الدولة، خلال العام الماضي.

  • استخراج النصوص، مثل وظائف عدّ الكلمات التي تتعقّب عدد مرات ظهور كلمة معيّنة في مجموعة مدخلات معيّنة، مثل لوحة تعليقات.
تاريخ MapReduce

تم إنشاء نموذج برمجة MapReduce في عام 2004 من قِبل عالِمَي الحاسوب في Google وهما Jeffery Dean و Sanjay Ghemawat. يهدف نموذج MapReduce إلى تبسيط تحويل وتحليل مجموعات البيانات الضخمة من خلال المعالجة الموازية الضخمة على مجموعات كبيرة من الأجهزة السلعية. ويتيح للمبرمجين التركيز على الخوارزميات بدلاً من إدارة البيانات.

بينما قدمت جوجل أول إطار عمل MapReduce، ربما يكون Apache Hadoop MapReduce هو الأكثر شعبية.

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

بينما لا يزال MapReduce مستخدمًا على نطاق واسع—خاصةً في الأنظمة القديمة—تنتقل العديد من المؤسسات إلى أطر عمل أسرع أو أكثر تخصصًا، مثل Apache Spark، لتطبيقات البيانات الكبيرة.

حلول ذات صلة
برمجيات وحلول إدارة البيانات

صمم استراتيجية بيانات تقضي على صوامع البيانات، وتقلل من التعقيدات وتحسّن جودة البيانات للحصول على تجارب استثنائية للعملاء والموظفين.

استكشف حلول إدارة البيانات
IBM watsonx.data

يتيح لك watsonx.data توسيع نطاق التحليلات والذكاء الاصطناعي باستخدام جميع بياناتك، أينما كانت، من خلال مخزن بيانات مفتوح وهجين ومُدار.

اكتشف watsonx.data
خدمات الاستشارات في مجال البيانات والتحليلات

استفِد من قيمة بيانات المؤسسة مع IBM® Consulting، من خلال بناء مؤسسة تعتمد على الرؤى التي تقدِّم ميزة للأعمال.

اكتشف خدمات التحليلات
الموارد إدارة البيانات للذكاء الاصطناعي والتحليلات على نطاق واسع

استكشف الفوائد من العمل باستخدام مستودع بحيرة البيانات، بما في ذلك بيانات أكثر جدارة بالثقة وتنفيذ أكثر موثوقية للتحليلات ومشاريع الذكاء الاصطناعي.

مفاضلة البيانات

دليل قائد البيانات لبناء مؤسسة قائمة على البيانات لتعزيز ميزة الأعمال.

ما هو Apache Hadoop؟

Apache Hadoop هو إطار برمجي مفتوح المصدر يوفر معالجة موزعة موثوقة للغاية لمجموعات البيانات الكبيرة باستخدام نماذج برمجة بسيطة.

اتخِذ الخطوة التالية

يمكنك توسيع نطاق أحمال تشغيل الذكاء الاصطناعي ليشمل جميع بياناتك، في أي مكان، مع IBM watsonx.data، وهو مخزن بيانات مناسب حسب الغرض مبني على أساس مستودع بيانات مفتوح.

استكشف watsonx.data احجز عرضًا توضيحيًا مباشرًا