محتويات الدورة

Apache Spark / المتقدم: التدفق والتشغيل القابل للتعافي / الدرس 15

تشخيص تفاوت العمل والذاكرة والإخفاق

صنّف المرحلة البطيئة أوالفاشلة بدليل المهام قبل تغيير الموارد أوإعدادات الحماية.

وقت القراءة التقريبي: 4 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • افصل التفاوت وتوسع الربط وضغط JVM وذاكرة عمال Python.
  • قيّم علاجاً محدداً بأدلة الصحة والتعافي.

ليس آخر خطأ أول سبب دائماً

قد تفشل مرحلة بعد اختفاء منفذ، فتظهر أخطاء جلب في المهام اللاحقة. وقد تكرر زيادة المحاولات الفشل دون إصلاح أصله. احفظ أدلة المشغّل والمنفذ المعتمدة وأول استثناء ذي صلة ومحاولة التطبيق وخط المراحل. ميّز فشل collect في المشغّل من كومة المنفذ وإنهاء الحاوية واستثناء عامل Python؛ فلكل منها ذاكرة ومسؤولية مختلفة. يفقد ملخص «نفاد الذاكرة» العام الدليل اللازم للعلاج. لا تجمع الدورة سجلات أوتفحص عنقوداً مهيأ.

قارن توزيع المهام لا المتوسط وحده

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

json مثال تقني توضيحي؛ النتائج المنطقية مستنتجة ولم تُختبر على المحرك.
{"scope":"synthetic stage fixture","median_task_ms":200,"max_task_ms":6000,"next_evidence":["records","shuffle bytes","spill","join output grain"]}

الأقصى ثلاثون ضعف الوسيط. تحدد النسبة سؤال تشخيص لا سبباً اختُبر على المحرك.

يغير التلميح الاستراتيجية لا عقد البيانات

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

python مثال تقني توضيحي؛ النتائج المنطقية مستنتجة ولم تُختبر على المحرك.
from pyspark.sql import functions as F
enriched = readings.join(F.broadcast(sites), ['site_id'], 'left')

تلميح توضيحي فقط؛ يلزم تحقق مستقل من حجم المرجع وتفرّده والخطة والذاكرة.

الكومة ليست كل ذاكرة العملية

قد يشمل ضغط المنفذ كائنات JVM وبنى التنفيذ والمؤقت وعمال Python والمكتبات الأصلية وكلفة الحاوية. قد تقلل زيادة الكومة مساحة غيرها إذا بقي التخصيص الكلي ثابتاً. وليس السكب عيباً تلقائياً؛ فقد يدعم التنفيذ المحدود، وإن كشف فرطه حجماً أوتوزيعاً غير مناسبين. وقد يسوء الضغط مع حفظ بيانات أكثر. استخدم نموذج موارد النشر لا نسبة من منصة أخرى. تختلف حدود وملكية Kubernetes وYARN والخدمات المدارة، ولا تفترض ميزانية واحدة للمشغّل والمنفذين.

يجب أن يحفظ العلاج النتيجة ومسار التعافي

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

الأخطاء الشائعة وإصلاحها

FetchFailedException

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

java.lang.OutOfMemoryError

لماذا يحدث؟
لا تستطيع JVM تخصيص الذاكرة اللازمة ضمن المتاح.
كيف تصلحه؟
حدد العملية وشكل البيانات والبنى المحفوظة قبل تغيير الحجم.
كيف تتجنب تكراره؟
ضع ميزانيات مستقلة للمشغّل والمنفذ والمؤقت وPython.

تنتج المحاولات الإضافية كتابات جزئية متكررة

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

اختبر فهمك

1. ماذا يثبت أقصى6000ms مقابل وسيط200ms؟

اعرض الحل المشروح

يثبت فقط نسبة ثلاثين وذيلاً طويلاً في المثال. لا يحدد وحده تفاوتاً أوقرصاً أوجمع ذاكرة. قارن سجلات وبايتات وسكب ومواضع كل مهمة مع تفصيل النتيجة قبل العلاج.

2. هل يصلح بث مرجع مواقع مكرر إجمالي طاقة متضخماً؟

اعرض الحل المشروح

لا. يغير الاستراتيجية مع حفظ مضاعفة الربط نفسها. أثبت تفصيل المرجع المعتمد وطابق المفاتيح والمجاميع، ثم قيّم ملاءمة البث للذاكرة والنقل الفعليين.

أهم ما تعلمته

  • يسبق تصنيف الفشل ضبط الموارد.
  • تبقى النتيجة الخاطئة خاطئة رغم السرعة أوالإعادة.

المراجع الرسمية