البرنامج التعليمي: إنشاء تطبيق Apache Spark باستخدام IntelliJ باستخدام مساحة عمل Synapse

يوضح لك هذا البرنامج التعليمي كيفية استخدام Azure Toolkit للمكون الإضافي IntelliJ لتطوير تطبيقات Apache Spark، والتي تمت كتابتها في Scala، ثم إرسالها إلى تجمع Apache Spark بدون خادم مباشرةً من بيئة التطوير المتكاملة IntelliJ (IDE). يمكنك استخدام المكون الإضافي بعدة طرق:

  • قم بتطوير وتقديم تطبيق Scala Spark على تجمع Spark.
  • الوصول إلى موارد مجمعات Spark الخاصة بك.
  • قم بتطوير وتشغيل تطبيق Scala Spark محليًا.

في هذا البرنامج التعليمي، تتعلم كيفية:

  • استخدام Azure Toolkit للمكون الإضافي IntelliJ
  • تطوير تطبيقات Apache Spark
  • إرسال طلب إلى تجمعات Spark

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

إنشاء تطبيق Spark Scala لتجمع Spark

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

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

  3. حدد Spark Project with Samples (Scala) من النافذة الرئيسية.

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

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

    مربع حوار IntelliJ IDEA New Project

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

  6. في إطار المشروع الجديد وفر المعلومات التالية:

    الخاصية ‏‏الوصف
    اسم المشروع أدخل اسمًا. يستخدم هذا البرنامج التعليمي myApp.
    موقع المشروع أدخل الموقع المطلوب لحفظ المشروع.
    مشروع SDK قد يكون هذا الحقل فارغاً في أول استخدام لـ IDEA. حدد جديد... وانتقل إلى JDK.
    إصدار Spark يدمج معالج الإنشاء الإصدار المناسب لـSpark SDK و Scala SDK. هنا يمكنك اختيار إصدار Spark الذي تحتاجه.

    تحديد Apache Spark SDK

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

  8. يقوم مشروع Spark تلقائيًا بإنشاء أداة لك. لعرض الأداة، قم بإجراء التشغيل التالي:

    أ. من شريط القائمة، انتقل إلى >Project Structure....

    ب. من نافذة Project Structure، حدد Artifacts.

    جـ. حدد Cancel بعد عرض الأداة.

    معلومات الأداة في مربع الحوار

  9. ابحث عن LogQuery في myApp>src>main>scala>sample>LogQuery. يستخدم هذا البرنامج التعليمي LogQuery للتشغيل.

    أوامر لإنشاء فئة Scala من Project

الاتصال بتجمع Spark الخاص بك

سجل الدخول إلى اشتراك Azure للاتصال بتجمعات Spark.

تسجيل الدخول إلى اشتراك Azure الخاص بك

  1. من شريط القوائم، انتقل إلى View>Tool Windows >Azure Explorer.

    يعرض IntelliJ IDEA مستكشف Azure

  2. من مستكشف Azure، انقر بزر الماوس الأيمن فوق عقدة Azure، ثم حدد Sign In.

    مستكشف IntelliJ IDEA، انقر بزر الماوس الأيمن فوق Azure

  3. في مربع الحوار Azure Sign In، اختر Device Login،ثم حدد Sign in.

    تسجيل الدخول IntelliJ IDEA Azure

  4. في مربع الحوار Azure Device Login، حددCopy&Open.

    تسجيل الدخول إلى جهاز IntelliJ IDEA Azure

  5. في واجهة المستعرض، قم بلصق التعليمات البرمجية، ثم حدد Next.

    تدخل Microsoft مربع حوار التعليمات البرمجية لـ HDI

  6. أدخل بيانات اعتماد Azure، ثم أغلق المستعرض.

    تدخل Microsoft مربع حوار البريد الإلكتروني لـ HDI

  7. بعد تسجيل الدخول، يسرد مربع الحوار Select Subscriptions كافة اشتراكات Azure المقترنة ببيانات الاعتماد. حدد الاشتراك، ثم حدد Select.

    مربع الحوار Select Subscriptions

  8. من Azure Explorer، قم بتوسيع Apache Spark على Synapse لعرض مساحات العمل الموجودة في اشتراكاتك.

    عرض IntelliJ IDEA Azure Explorer الرئيسي

  9. لعرض تجمعات Spark، يمكنك توسيع مساحة العمل بشكل أكبر.

    حسابات تخزين Azure Explorer

عن بُعد قم بتشغيل تطبيق Spark Scala على تجمع Spark

