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

توفر المكتبات تعليمات برمجية قابلة لإعادة الاستخدام قد ترغب في تضمينها في برامجك أو مشاريعك ل Apache Spark في Azure Synapse Analytics (Azure Synapse Spark).

قد تحتاج إلى تحديث بيئة تجمع Apache Spark بلا خادم لأسباب مختلفة. على سبيل المثال، قد تجد أن:

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

لإتاحة التعليمات البرمجية التابعة لجهة خارجية أو محلية لتطبيقاتك، قم بتثبيت مكتبة على أحد تجمعات Apache Spark بلا خادم أو جلسة عمل دفتر ملاحظات.

نظرة عامة على مستويات الحزمة

هناك ثلاثة مستويات من الحزم المثبتة على Azure Synapse Analytics:

  • الافتراضي: تتضمن الحزم الافتراضية تثبيت Anaconda كامل، بالإضافة إلى مكتبات إضافية شائعة الاستخدام. للحصول على قائمة كاملة بالمكتبات، راجع دعم إصدار Apache Spark.

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

  • تجمع Spark: يمكن لجميع البيانات الاصطناعية قيد التشغيل استخدام الحزم على مستوى تجمع Spark. على سبيل المثال، يمكنك إرفاق تعريفات مهمة دفتر الملاحظات وSpark بتجمعات Spark المقابلة.

    يمكنك تحميل مكتبات مخصصة وإصدار معين من مكتبة مفتوحة المصدر تريد استخدامها في مساحة عمل Azure Synapse Analytics. يمكن تثبيت حزم مساحة العمل في مجموعات Spark.

  • جلسة العمل: ينشئ التثبيت على مستوى جلسة العمل بيئة لجلسة دفتر ملاحظات معينة. لا يستمر تغيير المكتبات على مستوى جلسة العمل بين جلسات العمل.

إشعار

  • يمكن أن تستغرق إدارة المكتبة على مستوى التجمع وقتا، اعتمادا على حجم الحزم وتعقيد التبعيات المطلوبة، يتم تعيين الحد الأقصى لوقت التحديث على أنه 50 دقيقة. سيتم إلغاء مهمة إدارة المكتبة على مستوى التجمع تلقائيا إذا تجاوزت الحد الأعلى وهو 50 دقيقة. نوصي بالتثبيت على مستوى الجلسة للسيناريوهات التجريبية والتكريبية السريعة.
  • ستنتج إدارة المكتبة على مستوى التجمع تبعية مستقرة لتشغيل دفاتر الملاحظات وتعريفات مهام Spark. يوصى بشدة بتثبيت المكتبة إلى تجمع Spark لتشغيل البنية الأساسية لبرنامج ربط العمليات التجارية.
  • يمكن أن تساعدك إدارة المكتبة على مستوى الجلسة في التكرار السريع أو التعامل مع التغييرات المتكررة في المكتبة. ومع ذلك، لا يعد استقرار تثبيت مستوى الجلسة. أيضا، يتم تعطيل الأوامر الواردة مثل ٪pip و٪conda في تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية. يوصى بإدارة المكتبة في جلسة عمل دفتر الملاحظات أثناء مرحلة التطوير.

إدارة حزم مساحة العمل

عندما يقوم فريقك بتطوير تطبيقات أو نماذج مخصصة، يمكنك تطوير العديد من أدوات التعليمات البرمجية مثل .whl أو .jar أو ملفات .tar.gz لحزم التعليمات البرمجية الخاصة بك.

هام

  • يتم دعم tar.gz للغة R فقط. يرجى استخدام .whl كحزمة مخصصة ل Python.

في Azure Synapse، يمكن أن تكون حزم مساحة العمل ملفات مخصصة أو خاصة .whl أو .jar . يمكنك تحميل هذه الحزم إلى مساحة العمل الخاصة بك وتعيينها لاحقًا إلى مجموعة Apache Spark بلا خادم معينة. بعد تعيين حزم مساحة العمل هذه، يتم تثبيتها تلقائيا على جميع جلسات عمل تجمع Spark.

لمعرفة المزيد حول كيفية إدارة مكتبات مساحة العمل، راجع إدارة حزم مساحة العمل.

إدارة حزم التجمع

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

باستخدام قدرات إدارة التجمع ل Azure Synapse Analytics، يمكنك تكوين المجموعة الافتراضية من المكتبات لتثبيتها على تجمع Apache Spark بلا خادم. يتم تثبيت هذه المكتبات أعلى وقت التشغيل الأساسي.

