استخدم الميزات الموسعة لخادم Apache Spark History لتصحيح أخطاء تطبيقات Spark وتشخيصها
توضح لك هذه المقالة كيفية استخدام الميزات الموسعة لخادم محفوظات Apache Spark لتصحيح أخطاء تطبيقات Spark المكتملة أو تشغيلها وتشخيصها. يتضمن الامتداد علامة التبويب Data وعلامة التبويب Graph وعلامة التبويب Diagnosis . في علامة التبويب Data، يمكنك التحقق من بيانات الإدخال والإخراج لوظيفة Spark. في علامة التبويب Graph، يمكنك التحقق من تدفق البيانات وإعادة تشغيل الرسم البياني للوظيفة. في علامة التبويب Diagnosis، يمكنك الرجوع إلى ميزات Data Skew وTime Skew وExecutor Usage Analysis.
احصل على وصول إلى خادم Spark History
خادم Spark History هو واجهة مستخدم الويب لتطبيقات Spark المكتملة والتشغيلية. يمكنك فتحه إما من مدخل Azure أو من عنوان URL.
افتح واجهة مستخدم الويب لخادم Spark History من بوابة Microsoft Azure
من مدخل Microsoft Azure، افتح مجموعة Spark. لمزيد من المعلومات، راجع قائمة وعرض المجموعات.
من لوحات معلومات نظام المجموعة، حدد خادم تاريخ Spark. عند المطالبة، أدخل بيانات اعتماد المسؤول لمجموعة Spark.
مدخل Microsoft Azure." border="true":::
افتح واجهة مستخدم الويب لخادم Spark History من خلال عنوان URL
افتح خادم Spark History من خلال التصفح إلى https://CLUSTERNAME.azurehdinsight.net/sparkhistory
، حيث يكون CLUSTERNAME هو اسم مجموعة Spark الخاصة بك.
قد تبدو واجهة مستخدم الويب لـ Spark History Server مشابهة لهذه الصورة:
استخدم علامة التبويب البيانات في Spark History Server
حدد معرّف الوظيفة، ثم حدد البيانات في قائمة الأداة لمشاهدة عرض البيانات.
راجع المدخلاتو المخرجاتو عمليات الجدول عن طريق تحديد علامات التبويب الفردية.
انسخ جميع الصفوف عن طريق تحديد الزر نسخ .
احفظ جميع البيانات كملف CSV. عن طريق تحديد الزر csv .
ابحث في البيانات بإدخال كلمات رئيسية في حقل بحث . سيتم عرض نتائج البحث على الفور.
حدد رأس العمود لفرز الجدول. حدد علامة الجمع لتوسيع صف لإظهار المزيد من التفاصيل. حدد علامة الطرح لطي الصف.
قم بتنزيل ملف واحد عن طريق تحديد الزر تنزيل جزئي على اليسار. سيتم تنزيل الملف المحدد محلياً. إذا لم يعد الملف موجوداً، فسيؤدي ذلك إلى فتح علامة تبويب جديدة لإظهار رسائل الخطأ.
انسخ مساراً كاملاً أو مساراً نسبياً عن طريق تحديد الخيار نسخ المسار الكامل أو نسخ المسار النسبي، والذي يتم توسيعه من قائمة التنزيل. بالنسبة لملفات Azure Data Lake Storage، حدد فتح في Azure Storage Explorer لتشغيل Azure Storage Explorer وتحديد موقع المجلد بعد تسجيل الدخول.
إذا كان هناك عدد كبير جداً من الصفوف لعرضها في صفحة واحدة، فحدد أرقام الصفحات في أسفل الجدول للتنقل.
لمزيد من المعلومات، مرر الماوس فوق أو حدد علامة الاستفهام الموجودة بجوار بيانات تطبيق Spark لإظهار تلميح الأداة.
لإرسال تعليقات حول المشكلات، حدد إرسال تعليقات إلينا.
استخدم علامة التبويب الرسم البياني في خادم Spark History
حدد معرّف الوظيفة، ثم حدد رسم بياني في قائمة الأداة لمشاهدة الرسم البياني للوظيفة. بشكل افتراضي، سيعرض الرسم البياني جميع الوظائف. قم بتصفية النتائج باستخدام القائمة المنسدلة معرف الوظيفة .
يتم تحديدالتقدم بشكل افتراضي. تحقق من تدفق البيانات عن طريق تحديد قراءة أو مكتوب في القائمة المنسدلة العرض .
يتوافق لون الخلفية لكل مهمة مع خريطة الحرارة.
Color الوصف أخضر تمت المهمة بنجاح. Orange فشلت المهمة، لكن هذا لا يؤثر على النتيجة النهائية للوظيفة. تحتوي هذه المهام على مثيلات مكررة أو تعيد المحاولة قد تنجح لاحقاً. أزرق المهمة قيد التشغيل. أبيض المهمة في انتظار التشغيل، أو تم تخطي المرحلة. أحمر فشلت المهمة. تظهر المراحل التي تم تخطيها باللون الأبيض.
إشعار
التشغيل متاح للوظائف المكتملة. حدد الزر تشغيل لتشغيل المهمة. قم بإيقاف المهمة في أي وقت عن طريق تحديد زر التوقف. عند تشغيل مهمة ما، ستعرض كل مهمة حالتها حسب اللون. التشغيل غير مدعوم للمهام غير المكتملة.
قم بالتمرير لتكبير الرسم البياني للوظيفة أو تصغيره، أو حدد تكبير للملاءمة لجعله مناسباً للشاشة.
عندما تفشل المهام، مرر مؤشر الماوس فوق عقدة الرسم البياني لرؤية تلميح الأداة، ثم حدد المرحلة لفتحها في صفحة جديدة.
في صفحة Spark Application & Job Graph، ستُعرض تلميحات الأدوات والرموز الصغيرة في المراحل إذا كانت المهام تفي بهذه الشروط:
انحراف البيانات: حجم قراءة البيانات > متوسط حجم قراءة البيانات لجميع المهام داخل هذه المرحلة * 2 و حجم قراءة البيانات > 10 ميجابايت.
انحراف الوقت: وقت التنفيذ > متوسط وقت التنفيذ لجميع المهام داخل هذه المرحلة * 2 ووقت التنفيذ > دقيقتين.
ستعرض عقدة الرسم البياني للوظيفة المعلومات التالية حول كل مرحلة:
المعرف
الاسم أو الوصف
إجمالي رقم المهمة
قراءة البيانات: مجموع حجم الإدخال وحجم القراءة عشوائياً
كتابة البيانات: مجموع حجم الإخراج وحجم الكتابة العشوائي
وقت التنفيذ: الوقت بين وقت بدء المحاولة الأولى ووقت الانتهاء من المحاولة الأخيرة
عدد الصفوف: مجموع سجلات الإدخال، وسجلات الإخراج، وسجلات القراءة العشوائية، وسجلات الكتابة العشوائية
التقدم
إشعار
بشكل افتراضي، ستعرض عقدة الرسم البياني للوظيفة معلومات من المحاولة الأخيرة لكل مرحلة (باستثناء وقت تنفيذ المرحلة). ولكن أثناء التشغيل، ستعرض عقدة الرسم البياني للوظيفة معلومات حول كل محاولة.
إشعار
لأحجام قراءة البيانات وكتابة البيانات، نستخدم 1 ميجابايت = 1000 كيلوبايت = 1000 * 1000 بايت.
أرسل تعليقاتك حول المشكلات عن طريق تحديد إرسال تعليقات إلينا.
استخدم علامة التبويب التشخيص في خادم Spark History
حدد معرّف الوظيفة، ثم حدد التشخيص في قائمة الأداة لمشاهدة عرض تشخيص الوظيفة. تتضمن علامة التبويب التشخيص انحراف البيانات و انحراف الوقت و تحليل استخدام المنفذ.
راجع انحراف البيانات و انحراف الوقت و تحليل استخدام المنفذ عن طريق تحديد علامات التبويب على التوالي.
انحراف البيانات
حدد علامة التبويب انحراف البيانات. يتم عرض المهام المنحرفة المقابلة بناءً على المعلمات المحددة.
حدد المعلمات
قسم تحديد المعلمات يعرض المعلمات التي تُستخدم لاكتشاف انحراف البيانات. القاعدة الافتراضية هي: قراءة بيانات المهمة أكبر من ثلاث مرات من متوسط بيانات المهمة المقروءة، وبيانات المهمة المقروءة أكثر من 10 ميغا بايت. إذا كنت تريد تحديد القاعدة الخاصة بك للمهام المنحرفة، فيمكنك اختيار المعلمات الخاصة بك. سيتم تحديث قسمي منحرفة ومخطط منحرف وفقاً لذلك.
مرحلة منحرفة
يعرض قسم منحرفة المرحلة المراحل التي تحتوي على مهام منحرفة تفي بالمعايير المحددة. في حالة وجود أكثر من مهمة منحرفة في إحدى المراحل، يعرض قسم المرحلة المنحرفة فقط المهمة الأكثر انحرافاً (أي أكبر البيانات لانحراف البيانات).
مخطط انحراف
عندما تحدد صفاً في الجدول مرحلة الانحراف، يعرض مخطط الانحراف مزيداً من تفاصيل توزيع المهام بناءً على قراءة البيانات ووقت التنفيذ. يتم تمييز المهام المنحرفة باللون الأحمر، ويتم تمييز المهام العادية باللون الأزرق. للنظر في الأداء، يعرض المخطط ما يصل إلى 100 نموذج مهمة. يتم عرض تفاصيل المهمة في اللوحة اليمنى السفلية.
انحراف الوقت
تعرض علامة التبويب انحراف الوقت المهام المنحرفة بناءً على وقت تنفيذ المهمة.
حدد المعلمات
قسم تحديد المعلمات يعرض المعلمات التي تُستخدم لاكتشاف انحراف الوقت. القاعدة الافتراضية هي: وقت تنفيذ المهمة أكبر من ثلاث مرات من متوسط وقت التنفيذ، ووقت تنفيذ المهمة أكبر من 30 ثانية. يمكنك تغيير المعلمات بناءً على احتياجاتك. يعرض كل من منحرف المرحلة ومخطط منحرف المراحل المقابلة ومعلومات المهام، تماماً كما هو الحال في علامة التبويب انحراف البيانات .
عند تحديد انحراف الوقت، يتم عرض النتيجة المصفاة في قسم مرحلة منحرفة، وفقاً للمعلمات التي تم تعيينها في قسم تحديد المعلمات . عندما تحدد عنصراً واحداً في قسم مرحلة منحرفة، تتم صياغة المخطط المقابل في القسم الثالث، ويتم عرض تفاصيل المهمة في اللوحة اليمنى السفلية.
الرسوم البيانية لتحليل استخدام المنفذ
يعرض الرسم البياني لاستخدام المنفذ تخصيص المنفذ الفعلي للوظيفة وحالة التشغيل.
عند تحديد تحليل استخدام المنفذ، تتم صياغة أربعة منحنيات مختلفة حول استخدام المنفذ: المنفذون المخصصون و المنفذون قيد التشغيل و المنفذون الخاملون و الحد الأقصى لمثيلات Executor. كل حدث تمت إضافة المنفذ أو تمت إزالة المنفذ سيزيد أو ينقص عدد المنفذين المخصصين. يمكنك التحقق من المخطط الزمني للحدث في علامة التبويب الوظائف لمزيد من المقارنات.
حدد رمز اللون لتحديد أو إلغاء تحديد المحتوى المقابل في جميع المسودات.
الأسئلة المتداولة
كيف أعود إلى إصدار المجتمع؟
للرجوع إلى إصدار المجتمع، قم بالخطوات التالية.
افتح الكتلة في Ambari.
انتقل إلى Spark2>Configs.
حدد افتراضيات شرارة 2 مخصصة.
حدد إضافة خاصية ....
أضف spark.ui.enhancement.enabled = false، ثم احفظه.
يتم تعيين الخاصية على false الآن.
حدد حفظ لحفظ التكوين.
حدد Spark2 في اللوحة اليمنى. بعد ذلك، في علامة التبويب الملخص، حدد Spark2 History Server.
لإعادة تشغيل Spark History Server، حدد الزر تم البدء على يمين Spark2 History Server، ثم حدد إعادة التشغيل من القائمة المنسدلة.
قم بتحديث واجهة مستخدم الويب لخادم Spark History. سيعود إلى إصدار المجتمع.
كيف يمكنني تحميل حدث Spark History Server للإبلاغ عنه كمشكلة؟
إذا واجهت خطأ في Spark History Server، فقم بالخطوات التالية للإبلاغ عن الحدث.
قم بتنزيل الحدث عن طريق تحديد تنزيل في واجهة مستخدم الويب لخادم Spark History.
حدد Provide us feedback من صفحة Graph & تطبيقSpark.
قم بتوفير العنوان ووصف الخطأ. بعد ذلك، اسحب ملف .zip إلى حقل التعديل وحدد إرسال إصدار جديد.
كيف أقوم بترقية ملف .jar في سيناريو الإصلاح العاجل؟
إذا كنت تريد الترقية باستخدام إصلاح عاجل، فاستخدم البرنامج النصي التالي، والذي سيقوم بترقية spark-enhancement.jar*
.
upgrade_spark_enhancement.sh:
#!/usr/bin/env bash
# Copyright (C) Microsoft Corporation. All rights reserved.
# Arguments:
# $1 Enhancement jar path
if [ "$#" -ne 1 ]; then
>&2 echo "Please provide the upgrade jar path."
exit 1
fi
install_jar() {
tmp_jar_path="/tmp/spark-enhancement-hotfix-$( date +%s )"
if wget -O "$tmp_jar_path" "$2"; then
for FILE in "$1"/spark-enhancement*.jar
do
back_up_path="$FILE.original.$( date +%s )"
echo "Back up $FILE to $back_up_path"
mv "$FILE" "$back_up_path"
echo "Copy the hotfix jar file from $tmp_jar_path to $FILE"
cp "$tmp_jar_path" "$FILE"
"Hotfix done."
break
done
else
>&2 echo "Download jar file failed."
exit 1
fi
}
jars_folder="/usr/hdp/current/spark2-client/jars"
jar_path=$1
if ls ${jars_folder}/spark-enhancement*.jar 1>/dev/null 2>&1; then
install_jar "$jars_folder" "$jar_path"
else
>&2 echo "There is no target jar on this node. Exit with no action."
exit 0
fi
الاستخدام
upgrade_spark_enhancement.sh https://${jar_path}
مثال
upgrade_spark_enhancement.sh https://${account_name}.blob.core.windows.net/packages/jars/spark-enhancement-${version}.jar
استخدم ملف bash من بوابة Microsoft Azure
قم بتشغيل مدخل Azure، ثم حدد المجموعة الخاصة بك.
أكمل إجراء البرنامج النصي بالمعلمات التالية.
الخاصية القيمة نوع البرنامج النصي - مخصص الاسم UpgradeJar عنوان URI النصي Bash https://hdinsighttoolingstorage.blob.core.windows.net/shsscriptactions/upgrade_spark_enhancement.sh
نوع العقدة (العقدات) رئيس، عامل المعلمات https://${account_name}.blob.core.windows.net/packages/jars/spark-enhancement-${version}.jar
مشكلات معروفة
حالياً، يعمل خادم Spark History فقط مع Spark 2.3 و2.4.
لن يتم عرض بيانات الإدخال والإخراج التي تستخدم RDD في علامة التبويب البيانات .
الخطوات التالية
الاقتراحات
إذا كانت لديك أي ملاحظات أو واجهتك أي مشكلات عند استخدام هذه الأداة، فأرسل بريداً إلكترونياً إلى (hdivstool@microsoft.com).