بعد إنشاء تطبيق Scala، يمكنك تشغيله عن بُعد.

  1. افتح نافذة Run/Debug Configurations عن طريق تحديد الرمز.

    أمر إرسال تطبيق Spark إلى HDInsight 1

  2. في نافذة الحوار Run/Debug Configurations، حدد +، ثم حدد Apache Spark على Synapse.

    أمر إرسال تطبيق Spark إلى HDInsight 2

  3. في نافذة Run/Debug Configurations، قم بتوفير القيم التالية ثم حدد OK:

    الخاصية القيمة
    تجمعات Spark حدد تجمعات Spark التي تريد تشغيل التطبيق عليها.
    تحديد أداة للتقديم اترك الإعداد الافتراضي.
    اسم الفئة الرئيسية القيمة الافتراضية هي الفئة الرئيسية من الملف المحدد. يمكنك تغيير الفئة عن طريق تحديد القطع الناقص(...) واختيار فئة أخرى.
    تكوينات الوظيفة يمكنك تغيير المفتاح الافتراضي والقيم. لمزيد من المعلومات، راجع Apache Livy REST API.
    وسيطات سطر الأوامر يمكنك إدخال وسيطات مفصولة بمسافة للفئة الرئيسية إذا لزم الأمر.
    الجرار والملفات المشار إليها يمكنك إدخال مسارات الجرار المشار إليها والملفات إن وجدت. يمكنك أيضًا استعراض الملفات في نظام الملفات الظاهري Azure الذي يدعم حاليًا فقط نظام المجموعة ADLS Gen2. لمزيدٍ من المعلومات: تكوين Apache Spark و كيفية تحميل الموارد إلى نظام المجموعة.
    تخزين تحميل الوظيفة قم بالتوسيع للكشف عن خيارات إضافية.
    نوع التخزين حدد Use Azure Blob للتحميل أو Use cluster default storage account للتحميل من القائمة المنسدلة.
    حساب التخزين أدخل حساب التخزين الخاص بك.
    مفتاح التخزين أدخل مفتاح التخزين.
    حاوية التخزين حدد حاوية التخزين من القائمة المنسدلة بمجرد إدخال حساب التخزينومفتاح التخزين.

    مربع الحوار 1 Spark Submission

  4. حدد زر SparkJobRun لإرسال المشروع إلى تجمع Apache Spark المحدد. تعرض علامة التبويب Remote Spark Job in Cluster تقدم تنفيذ المهمة في الأسفل. يمكنك إيقاف التطبيق عن طريق تحديد الزر الأحمر.

    نافذة إرسال Apache Spark

    مربع الحوار 2 Spark Submission

تشغيل/تصحيح تطبيقات Apache Spark المحلية

يمكنك اتباع الإرشادات أدناه لإعداد التشغيل المحلي والتصحيح المحلي لوظيفة Apache Spark.

السيناريو 1: قم بالتشغيل المحلي

  1. افتح مربع الحوار Run/Debug Configurations، حدد علامة الجمع ( + ). ثم حدد خيار Apache Spark on Synapse. أدخل معلومات عن الاسمواسم الفئة الرئيسية لحفظها.

    Intellij قم بتشغيل تكوينات تصحيح الأخطاء التشغيل المحلي 1

    • متغيرات البيئة وموقع WinUtils.exe مخصصة فقط لمستخدمي windows.
    • متغيرات البيئة: يمكن اكتشاف متغير بيئة النظام تلقائيًا إذا كنت قد قمت بتعيينه من قبل ولا داعي للإضافة يدويًا.
    • WinUtils.exe الموقع: يمكنك تحديد موقع WinUtils عن طريق تحديد رمز المجلد على اليمين.
  2. ثم حدد زر التشغيل المحلي.

    Intellij قم بتشغيل تكوينات تصحيح الأخطاء التشغيل المحلي 2

  3. بمجرد الانتهاء من التشغيل المحلي، إذا كان البرنامج النصي يتضمن الإخراج، يمكنك التحقق من ملف الإخراج من البيانات>الافتراضية.

    Intellij Project نتيجة التشغيل المحلية 1

السيناريو 2: إجراء التصحيح المحلي

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

  2. حدد رمز التصحيح المحلي للقيام بتصحيح الأخطاء المحلي.

    Intellij Project نتيجة التشغيل المحلية 2

الوصول إلى مساحة عمل Synapse وإدارتها

يمكنك إجراء عمليات مختلفة في Azure Explorer داخل Azure Toolkit لـ IntelliJ. من شريط القوائم، انتقل إلى View>Tool Windows >Azure Explorer.

