Network Bandwidth BoTleneck لفرز مفاتيح Mapreduce الوسيطة؟

StackOverflow https://stackoverflow.com/questions/2423544

  •  19-09-2019
  •  | 
  •  

سؤال

لقد تعلم خوارزمية MAPREDUCE وكيف يمكن أن يكون من المحتمل أن يكون من المحتمل أن يتجاوز الملايين من الآلات، لكنني لا أفهم كيف يمكن لفرز المفاتيح المتوسطة بعد مرحلة الخريطة، حيث سيكون هناك:

1،000،000 × 1،000،000.

: الأجهزة المحتملة تواصل أزواج المفتاح / القيمة الصغيرة للنتائج المتوسطة مع بعضها البعض؟ أليس هذا عنق الزجاجة؟

هل كانت مفيدة؟

المحلول

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

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

يحتاج كل منهما إلى رؤية جميع البيانات للحصول على مفتاح معين. لذلك إذا كان لديك تقليص واحد قيد التشغيل للعمل، فستحتاج إلى إرسال جميع المخرجات من كل خريطة إلى العقدة في الكتلة التي تعمل على تقليل ذلك. قبل أن يتم دمج الحد من البيانات من كل خريطة إلى مجموعة جميع المفاتيح.

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

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top