إرسال المهام وإدارتها على مجموعة 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
انتقل إلى صفحة مجموعة Apache Spark™ وافتح علامة التبويب نظرة عامة . انقر فوق Jupyter، ويطلب منك مصادقة صفحة ويب Jupyter وفتحها.
من صفحة ويب Jupyter، حدد New > PySpark لإنشاء دفتر ملاحظات.
تم إنشاء دفتر ملاحظات جديد وفتح بالاسم
Untitled(Untitled.ipynb)
.إشعار
باستخدام PySpark أو نواة Python 3 لإنشاء دفتر ملاحظات، يتم إنشاء جلسة spark تلقائيا لك عند تشغيل خلية التعليمات البرمجية الأولى. ولن تكون بحاجة صراحة إلى إنشاء الجلسة.
قم بلصق التعليمة البرمجية التالية في خلية فارغة من Jupyter Notebook، ثم اضغط على SHIFT + ENTER لتشغيل التعليمات البرمجية. انظر هنا لمزيد من عناصر التحكم على Jupyter.
%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'])
رسم رسم بياني بالراتب والعمر كمحورين X وY
في دفتر الملاحظات نفسه، الصق التعليمات البرمجية التالية في خلية فارغة من Jupyter Notebook، ثم اضغط على SHIFT + ENTER لتشغيل التعليمات البرمجية.
%matplotlib inline import pandas as pd import matplotlib.pyplot as plt plt.plot(age_series,salary_series) plt.show()
حفظ دفتر الملاحظات
من شريط قوائم دفتر الملاحظات، انتقل إلى حفظ الملف > ونقطة التحقق.
إيقاف تشغيل دفتر الملاحظات لتحرير موارد نظام المجموعة: من شريط قوائم دفتر الملاحظات، انتقل إلى إغلاق الملف > وإيقافه. يمكنك أيضا تشغيل أي من دفاتر الملاحظات ضمن مجلد الأمثلة.
استخدام دفاتر ملاحظات Apache Zeppelin
تتضمن مجموعات Apache Spark في HDInsight على AKS دفاتر ملاحظات Apache Zeppelin. استخدم دفاتر الملاحظات لتشغيل وظائف Apache Spark. في هذه المقالة، ستتعلم كيفية استخدام دفتر ملاحظات Zeppelin على نظام مجموعة HDInsight على AKS.
المتطلبات الأساسية
مجموعة Apache Spark على HDInsight على AKS. للحصول على إرشادات، راجع إنشاء مجموعة Apache Spark.
تشغيل دفتر ملاحظات Apache Zeppelin
انتقل إلى صفحة نظرة عامة على مجموعة Apache Spark وحدد دفتر ملاحظات Zeppelin من لوحات معلومات نظام المجموعة. يطالب بمصادقة وفتح صفحة Zeppelin.
قم بإنشاء دفتر ملاحظات جديد. من جزء الرأس، انتقل إلى دفتر الملاحظات > إنشاء ملاحظة جديدة. تأكد من أن رأس دفتر الملاحظات يظهر حالة متصلة. يشير إلى نقطة خضراء في الزاوية العلوية اليسرى.
تشغيل التعليمات البرمجية التالية في دفتر ملاحظات 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'])
حدد الزر تشغيل للفقرة لتشغيل القصاصة البرمجية. يجب أن تتقدم الحالة في الزاوية اليمنى من الفقرة من READY أو PENDING أو RUNNING إلى FINISHED. يظهر الناتج في أسفل نفس الفقرة. لقطة شاشة تبدو مثل الصورة التالية:
إخراج:
استخدام مهام إرسال Spark
إنشاء ملف باستخدام الأمر التالي "#vim samplefile.py"
يفتح هذا الأمر ملف vim
الصق التعليمات البرمجية التالية في ملف 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'])
احفظ الملف باستخدام الأسلوب التالي.
- الضغط على الزر "إلغاء"
- أدخل الأمر
:wq
قم بتشغيل الأمر التالي لتشغيل المهمة.
/spark-submit --master yarn --deploy-mode cluster <filepath>/samplefile.py
مراقبة الاستعلامات على مجموعة Apache Spark في HDInsight على AKS
واجهة مستخدم محفوظات Spark
انقر فوق واجهة مستخدم Spark History Server من علامة تبويب النظرة العامة.
حدد التشغيل الأخير من واجهة المستخدم باستخدام معرف التطبيق نفسه.
عرض دورات Directed Acyclic Graph ومراحل المهمة في واجهة مستخدم خادم Spark History.
واجهة مستخدم جلسة Livy
لفتح واجهة مستخدم جلسة Livy، اكتب الأمر التالي في المستعرض
https://<CLUSTERNAME>.<CLUSTERPOOLNAME>.<REGION>.projecthilo.net/p/livy/ui
اعرض سجلات برنامج التشغيل بالنقر فوق خيار برنامج التشغيل ضمن السجلات.
Yarn UI
من علامة التبويب نظرة عامة، انقر فوق Yarn وافتح Yarn UI.
يمكنك تعقب الوظيفة التي قمت بتشغيلها مؤخرا بواسطة نفس معرف التطبيق.
انقر فوق معرف التطبيق في Yarn لعرض سجلات مفصلة للوظيفة.
المرجع
- Apache وApache Spark وSpark وأسماء مشاريع مصدر مفتوح المرتبطة بها هي علامات تجارية ل Apache Software Foundation (ASF).