تتبع أخطاء تطبيقات Apache Spark على نظام مجموعة HDInsight مع مجموعة أدوات Azure لـ Intelj من خلال SSH

تقدم هذه المقالة إرشادات خطوة بخطوة حول كيفية استخدام أدوات HDInsight في مجموعة أدوات Azure لـ IntelliJ لتتبع أخطاء التطبيقات عن بعد على نظام مجموعة HDInsight.

المتطلبات الأساسية

إنشاء تطبيق Spark Scala

  1. ابدأ تشغيل IntelliJ IDEA، وحدد "Create New Project" لفتح نافذة "New Project".

  2. حدد Apache Spark/HDInsight من الجزء الأيمن.

  3. حدد مشروع Spark مع عينات (Scala) من النافذة الرئيسية.

  4. من القائمة المنسدلة إنشاء أداة حدد أيًا مما يلي:

    • Maven لدعم معالج إنشاء مشروع Scala.
    • SBT لإدارة التبعيات والبناء لمشروع project.

    Intellij Create New Project Spark.

  5. حدد التالي.

  6. في نافذة المشروع الجديد التالية، وفر المعلومات التالية:

    الخاصية ‏‏الوصف
    اسم المشروع أدخل اسمًا. تستخدم هذه الجولة myApp.
    موقع المشروع أدخل الموقع المطلوب لحفظ المشروع.
    مشروع SDK إذا كان فارغا، فحدد جديد... وانتقل إلى JDK.
    إصدار Spark يدمج معالج الإنشاء الإصدار المناسب لـSpark SDK و Scala SDK. إذا كان إصدار مجموعة Spark أقدم من 2.0، فحدد Spark 1.x. بخلاف ذلك، حدد Spark 2.x.. يستخدم هذا المثال Spark 2.3.0 (Scala 2.11.8).

    Intellij New Project select Spark version.

  7. حدد إنهاء. قد يستغرق الأمر بضع دقائق قبل أن يصبح المشروع متاحًا. شاهد الزاوية اليمنى السفلية للتقدم.

  8. قم بتوسيع مشروعك، وانتقل إلى عينة src>main>scala>. انقر نقرا مزدوجا فوق SparkCore_WasbIOTest.

تنفيذ التشغيل المحلي

  1. من البرنامج النصي SparkCore_WasbIOTest، انقر بزر الماوس الأيمن فوق محرر البرنامج النصي، ثم حدد الخيار تشغيل 'SparkCore_WasbIOTest' لتنفيذ التشغيل المحلي.

  2. بمجرد الانتهاء من التشغيل المحلي، يمكنك الاطلاع على حفظ ملف الإخراج إلى الإعداد الافتراضي لبياناتمستكشف المشروع الحالي>الخاص بك.

    Intellij Project local run result.

  3. لقد قامت أدواتنا بتعيين تكوين التشغيل المحلي الافتراضي تلقائيًا عند إجراء التشغيل المحلي وتتبع الأخطاء المحلي. افتح التكوين [Spark on HDInsight] XXX في الزاوية اليمنى العليا، يمكنك أن ترى [Spark on HDInsight]XXX المنشأة بالفعل ضمن Apache Spark on HDInsight. التبديل إلى علامة التبويب تشغيل محليًا.

    Intellij Run debug configurations local run.

    • متغيرات البيئة: إذا قمت بتعيين متغير بيئة النظام HADOOP_HOME بالفعل على C:\WinUtils، فإنه يمكن الكشف التلقائي عن عدم الحاجة إلى الإضافة يدويًا.
    • موقع WinUtils.exe: إذا لم تقم بتعيين متغير بيئة النظام، يمكنك العثور على الموقع بالنقر فوق الزر الخاص به.
    • اختر فقط أيًا من الخيارين، ولن تكون هناك حاجة إليه في نظامي MacOS وLinux.
  4. يمكنك أيضًا تعيين التكوين يدويًا قبل تنفيذ التشغيل المحلي وتتبع الأخطاء المحلي. في لقطة الشاشة السابقة، حدد علامة الجمع (+). ثم حدد خيار Apache Spark on HDInsight. أدخل معلومات عن الاسمواسم الفئة الرئيسية لحفظها، ثم انقر فوق زر التشغيل المحلي.

