إدارة مكتبات تجمعات Apache Spark في Azure Synapse Analytics

بمجرد تحديد حزم Scala أو Java أو R (معاينة) أو Python التي ترغب في استخدامها أو تحديثها لتطبيق Spark الخاص بك، يمكنك تثبيتها أو إزالتها في تجمع Spark. تتوفر المكتبات على مستوى التجمع لجميع دفاتر الملاحظات والمهام التي تعمل على التجمع.

هناك طريقتان أساسيتان لتثبيت مكتبة على تجمع Spark:

  • تثبيت مكتبة مساحة عمل تم تحميلها كحزمة مساحة عمل.
  • لتحديث مكتبات Python، قم بتوفير مواصفات بيئة requirements.txt أو Conda environment.yml لتثبيت الحزم من مستودعات مثل PyPI وConda-Forge وغيرها الكثير. لمزيد من المعلومات، اقرأ القسم الذي يتحدث عن مواصفات البيئة.

بعد حفظ التغييرات، ستقوم مهمة Spark بتشغيل التثبيت وتخزين البيئة الناتجة مؤقتاً لإعادة استخدامها لاحقاً. بمجرد اكتمال المهمة، ستستخدم مهام Spark الجديدة أو جلسات عمل دفتر الملاحظات مكتبات التجمع المحدثة.

هام

  • إذا كانت الحزمة التي تقوم بتثبيتها كبيرة أو تستغرق وقتًا طويلاً لتثبيتها، فهذا يؤثر على وقت بدء تشغيل مثيل Spark.
  • تغيير إصدار PySpark أو Python أو Scala/Java أو .NET أو R أو Spark غير مدعوم.
  • تثبيت الحزم من المستودعات الخارجية مثل PyPI أو Conda-Forge أو قنوات Conda الافتراضية غير مدعوم داخل مساحات العمل الممكنة لحماية النقل غير المصرّح للبيانات.

إدارة الحزم من Synapse Studio أو مدخل Microsoft Azure

يمكن إدارة مكتبات تجمع Spark إما من Synapse Studio أو مدخل Microsoft Azure.

لتحديث مكتبات أو إضافتها إلى تجمع Spark:

  1. انتقل إلى مساحة عمل Azure Synapse Analytics من مدخل Azure.

    إذا كنت تقوم بتحديث من مدخل Microsoft Azure:

    • ضمن قسم موارد Synapse، حدد علامة التبويب تجمعات Apache Spark وحدد تجمع Spark من القائمة.

    • حدد الحزم من قسم الإعدادات في تجمع Spark. توضح لقطة الشاشة زر ملف تكوين بيئة التحميل.

    إذا كنت تقوم بالتحديث من Synapse Studio:

    • حدد إدارة من لوحة التنقل الرئيسية ثم حدد تجمعات Apache Spark.

    • حدد قسم Packages لتجمع Spark معين. توضح لقطة الشاشة سجلات تثبيت المكتبة.

  2. بالنسبة لمكتبات موجز Python، قم بتحميل ملف تكوين البيئة باستخدام محدد الملفات في قسم الحزم في الصفحة.

  3. يمكنك أيضا تحديد حزم مساحة عمل إضافية لإضافة ملفات Jar أو Wheel أو Tar.gz إلى التجمع الخاص بك.

  4. يمكنك أيضاً إزالة الحزم المهملة من قسم حزم مساحة العمل، ولن يقوم التجمع الخاص بك بإرفاق هذه الحزم بعد الآن.

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

  6. بمجرد اكتمال المهمة بنجاح، ستلتقط جميع الجلسات الجديدة مكتبات التجمع المحدثة.

هام

بتحديد خيار فرض إعدادات جديدة، ستقوم بإنهاء جميع الجلسات الحالية لتجمع Spark المحدد. بمجرد انتهاء جلسات العمل، سيتعين عليك انتظار إعادة تشغيل التجمع.

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

تتبع تقدم التثبيت

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

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

لعرض هذه السجلات:

  1. انتقل إلى قائمة تطبيقات Spark في علامة التبويب مراقبة.
  2. حدد مهمة تطبيق Spark للنظام التي تتوافق مع تحديث التجمع الخاص بك. تعمل مهام النظام هذه ضمن عنوان SystemReservedJob-LibraryManagement. توضح لقطة الشاشة مهمة المكتبة المحجوزة للنظام.
  3. قم بالتبديل لعرض برنامج تشغيل الجهاز وstdout.
  4. ضمن النتائج، سترى السجلات المتعلقة بتثبيت التبعيات الخاصة بك. توضح لقطة الشاشة نتائج مهمة المكتبة المحجوزة للنظام.

تنسيقات مواصفات البيئة

PIP requirements.txt

يمكن استخدام ملف requirements.txt (إخراج من الأمر pip freeze) لترقية البيئة. عند تحديث تجمع، يتم تنزيل الحزم المدرجة في هذا الملف من PyPI. ثم يتم تخزين التبعيات الكاملة مؤقتًا وحفظها لإعادة استخدام التجمع لاحقًا.

تعرض القصاصة البرمجية التالية تنسيق ملف المتطلبات. يتم سرد اسم حزمة PyPI مع إصدار دقيق. يتبع هذا الملف التنسيق الموضح في الوثائق المرجعية لتجميد pip.

يقوم هذا المثال بتثبيت إصدار معين.

absl-py==0.7.0
adal==1.2.1
alabaster==0.7.10

تنسيق YML

بالإضافة إلى ذلك، يمكنك أيضًا توفير ملف environment.yml لتحديث بيئة التجمع. يتم تنزيل الحزم المدرجة في هذا الملف من قنوات Conda الافتراضية وConda-Forge وPyPI. يمكنك تحديد قنوات أخرى أو إزالة القنوات الافتراضية باستخدام خيارات التكوين.

يحدد هذا المثال القنوات وتبعيات Conda/PyPI.

name: stats2
channels:
- defaults
dependencies:
- bokeh
- numpy
- pip:
  - matplotlib
  - koalas==1.7.0

للحصول على تفاصيل حول إنشاء بيئة من ملف environment.yml هذا، راجع إنشاء بيئة من ملف environment.yml.

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