استخدام Azure Toolkit for Eclipse لإنشاء تطبيقات Apache Spark لنظام مجموعة HDInsight

استخدام HDInsight Tools في Azure Toolkit for Eclipse لتطوير تطبيقات Apache Spark المكتوبة في Scala وإرسالها إلى نظام مجموعة Azure HDInsight Spark، مباشرة من Eclipse IDE. يمكنك استخدام المكون الإضافي HDInsight Tools بعدة طرق مختلفة:

  • لتطوير تطبيق Scala Spark وإرساله في نظام مجموعة HDInsight Spark.
  • للوصول إلى موارد نظام مجموعة Azure HDInsight Spark.
  • لتطوير تطبيق Scala Spark وتشغيله محليًا.

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

تثبيت المكونات الإضافية المطلوبة

ثبت Azure Toolkit لـ Eclipse.

للحصول على إرشادات التثبيت، راجع تثبيت Azure Toolkit for Eclipse.

تثبيت المكون الإضافي Scala

عند فتح Eclipse، يكتشف HDInsight Tools تلقائيًا ما إذا كنت قد قمت بتثبيت المكون الإضافي Scala. حدد موافق للمتابعة، ثم اتبع الإرشادات لتثبيت المكون الإضافي من Eclipse Marketplace. أعد تشغيل IDE بعد اكتمال التثبيت.

Automatic installation of the Scala plug-in.

تأكيد المكونات الإضافية

  1. انتقل إلى التعليمات>Eclipse Marketplace....

  2. حدد علامة التبويب مثبّت.

  3. من المفترض أن ترى على الأقل ما يلي:

    • <إصدار> Azure Toolkit for Eclipse.
    • <إصدار> Scala IDE.

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

  1. قم بتشغيل Eclipse IDE.

  2. انتقل إلى نافذة>طريقة العرض>أخرى...>تسجيل الدخول...

  3. من مربع الحوار طريقة العرض، انتقل إلى Azure>Azure Explorer، ثم حدد فتح.

    Apache Spark Eclipse show view.

  4. من Azure Explorer، انقر بزر الماوس الأيمن فوق عقدة Azure، ثم حدد تسجيل الدخول.

  5. في مربع الحوار تسجيل الدخول إلى Azure، اختر طريقة المصادقة، وحدد تسجيل الدخول، وأكمل عملية تسجيل الدخول.

    Apache Spark Eclipse Azure Sign.

  6. بعد تسجيل الدخول، يسرد مربع الحوار اشتراكاتك جميع اشتراكات Azure المقترنة ببيانات الاعتماد. اضغط على تحديد لإغلاق مربع الحوار.

    Select Subscriptions dialog box.

  7. من Azure Explorer، انتقل إلى Azure>HDInsight للاطلاع على أنظمة مجموعات HDInsight Spark ضمن اشتراكك.

    HDInsight Spark clusters in Azure Explorer3.

  8. يمكنك أيضًا توسيع عقدة اسم نظام المجموعة للاطلاع على الموارد (على سبيل المثال، حسابات التخزين) المقترنة بنظام المجموعة.

    Expanding a cluster name to see resources.

يمكنك ربط نظام مجموعة عادي باستخدام اسم المستخدم المُدار بواسطة Ambari. وبالمثل، بالنسبة لنظام مجموعة HDInsight المُنضم إلى المجال، يمكنك الربط باستخدام المجال واسم المستخدم، مثل user1@contoso.com.

  1. من Azure Explorer، انقر بزر الماوس الأيمن فوق HDInsight، وحدد ربط نظام مجموعة.

    Azure Explorer link cluster menu.

  2. أدخل اسم نظام المجموعة، واسم المستخدم، وكلمة المرور، ثم حدد موافق. اختياريًا، أدخل حساب التخزين، ومفتاح التخزين، ثم حدد حاوية التخزين لمستكشف التخزين للعمل في العرض الشجري على اليسار

    Link New HDInsight cluster dialog.

    إشعار

    نستخدم مفتاح التخزين المرتبط، واسم المستخدم، وكلمة المرور إذا قام نظام المجموعة بتسجيل الدخول إلى اشتراك Azure وربط نظام مجموعة. Azure Explorer storage accounts.

    بالنسبة لمستخدم لوحة المفاتيح فقط، عندما يكون التركيز الحالي على مفتاح التخزين، تحتاج إلى استخدام Ctrl+TAB للتركيز على الحقل التالي في مربع الحوار.

  3. يمكنك رؤية نظام المجموعة المرتبط تحت HDInsight. الآن يمكنك إرسال تطبيق إلى نظام المجموعة المرتبط هذا.

    Azure Explorer hdi linked cluster.

  4. يمكنك أيضاً إلغاء ارتباط نظام من مستكشف Azure.

    Azure Explorer unlinked cluster.