إطلاق مساحة عمل

  1. من مستكشف Azure، انتقل إلى Apache Spark on Synapse،ثم قم بتوسيعه.

    عرض IntelliJ IDEA Azure Explorer الرئيسي

  2. انقر بزر الماوس الأيمن فوق مساحة عمل، ثم حدد Launch workspace، وسيتم فتح موقع ويب.

    تفاصيل تطبيق Spark Job View 1

    تفاصيل تطبيق Spark Job View 2

وحدة تحكم Spark

يمكنك تشغيل وحدة التحكم المحلية Spark (Scala) أو تشغيل وحدة تحكم جلسة العمل التفاعلية Spark Livy (Scala).

وحدة Spark المحلية (Scala)

تأكد من استيفاء شرط WINUTILS.EXE الأساسي.

  1. من شريط القوائم، انتقل إلى Run>Edit Configurations....

  2. من نافذة Run/Debug Configurations، في الجزء الأيسر، انتقل إلى Apache Spark on Synapse>[Spark on Synapse] myApp.

  3. من الإطار الرئيسي، حدد علامة التبويب Locally Run.

  4. قم بتوفير القيم التالية، ثم حدد OK:

    الخاصية القيمة
    متغيرات البيئة تأكد من صحة قيمة HADOOP_HOME.
    موقع WINUTILS.exe تأكد من صحة المسار.

    تكوين مجموعة وحدة التحكم المحلية

  5. من Project، انتقل إلى myApp>src>الرئيسية>scala>myApp.

  6. من شريط القوائم، انتقل إلى Tools>Spark console>Run Spark Local Console(Scala).

  7. ثم قد يتم عرض مربعي حوار لسؤالك عما إذا كنت تريد إصلاح التبعيات تلقائيًا. إذا كان الأمر كذلك، حدد Auto Fix.

    IntelliJ IDEA Spark Auto Fix مربع حوار 1

    IntelliJ IDEA Spark Auto Fix مربع حوار 2

  8. يجب أن تبدو وحدة التحكم مشابهة للصورة أدناه. في نوع إطار وحدة التحكم sc.appName، ثم اضغط ctrl+Enter. سيتم عرض النتيجة. يمكنك إيقاف وحدة التحكم المحلية عن طريق تحديد الزر الأحمر.

    نتيجة وحدة التحكم المحلية IntelliJ IDEA

وحدة التحكم في الجلسة التفاعلية Spark Livy (Scala)

يتم دعمه فقط على IntelliJ 2018.2 و2018.3.

  1. من شريط القوائم، انتقل إلى Run>Edit Configurations....

  2. من نافذة Run/Debug Configurations، في الجزء الأيسر، انتقل إلى Apache Spark on Synapse>[Spark on Synapse] myApp.

  3. من الإطار الرئيسي، حدد علامة التبويب Remotely Run in Cluster.

  4. قم بتوفير القيم التالية، ثم حدد OK:

    الخاصية القيمة
    اسم الفئة الرئيسية حدد اسم الفئة الرئيسية.
    تجمعات Spark حدد تجمعات Spark التي تريد تشغيل التطبيق عليها.

    تكوين مجموعة وحدة التحكم التفاعلية

  5. من Project، انتقل إلى myApp>src>الرئيسية>scala>myApp.

  6. من شريط القوائم، انتقل إلى Tools>Spark console>Run Spark Livy Interactive Session Console(Scala).

  7. يجب أن تبدو وحدة التحكم مشابهة للصورة أدناه. في نوع إطار وحدة التحكم sc.appName، ثم اضغط ctrl+Enter. سيتم عرض النتيجة. يمكنك إيقاف وحدة التحكم المحلية عن طريق تحديد الزر الأحمر.

    نتيجة وحدة التحكم التفاعلية IntelliJ IDEA

إرسال التحديد إلى وحدة تحكم Spark

قد ترغب في رؤية نتيجة البرنامج النصي عن طريق إرسال بعض التعليمات البرمجية إلى وحدة التحكم المحلية أو وحدة التحكم Livy Interactive Session Console(Scala). للقيام بذلك، يمكنك تمييز بعض التعليمات البرمجية في ملف Scala، ثم النقر بزر الماوس الأيمن فوق Send Selection To Spark console. سيتم إرسال الرمز المحدد إلى وحدة التحكم وتنتهي. سيتم عرض النتيجة بعد التعليمات البرمجية في وحدة التحكم. ستتحقق وحدة التحكم من الأخطاء الموجودة.

إرسال التحديد إلى وحدة تحكم Spark

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