إرسال المهام وإدارتها على مجموعة Apache Spark™ في HDInsight على AKS

هام

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

بمجرد إنشاء نظام المجموعة، يمكن للمستخدم استخدام واجهات مختلفة لإرسال المهام وإدارتها بواسطة

  • استخدام Jupyter
  • استخدام Zeppelin
  • باستخدام ssh (spark-submit)

استخدام Jupyter

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

مجموعة Apache Spark™ على HDInsight على AKS. لمزيد من المعلومات، راجع إنشاء مجموعة Apache Spark.

يعتبر Jupyter Notebook في واقع الأمر إطاراً لتدوين الملاحظات التفاعلية التي تدعم مختلف لغات البرمجة.

إنشاء تطبيق دفتر الملاحظات Jupyter Notebook

  1. انتقل إلى صفحة مجموعة Apache Spark™ وافتح علامة التبويب نظرة عامة . انقر فوق Jupyter، ويطلب منك مصادقة صفحة ويب Jupyter وفتحها.

    لقطة شاشة لكيفية تحديد دفتر ملاحظات Jupyter.

  2. من صفحة ويب Jupyter، حدد New > PySpark لإنشاء دفتر ملاحظات.

    لقطة شاشة لصفحة PySpark الجديدة.

    تم إنشاء دفتر ملاحظات جديد وفتح بالاسم Untitled(Untitled.ipynb).

    إشعار

    باستخدام PySpark أو نواة Python 3 لإنشاء دفتر ملاحظات، يتم إنشاء جلسة spark تلقائيا لك عند تشغيل خلية التعليمات البرمجية الأولى. ولن تكون بحاجة صراحة إلى إنشاء الجلسة.

  3. قم بلصق التعليمة البرمجية التالية في خلية فارغة من Jupyter Notebook، ثم اضغط على SHIFT + ENTER لتشغيل التعليمات البرمجية. انظر هنا لمزيد من عناصر التحكم على Jupyter.

    لقطة شاشة لصفحة PySpark مع المحتويات.

    %matplotlib inline
    import pandas as pd
    import matplotlib.pyplot as plt
    data1 = [22,40,10,50,70]
    s1 = pd.Series(data1)   #One-dimensional ndarray with axis labels (including time series).
    
    data2 = data1
    index = ['John','sam','anna','smith','ben']
    s2 = pd.Series(data2,index=index)
    
    data3 = {'John':22, 'sam':40, 'anna':10,'smith':50,'ben':70}
    s3 = pd.Series(data3)
    
    s3['jp'] = 32     #insert a new row
    s3['John'] = 88
    
    names = ['John','sam','anna','smith','ben']
    ages = [10,40,50,48,70]
    name_series = pd.Series(names)
    age_series = pd.Series(ages)
    
    data_dict = {'name':name_series, 'age':age_series}
    dframe = pd.DataFrame(data_dict)   
    #create a pandas DataFrame from dictionary
    
    dframe['age_plus_five'] = dframe['age'] + 5   
    #create a new column
    dframe.pop('age_plus_five')
    #dframe.pop('age')
    
    salary = [1000,6000,4000,8000,10000]
    salary_series = pd.Series(salary)
    new_data_dict = {'name':name_series, 'age':age_series,'salary':salary_series}
    new_dframe = pd.DataFrame(new_data_dict)
    new_dframe['average_salary'] = new_dframe['age']*90
    
    new_dframe.index = new_dframe['name']
    print(new_dframe.loc['sam'])
    
  4. رسم رسم بياني بالراتب والعمر كمحورين X وY

  5. في دفتر الملاحظات نفسه، الصق التعليمات البرمجية التالية في خلية فارغة من Jupyter Notebook، ثم اضغط على SHIFT + ENTER لتشغيل التعليمات البرمجية.

    %matplotlib inline
    import pandas as pd
    import matplotlib.pyplot as plt
    
    plt.plot(age_series,salary_series)
    plt.show()
    

    لقطة شاشة لإخراج الرسم البياني.

حفظ دفتر الملاحظات

  1. من شريط قوائم دفتر الملاحظات، انتقل إلى حفظ الملف > ونقطة التحقق.

  2. إيقاف تشغيل دفتر الملاحظات لتحرير موارد نظام المجموعة: من شريط قوائم دفتر الملاحظات، انتقل إلى إغلاق الملف > وإيقافه. يمكنك أيضا تشغيل أي من دفاتر الملاحظات ضمن مجلد الأمثلة.

    لقطة شاشة لكيفية حفظ دفاتر الملاحظات.

استخدام دفاتر ملاحظات Apache Zeppelin

تتضمن مجموعات Apache Spark في HDInsight على AKS دفاتر ملاحظات Apache Zeppelin. استخدم دفاتر الملاحظات لتشغيل وظائف Apache Spark. في هذه المقالة، ستتعلم كيفية استخدام دفتر ملاحظات Zeppelin على نظام مجموعة HDInsight على AKS.

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

مجموعة Apache Spark على HDInsight على AKS. للحصول على إرشادات، راجع إنشاء مجموعة Apache Spark.