بالنسبة لمكتبات Python، تستخدم تجمعات Azure Synapse Spark Conda لتثبيت تبعيات حزمة Python وإدارتها. يمكنك تحديد مكتبات Python على مستوى التجمع عن طريق توفير ملف requirements.txt أو environment.yml . يتم استخدام ملف تكوين البيئة هذا في كل مرة يتم فيها إنشاء مثيل Spark من مجموعة Spark هذه. يمكنك أيضا إرفاق حزم مساحة العمل بتجمعاتك.

لمعرفة المزيد حول هذه الإمكانات، راجع إدارة حزم مجموعة Spark.

هام

  • إذا كانت الحزمة التي تقوم بتثبيتها كبيرة أو تستغرق وقتا طويلا لتثبيتها، فقد تؤثر على وقت بدء تشغيل مثيل Spark.
  • تغيير إصدار PySpark أو Python أو Scala/Java أو ‎.NET أو Spark غير مدعوم.

إدارة التبعيات لتجمعات Azure Synapse Spark التي تدعم DEP

إشعار

تثبيت الحزم من مستودع عام غير مدعوم داخل مساحات العمل التي تدعم DEP. بدلا من ذلك، قم بتحميل جميع التبعيات الخاصة بك كمكتبات مساحة عمل وتثبيتها في تجمع Spark.

إذا كنت تواجه مشكلة في تحديد التبعيات المطلوبة، فاتبع الخطوات التالية:

  1. قم بتشغيل البرنامج النصي التالي لإعداد بيئة Python محلية مماثلة لبيئة Azure Synapse Spark. يتطلب هذا البرنامج النصي ملف YAML يحتوي على قائمة بجميع المكتبات المضمنة في بيئة Python الافتراضية ل Azure Synapse Spark. يمكنك العثور على ملف YAML هذا في الوثائق لإصدارات معينة من وقت التشغيل، مثل Apache Spark 3.2 (تم الإعلان عن انتهاء الدعم) وApache Spark 3.3 (GA).

       # One-time Azure Synapse Python setup
       wget Synapse-Python38-CPU.yml
       sudo bash Miniforge3-Linux-x86_64.sh -b -p /usr/lib/miniforge3
       export PATH="/usr/lib/miniforge3/bin:$PATH"
       sudo apt-get -yq install gcc g++
       conda env create -n synapse-env -f Synapse-Python38-CPU.yml 
       source activate synapse-env
    
  2. قم بتشغيل البرنامج النصي التالي لتحديد التبعيات المطلوبة. يمكن استخدام البرنامج النصي لتمرير ملف requirements.txt الخاص بك، والذي يحتوي على جميع الحزم والإصدارات التي تنوي تثبيتها في تجمع Spark 3.1 أو Spark 3.2. سيقوم بطباعة أسماء ملفات/تبعيات العجلة الجديدة لمتطلبات مكتبة الإدخال الخاصة بك.

       # Command to list wheels needed for your input libraries.
       # This command will list only new dependencies that are
       # not already part of the built-in Azure Synapse environment.
       pip install -r <input-user-req.txt> > pip_output.txt
       cat pip_output.txt | grep "Using cached *"
    

    إشعار

    سيسرد هذا البرنامج النصي فقط التبعيات غير الموجودة بالفعل في تجمع Spark بشكل افتراضي.

إدارة الحزم على نطاق الجلسة

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

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

لمعرفة المزيد حول كيفية إدارة الحزم ذات نطاق الجلسة، راجع المقالات التالية:

  • حزم جلسة عمل Python: في بداية جلسة العمل، قم بتوفير ملف Conda environment.yml لتثبيت المزيد من حزم Python من المستودعات الشائعة. أو يمكنك استخدام %pip%conda وأوامر لإدارة المكتبات في خلايا التعليمات البرمجية لدفتر الملاحظات.

    هام

    لا تستخدم%%sh لمحاولة تثبيت المكتبات باستخدام pip أو conda. السلوك ليس هو نفسه ٪pip أو ٪conda.

  • حزم جلسة Scala/Java: في بداية جلسة العمل الخاصة بك، قم بتوفير قائمة بملفات .jar لتثبيتها باستخدام %%configure.

  • حزم جلسة عمل R: ضمن جلسة العمل الخاصة بك، يمكنك تثبيت الحزم عبر جميع العقد داخل تجمع Spark الخاص بك باستخدام install.packages أو devtools.

أتمتة عملية إدارة المكتبة من خلال Azure PowerShell cmdlets وواجهات برمجة تطبيقات REST

إذا كان فريقك يريد إدارة المكتبات دون زيارة واجهات برمجة تطبيقات إدارة الحزمة، فلديك خيار إدارة حزم مساحة العمل وتحديثات الحزمة على مستوى التجمع من خلال أوامر cmdlets Azure PowerShell أو واجهات برمجة تطبيقات REST ل Azure Synapse Analytics.

لمزيد من المعلومات، راجع المقالات التالية:

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