إعداد مشروع Spark Scala لنظام مجموعة HDInsight Spark

  1. من مساحة عمل Eclipse IDE، حدد ملف>جديد>مشروع....

  2. في معالج مشروع جديد، حدد مشروع HDInsight>Spark on HDInsight (Scala). بعد ذلك حدد التالي.

    Selecting the Spark on HDInsight (Scala) project.

  3. في مربع الحوار مشروع HDInsight Scala جديد، قم بتوفير القيم التالية، ثم حدد التالي:

    • أدخل اسمًا للمشروع.
    • في منطقة JRE، تأكد من تعيين استخدام بيئة تنفيذ JRE إلى JavaSE-1.7 أو إصدار أحدث.
    • في منطقة مكتبة Spark، يمكنك اختيار خيار استخدام Maven لتكوين Spark SDK. تقوم أداتنا بدمج الإصدار المناسب لـ Spark SDK وScala SDK. يمكنك أيضًا اختيار خيار إضافة Spark SDK يدويًا، وتنزيل وإضافة Spark SDK يدويًا.

    New HDInsight Scala Project dialog box.

  4. في مربع الحوار التالي، راجع التفاصيل، ثم حدد إنهاء.

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

  1. من Package Explorer، قم بتوسيع المشروع الذي قمت بإنشائه مسبقًا. انقر بزر الماوس الأيمن فوق src، وحدد جديد>أخرى....

  2. في مربع الحوار تحديد معالج، حدد معالجات Scala>مشروع Scala. بعد ذلك حدد التالي.

    Select a wizard Create a Scala Object.

  3. في مربع الحوار إنشاء ملف جديد، أدخل اسمًا للعنصر، ثم حدد إنهاء. سيتم فتح محرر نص.

    New File Wizard Create New File.

  4. في محرر النص، استبدل المحتويات الحالية بالتعليمات البرمجية أدناه:

    import org.apache.spark.SparkConf
    import org.apache.spark.SparkContext
    
    object MyClusterApp{
        def main (arg: Array[String]): Unit = {
        val conf = new SparkConf().setAppName("MyClusterApp")
        val sc = new SparkContext(conf)
    
        val rdd = sc.textFile("wasbs:///HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv")
    
        //find the rows that have only one digit in the seventh column in the CSV
        val rdd1 =  rdd.filter(s => s.split(",")(6).length() == 1)
    
        rdd1.saveAsTextFile("wasbs:///HVACOut")
        }
    }
    
  5. قم بتشغيل التطبيق على نظام مجموعة HDInsight Spark:

    أ. من Package Explorer، انقر بزر الماوس الأيمن فوق اسم المشروع، ثم حدد إرسال تطبيق Spark إلى HDInsight.

    ب. في مربع الحوار إرسال Spark، قم بتوفير القيم التالية، ثم حدد إرسال:

    • بالنسبة إلى اسم نظام المجموعة، حدد نظام مجموعة HDInsight Spark الذي تريد تشغيل تطبيقك عليه.

    • حدد بيانات اصطناعية من مشروع Eclipse، أو حدد واحدة من محرك الأقراص الثابتة. تعتمد القيمة الافتراضية على العنصر الذي تنقر فوقه بزر الماوس الأيمن من Package Explorer.

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

    • نظرًا لأن التعليمات البرمجية للتطبيق في هذا المثال لا تتطلب أي وسيطات سطر أوامر أو ملفات JAR أو ملفات مرجعية، يمكنك ترك مربعات النص المتبقية فارغة.

      Apache Spark Submission dialog box.

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

    Apache Spark Submission window.

الوصول إلى أنظمة مجموعات HDInsight Spark وإدارتها باستخدام HDInsight Tools في Azure Toolkit for Eclipse

يمكنك تنفيذ العديد من العمليات باستخدام HDInsight Tools، بما في ذلك الوصول إلى إخراج المهمة.

