سؤال

لدينا وظيفة مرنة لطيفة، كبيرة ومعقدة لها قيود مختلفة بعنف على الأجهزة لمعجم مخطط VS Collector مقابل المخفض.

المشكلة هي: بالنسبة للمخيمات، نحتاج إلى أطنان من الأجهزة خفيفة الوزن لتشغيل العديد من الأفخانات بالتوازي (كل شيء جيد هناك)؛ يعد الجمعيات أكثر من الذاكرة الجائعة، لكن يجب أن يكون على ما يرام لمنحهم حوالي 6 جيجابايت من كومة ذروة كل. وبعد وبعد ولكن المشكلة هي المخفضات. عندما ينطلق أحد هؤلاء، فإنه سيحصل على حوالي 32-64 جيجابايت للمعالجة.

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

ستكون أبسط نهج إذا كان بإمكاننا تحديد طريقة لإجراء مخفض على "مجموعة" مختلفة (حفنة من صناديق Ginormous) أثناء وجود Mappers / Collectors يعمل على صناديق أصغر. قد يؤدي ذلك أيضا إلى تحقيق وفورات كبيرة في التكلفة أيضا، حيث أننا لا ينبغي علينا حقا أن لا تكون تحجيم العقد أن الأفخانات تعمل على متطلبات المخفضات.

بديل سيكون "تفكك" المهمة بحيث يكون هناك كتلة ثانتين يمكن أن نسجها لمعالجة إخراج مجمع الناشط - ولكن من الواضح أن "الأمثل الفرعية".

لذلك، السؤال هو:

  • هل هناك طريقة تحدد ما "المجموعات" المخطط أو المخفض تشغيل على مابيدوس مطاطا و / أو هيدوب؟
  • هل هناك طريقة لمنع المخفضات من البدء حتى تتم جميع الأفخانات؟
  • هل لدى أي شخص أفكارا أخرى حول كيفية الاقتراب من هذا؟

هتافات

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

المحلول

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

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