تنفيذ تتبع الأخطاء المحلي

  1. افتح البرنامج النصي SparkCore_wasbloTest، مع تعيين نقاط التوقف.

  2. انقر بزر الماوس الأيمن فوق محرر البرنامج النصي، ثم حدد الخيار تتبع الأخطاء '[Spark on HDInsight]XXX' لإجراء تتبع الأخطاء المحلي.

تنفيذ التشغيل عن بعد

  1. انتقل إلى تشغيل>تكوينات التعديل.... من هذه القائمة، يمكنك إنشاء أو تحرير التكوينات لتتبع الأخطاء عن بعد.

  2. في مربع الحوار تشغيل/تتبع أخطاء التكوينات حدد علامة الجمع (+). ثم حدد خيار Apache Spark on HDInsight.

    Intellij Add new configuration.

  3. التبديل إلى التشغيل عن بعد في علامة تبويب نظام المجموعة. أدخل معلومات عن الاسم ونظام مجموعة Spark، واسم الفئة الرئيسية. ثم انقر فوق تكوين متقدم (تتبع الأخطاء عن بعد). أدواتنا تدعم تتبع الأخطاء مع المنفذين. numExectors، القيمة الافتراضية هي 5. من الأفضل ألا تكون أعلى من 3.

    Intellij Run debug configurations.

  4. في الجزء التكوين المتقدم (تتبع الأخطاء عن بعد)، حدد تمكين تتبع أخطاء Spark عن بعد. أدخل اسم المستخدم SSH، ثم أدخل كلمة مرور أو استخدم ملف مفتاح خاص. إذا كنت تريد إجراء التتبع عن بعد، عليك تعيينه. ليست هناك حاجة لتعيينه إذا كنت ترغب فقط في استخدام التشغيل عن بعد.

    Intellij Advanced Configuration enable spark remote debug.

  5. يتم الآن حفظ التكوين بالاسم الذي قمت بتوفيره. لعرض تفاصيل التكوين، حدد اسم التكوين. لإجراء تغييرات، حدد تحرير التكوينات.

  6. بعد إكمال إعدادات التكوينات، يمكنك تشغيل المشروع مقابل نظام المجموعة البعيدة أو تنفيذ تتبع الأخطاء عن بعد.

    Intellij Debug Remote Spark Job Remote run button.

  7. انقر فوق الزر قطع الاتصال الذي لا يظهر سجلات الإرسال في اللوحة اليمنى. ومع ذلك، فإنه لا يزال يعمل على الخلفية.

    Intellij Debug Remote Spark Job Remote run result.

تنفيذ تتبع الأخطاء عن بعد

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

    Intellij Debug Remote Spark Job debug icon.

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

    Intellij Debug Remote Spark Job Debugging tab.

تنفيذ تتبع الأخطاء عن بعد وإصلاح الأخطاء

  1. قم بإعداد نقطتي توقف ثم حدد رمز تتبع الأخطاء لبدء عملية تتبع الأخطاء عن بعد.

  2. تتوقف التعليمة البرمجية عند نقطة التوقف الأولى، وتظهر المعلمة والمعلومات المتغيرة في جزء المتغيرات.

  3. حدد رمز استئناف البرنامج للمتابعة. تتوقف التعليمة البرمجية عند النقطة الثانية. يتم اكتشاف الاستثناء كما هو متوقع.

    Intellij Debug Remote Spark Job throw error.

  4. حدد رمز استئناف البرنامج مرة أخرى. تعرض نافذة تقديم HDInsight Spark خطأ "فشل تشغيل المهمة".

    Intellij Debug Remote Spark Job Error submission.

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

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

    Intellij Debug Remote Spark Job set value.

  7. حدد رمز استئناف البرنامج لمتابعة تشغيل البرنامج. هذه المرة، لا يوجد استثناء. يمكنك أن ترى أن المشروع يعمل بنجاح دون أي استثناءات.

    Intellij Debug Remote Spark Job without exception.

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

السيناريوهات

إنشاء التطبيقات وتشغيلها

الأدوات والملحقات

إدارة الموارد