الوصول إلى طريقة عرض المهمة

  1. في Azure Explorer، قم بتوسيع HDInsight، ثم اسم نظام مجموعة Spark، ثم حدد المهام.

    Azure Explorer Eclipse job view node.

  2. حدد عقدة المهام. إذا كان إصدار Java أقل من 1.8، فإن HDInsight Tools يذكرك تلقائيًا بتثبيت المكون الإضافي E(fx)clipse. حدد موافق للمتابعة، ثم اتبع المعالج لتثبيته من Eclipse Marketplace وأعد تشغيل Eclipse.

    Install missing plugin E(fx)clipse.

  3. افتح عرض المهمة من عقدة المهام. في الجزء الأيسر، تعرض علامة التبويب عرض مهمة Spark جميع التطبيقات التي تم تشغيلها في نظام المجموعة. حدد اسم التطبيق الذي تريد الاطلاع على مزيد من التفاصيل عنه.

    Apache Eclipse view job logs details.

    يمكنك بعد ذلك اتخاذ أي من هذه الإجراءات:

    • قم بالمرور فوق الرسم البياني للمهمة. يعرض معلومات أساسية حول المهمة قيد التشغيل. حدد الرسم البياني للمهمة، ويمكنك مشاهدة المراحل والمعلومات التي تنشأها كل مهمة.

      Apache Spark job graph stage info.

    • حدد علامة التبويب سجل لعرض السجلات المستخدمة بشكل متكرر، بما في ذلك برنامج التشغيل Stderr، وبرنامج التشغيل Stdout، ومعلومات الدليل.

      Apache Spark Eclipse job log info.

    • افتح واجهة مستخدم محفوظات Spark وواجهة مستخدم Apache Hadoop YARN (على مستوى التطبيق) عن طريق تحديد الارتباطات التشعبية الموجودة أعلى النافذة.

الوصول إلى حاوية تخزين نظام المجموعة

  1. في Azure Explorer، قم بتوسيع عقدة جذر HDInsight لرؤية قائمة بأنظمة مجموعات HDInsight Spark المتوفرة.

  2. قم بتوسيع اسم نظام المجموعة لرؤية حساب التخزين وحاوية التخزين الافتراضية لنظام المجموعة.

    Storage account and default storage container.

  3. حدد اسم حاوية التخزين المقترنة بنظام المجموعة. في الجزء الأيسر، انقر نقرًا مزدوجًا فوق المجلد HVACOut. افتح أحد ملفات الأجزاء لرؤية إخراج التطبيق.

الوصول إلى خادم محفوظات Spark

  1. في Azure Explorer، انقر بزر الماوس الأيمن فوق اسم نظام مجموعة Spark، ثم حدد فتح واجهة مستخدم محفوظات Spark. أدخل بيانات اعتماد المسؤول لنظام المجموعة عند مطالبتك بذلك. لقد قمت بتحديدها أثناء تزويد نظام المجموعة.

  2. في لوحة معلومات خادم محفوظات Spark، يمكنك استخدام اسم التطبيق للبحث عن التطبيق الذي انتهيت للتو من تشغيله. في التعليمات البرمجية السابقة، قمت بتعيين اسم التطبيق باستخدام val conf = new SparkConf().setAppName("MyClusterApp"). لذلك، كان اسم تطبيق Spark الخاص بك MyClusterApp.

بدء تشغيل مدخل Apache Ambari

  1. في Azure Explorer، انقر بزر الماوس الأيمن فوق اسم نظام مجموعة Spark، ثم حدد فتح مدخل إدارة نظام المجموعة (Ambari).

  2. أدخل بيانات اعتماد المسؤول لنظام المجموعة عند مطالبتك بذلك. لقد قمت بتحديدها أثناء تزويد نظام المجموعة.

إدارة اشتراكات Azure

بشكل افتراضي، يسرد HDInsight Tool في Azure Toolkit for Eclipse أنظمة مجموعات Spark من جميع اشتراكات Azure الخاصة بك. إذا لزم الأمر، يمكنك تحديد الاشتراكات التي تريد الوصول إلى نظام المجموعة الخاص بها.

  1. في Azure Explorer، انقر بزر الماوس الأيمن فوق عقدة جذر Azure، ثم حدد إدارة الاشتراكات.

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

تشغيل تطبيق Spark Scala محليًا

يمكنك استخدام HDInsight Tools في Azure Toolkit for Eclipse لتشغيل تطبيقات Spark Scala محليًا في محطة العمل الخاصة بك. عادةً، لا تحتاج هذه التطبيقات إلى الوصول إلى موارد نظام المجموعة مثل حاوية التخزين، ويمكنك تشغيلها واختبارها محليًا.

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