تشغيل دفتر ملاحظات Apache Zeppelin

  1. انتقل إلى صفحة نظرة عامة على مجموعة Apache Spark وحدد دفتر ملاحظات Zeppelin من لوحات معلومات نظام المجموعة. يطالب بمصادقة وفتح صفحة Zeppelin.

    لقطة شاشة لكيفية تحديد Zeppelin.

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

    لقطة شاشة لكيفية إنشاء دفتر ملاحظات zeppelin.

  3. تشغيل التعليمات البرمجية التالية في دفتر ملاحظات Zeppelin:

    %livy.pyspark
    import pandas as pd
    import matplotlib.pyplot as plt
    data1 = [22,40,10,50,70]
    s1 = pd.Series(data1)   #One-dimensional ndarray with axis labels (including time series).
    
    data2 = data1
    index = ['John','sam','anna','smith','ben']
    s2 = pd.Series(data2,index=index)
    
    data3 = {'John':22, 'sam':40, 'anna':10,'smith':50,'ben':70}
    s3 = pd.Series(data3)
    
    s3['jp'] = 32     #insert a new row
    
    s3['John'] = 88
    
    names = ['John','sam','anna','smith','ben']
    ages = [10,40,50,48,70]
    name_series = pd.Series(names)
    age_series = pd.Series(ages)
    
    data_dict = {'name':name_series, 'age':age_series}
    dframe = pd.DataFrame(data_dict)   #create a pandas DataFrame from dictionary
    
    dframe['age_plus_five'] = dframe['age'] + 5   #create a new column
    dframe.pop('age_plus_five')
    #dframe.pop('age')
    
    salary = [1000,6000,4000,8000,10000]
    salary_series = pd.Series(salary)
    new_data_dict = {'name':name_series, 'age':age_series,'salary':salary_series}
    new_dframe = pd.DataFrame(new_data_dict)
    new_dframe['average_salary'] = new_dframe['age']*90
    
    new_dframe.index = new_dframe['name']
    print(new_dframe.loc['sam'])
    
  4. حدد الزر تشغيل للفقرة لتشغيل القصاصة البرمجية. يجب أن تتقدم الحالة في الزاوية اليمنى من الفقرة من READY أو PENDING أو RUNNING إلى FINISHED. يظهر الناتج في أسفل نفس الفقرة. لقطة شاشة تبدو مثل الصورة التالية:

    لقطة شاشة لكيفية تشغيل دفتر ملاحظات Zeppelin.

    إخراج:

    لقطة شاشة لإخراج دفتر ملاحظات Zeppelin.

استخدام مهام إرسال Spark

  1. إنشاء ملف باستخدام الأمر التالي "#vim samplefile.py"

  2. يفتح هذا الأمر ملف vim

  3. الصق التعليمات البرمجية التالية في ملف vim

    import pandas as pd
    import matplotlib.pyplot as plt
    
    From pyspark.sql import SparkSession
    Spark = SparkSession.builder.master('yarn').appName('SparkSampleCode').getOrCreate()
    # Initialize spark context
    data1 = [22,40,10,50,70]
    s1 = pd.Series(data1)   #One-dimensional ndarray with axis labels (including time series).
    
    data2 = data1
    index = ['John','sam','anna','smith','ben']
    s2 = pd.Series(data2,index=index)
    
    data3 = {'John':22, 'sam':40, 'anna':10,'smith':50,'ben':70}
     s3 = pd.Series(data3)
    
    s3['jp'] = 32     #insert a new row
    
    s3['John'] = 88
    
    names = ['John','sam','anna','smith','ben']
    ages = [10,40,50,48,70]
    name_series = pd.Series(names)
    age_series = pd.Series(ages)
    
    data_dict = {'name':name_series, 'age':age_series}
    dframe = pd.DataFrame(data_dict)   #create a pandas DataFrame from dictionary
    
    dframe['age_plus_five'] = dframe['age'] + 5   #create a new column
    dframe.pop('age_plus_five')
    #dframe.pop('age')
    
    salary = [1000,6000,4000,8000,10000]
    salary_series = pd.Series(salary)
    new_data_dict = {'name':name_series, 'age':age_series,'salary':salary_series}
    new_dframe = pd.DataFrame(new_data_dict)
    new_dframe['average_salary'] = new_dframe['age']*90
    
    new_dframe.index = new_dframe['name']
    print(new_dframe.loc['sam'])
    
  4. احفظ الملف باستخدام الأسلوب التالي.

    1. الضغط على الزر "إلغاء"
    2. أدخل الأمر :wq
  5. قم بتشغيل الأمر التالي لتشغيل المهمة.

    /spark-submit --master yarn --deploy-mode cluster <filepath>/samplefile.py

    لقطة شاشة توضح كيفية تشغيل مهمة إرسال Spark.

مراقبة الاستعلامات على مجموعة Apache Spark في HDInsight على AKS

واجهة مستخدم محفوظات Spark

  1. انقر فوق واجهة مستخدم Spark History Server من علامة تبويب النظرة العامة.

    لقطة شاشة تعرض واجهة مستخدم Spark.

  2. حدد التشغيل الأخير من واجهة المستخدم باستخدام معرف التطبيق نفسه.

    لقطة شاشة توضح كيفية تشغيل واجهة مستخدم Spark.

  3. عرض دورات Directed Acyclic Graph ومراحل المهمة في واجهة مستخدم خادم Spark History.

    لقطة شاشة لدورة DAG.

واجهة مستخدم جلسة Livy

  1. لفتح واجهة مستخدم جلسة Livy، اكتب الأمر التالي في المستعرض https://<CLUSTERNAME>.<CLUSTERPOOLNAME>.<REGION>.projecthilo.net/p/livy/ui

    لقطة شاشة لكيفية فتح واجهة مستخدم جلسة Livy.

  2. اعرض سجلات برنامج التشغيل بالنقر فوق خيار برنامج التشغيل ضمن السجلات.

Yarn UI

  1. من علامة التبويب نظرة عامة، انقر فوق Yarn وافتح Yarn UI.

    لقطة شاشة لكيفية تحديد Yarn UI.

  2. يمكنك تعقب الوظيفة التي قمت بتشغيلها مؤخرا بواسطة نفس معرف التطبيق.

  3. انقر فوق معرف التطبيق في Yarn لعرض سجلات مفصلة للوظيفة.

    عرض السجلات.

المرجع