أثناء تشغيل تطبيق Spark Scala المحلي على جهاز كمبيوتر يعمل بنظام Windows، قد تحصل على استثناء كما هو موضح في SPARK-2356. يحدث هذا الاستثناء لأن WinUtils.exe مفقود في Windows.

لحل هذا الخطأ، تحتاج Winutils.exe إلى موقع مثل C:\WinUtils\bin، ثم قم بإضافة متغير البيئة HADOOP_HOME وتعيين قيمة المتغير إلى C\WinUtils.

تشغيل تطبيق Spark Scala محلي

  1. ابدأ تشغيل Eclipse وأنشئ مشروعًا. في مربع الحوار مشروع جديد، حدد الخيارات التالية، ثم حدد التالي.

  2. في معالج مشروع جديد، حدد مشروع HDInsight>تشغيل نموذج Spark on HDInsight محلي (Scala). بعد ذلك حدد التالي.

    New project selects a wizard dialog.

  3. لتوفير تفاصيل المشروع، اتبع الخطوات من 3 إلى 6 من القسم السابق إعداد مشروع Spark Scala لنظام مجموعة HDInsight Spark.

  4. يضيف القالب نموذج التعليمات البرمجية (LogQuery) ضمن المجلد src الذي يمكنك تشغيله محليًا على جهاز الكمبيوتر الخاص بك.

    Location of LogQuery local scala application.

  5. انقر بزر الماوس الأيمن فوق LogQuery.scala، وحدد تشغيل كـ>1 تطبيق Scala. يظهر مثل هذا الإخراج في علامة التبويب وحدة التحكم:

    Spark application local run result.

دور القارئ فقط

عندما يرسل المستخدمون مهمة إلى نظام مجموعة بإذن دور «قارئ فقط»، تكون بيانات اعتماد Ambari مطلوبة.

  1. قم بتسجيل الدخول بحساب دور «قارئ فقط».

  2. من Azure Explorer، قم بتوسيع HDInsight لعرض أنظمة مجموعات HDInsight الموجودة في اشتراكك. أنظمة المجموعات المميزة بعلامة "دور:قارئ" لها إذن دور للقارئ فقط.

    HDInsight Spark clusters in Azure Explorer role reader.

  3. انقر بزر الماوس الأيمن فوق نظام المجموعة الذي له إذن دور قارئ فقط. حدد ربط نظام المجموعة هذا من قائمة السياق لربط نظام المجموعة. أدخل اسم المستخدم وكلمة المرور لـ Ambari.

    HDInsight Spark clusters in Azure Explorer link.

  4. إذا تم ربط نظام المجموعة بنجاح، فسيتم تحديث HDInsight. وستصبح مرحلة نظام المجموعة مرتبطة.

    HDInsight Spark clusters in Azure Explorer linked.

  1. انقر فوق عقدة Jobs، تنبثق نافذة رفض الوصول إلى مهمة نظام المجموعة.

  2. انقر فوق Link this cluster لربط نظام المجموعة.

    HDInsight Spark clusters in Azure Explorer9.

  1. قم بإنشاء مشروع HDInsight.

  2. انقر بزر الماوس الأيمن فوق الحزمة. ثم حدد إرسال تطبيق Spark إلى HDInsight.

    HDInsight Spark clusters in Azure Explorer submit.

  3. حدد نظام مجموعة، له إذن دور قارئ فقط لـ اسم نظام المجموعة. تظهر رسالة تحذير. يمكنك النقر فوق ربط نظام المجموعة هذا لربط نظام المجموعة.

    HDInsight Spark clusters in Azure Explorer link this.

عرض حسابات التخزين

  • بالنسبة لأنظمة المجموعات التي لها إذن دور قارئ فقط، انقر فوق عقدة Storage Accounts، وستنبثق نافذة رفض الوصول إلى التخزين.

    HDInsight Spark clusters in Azure Explorer storage.

    HDInsight Spark clusters in Azure Explorer denied.

  • بالنسبة لأنظمة المجموعات المرتبطة، انقر فوق عقدة Storage Accounts، وستنبثق نافذة رفض الوصول إلى التخزين.

    HDInsight Spark clusters in Azure Explorer denied2.

المشاكل المعروفة

عند استخدام ربط نظام مجموعة، أقترح عليك إدخال بيانات اعتماد التخزين.

link cluster with storage credential eclipses.

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

eclipse get error when cluster busy.

eclipse get error when cluster busy yarn.

(راجع أيضًا )

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

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

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

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