أوقات تشغيل Azure Synapse
تستخدم تجمعات Apache Spark في Azure Synapse أوقات التشغيل لربط إصدارات المكونات الأساسية مثل تحسينات Azure Synapse والحزم والموصلات بإصدار Apache Spark محدد. تتم ترقية كل وقت تشغيل بشكل دوري لتضمين تحسينات وميزات وتصحيحات جديدة. عند إنشاء تجمع Apache Spark بلا خادم، حدد إصدار Apache Spark المقابل. بناء على ذلك، يأتي التجمع مثبتا مسبقا مع مكونات وقت التشغيل المقترنة والحزم.
تتمتع أوقات التشغيل بالمزايا التالية:
- أوقات بدء تشغيل جلسة عمل أسرع
- التوافق الذي تم اختباره مع إصدارات Apache Spark محددة
- الوصول إلى الموصلات الشائعة والمتوافقة والحزم مفتوحة المصدر
إصدارات وقت تشغيل Azure Synapse المدعومة
تلميح
نوصي بشدة بترقية أحمال العمل بشكل استباقي إلى إصدار GA أحدث من وقت التشغيل وهو وقت تشغيل Azure Synapse ل Apache Spark 3.4 (GA)). راجع دليل ترحيل Apache Spark.
يسرد الجدول التالي اسم وقت التشغيل وإصدار Apache Spark وتاريخ الإصدار لإصدارات وقت تشغيل Azure Synapse المدعومة.
اسم وقت التشغيل | تاريخ الإصدار | مرحلة الإصدار | تاريخ إعلان انتهاء الدعم | تاريخ انتهاء صلاحية الدعم |
---|---|---|---|---|
وقت تشغيل Azure Synapse ل Apache Spark 3.4 | 21 نوفمبر 2023 | GA (اعتبارا من 8 أبريل 2024) | الربع الثاني 2025 | الربع الأول 2026 |
وقت تشغيل Azure Synapse ل Apache Spark 3.3 | 17 نوفمبر 2022 | انتهاء الدعم المعلن | 12 يوليو 2024 | 3/31/2025 |
Azure Synapse Runtime لـ Apache Spark 3.2 | 8 يوليو 2022 | مهمل وتعطل قريبا | 8 يوليو 2023 | 8 يوليو 2024 |
Azure Synapse Runtime for Apache Spark 3.1 | 26 مايو 2021 | مهمل وتعطل قريبا | 26 يناير 2023 | 26 يناير 2024 |
Azure Synapse لـ for Apache Spark 2.4 | 15 ديسمبر 2020 | مهمل وتعطل قريبا | 29 يوليو 2022 | 29 سبتمبر 2023 |
مراحل إصدار وقت التشغيل
للحصول على وقت التشغيل الكامل لدورة حياة Apache Spark ونهج الدعم، راجع وقت تشغيل Synapse لدورة حياة Apache Spark وإمكانية الدعم.
تصحيح وقت التشغيل
يتم طرح أوقات تشغيل Azure Synapse لتصحيحات Apache Spark شهريا التي تحتوي على أخطاء وميزات وإصلاحات أمان لمحرك Apache Spark الأساسي وبيئات اللغة والموصلات والمكتبات.
إشعار
- سيتم تطبيق تحديثات الصيانة تلقائيًا على جلسات عمل جديدة لتجمع Apache Spark بلا خادم معين.
- يجب عليك اختبار والتحقق من أن التطبيقات تعمل بشكل صحيح عند استخدام إصدارات وقت التشغيل الجديدة.
هام
تصحيحات أمان Log4j 1.2.x
يحتوي الإصدار 1.2.x من مكتبة Log4j مفتوح المصدر على العديد من CVEs المعروفة (نقاط الضعف والتعرض الشائعة)، كما هو موضح هنا.
في جميع أوقات تشغيل تجمع Synapse Spark، قمنا بتصحيح Log4j 1.2.17 JARs للتخفيف من CVEs التالية: CVE-2019-1751، CVE-2020-9488، CVE-2021-4104، CVE-2022-23302، CVE-2022-2330، CVE-2022-23307
يعمل التصحيح المطبق عن طريق إزالة الملفات التالية المطلوبة لاستدعاء الثغرات الأمنية:
org/apache/log4j/net/SocketServer.class
org/apache/log4j/net/SMTPAppender.class
org/apache/log4j/net/JMSAppender.class
org/apache/log4j/net/JMSSink.class
org/apache/log4j/jdbc/JDBCAppender.class
org/apache/log4j/chainsaw/*
في حين لم يتم استخدام الفئات المذكورة أعلاه في تكوينات Log4j الافتراضية في Synapse، فمن الممكن أن لا يزال بعض تطبيق المستخدم يعتمد عليه. إذا كان التطبيق الخاص بك يحتاج إلى استخدام هذه الفئات، فاستخدم إدارة المكتبة لإضافة إصدار آمن من Log4j إلى Spark Pool. لا تستخدم Log4j الإصدار 1.2.17، لأنه سيعيد إدخال الثغرات الأمنية.
يختلف نهج التصحيح استنادًا إلى مرحلة دورة حياة وقت التشغيل:
وقت التشغيل المتوفر بشكل عام (GA): لا تتلقى أي ترقيات على الإصدارات الرئيسية (أي 3.x -> 4.x). وسيقوم بترقية إصدار ثانوي (أي 3.x -> 3.y) طالما لا توجد أي تأثيرات على الإهمال أو الانحدار.
معاينة وقت التشغيل: لا توجد ترقيات للإصدارات الرئيسية ما لم تكن ضرورية تمامًا. ستتم ترقية الإصدارات الثانوية (3.x -> 3.y) لإضافة أحدث الميزات إلى وقت التشغيل.
يتم تصحيح وقت تشغيل الدعم طويل المدى (LTS) بإصلاحات الأمان فقط.
لن يحتوي وقت التشغيل المعلن عن انتهاء الدعم على إصلاحات الأخطاء والميزات. يتم دعم إصلاحات الأمان استنادا إلى تقييم المخاطر.
الترحيل بين إصدارات Apache Spark - الدعم
يوفر هذا الدليل نهجا منظما للمستخدمين الذين يتطلعون إلى ترقية وقت تشغيل Azure Synapse لأحمال عمل Apache Spark من الإصدارات 2.4 أو 3.1 أو 3.2 أو 3.3 إلى أحدث إصدار GA، مثل 3.4. تتيح الترقية إلى أحدث إصدار للمستخدمين الاستفادة من تحسينات الأداء والميزات الجديدة وتدابير الأمان المحسنة. من المهم ملاحظة أن الانتقال إلى إصدار أعلى قد يتطلب تعديلات على التعليمات البرمجية الحالية ل Spark بسبب عدم التوافق أو الميزات المهملة.
الخطوة 1: التقييم والتخطيط
- تقييم التوافق: ابدأ بمراجعة أدلة ترحيل Apache Spark لتحديد أي عدم توافق محتمل وميزات مهملة وواجهات برمجة تطبيقات جديدة بين إصدار Spark الحالي (2.4 أو 3.1 أو 3.2 أو 3.3) والإصدار الهدف (على سبيل المثال، 3.4).
- تحليل قاعدة التعليمات البرمجية: فحص تعليمات Spark البرمجية بعناية لتحديد استخدام واجهات برمجة التطبيقات المهملة أو المعدلة. انتبه بشكل خاص لاستعلامات SQL والوظائف المعرفة من قبل المستخدم (UDFs)، والتي قد تتأثر بالترقية.
الخطوة 2: إنشاء تجمع Spark جديد للاختبار
- إنشاء تجمع جديد: في Azure Synapse، انتقل إلى قسم Spark pools وقم بإعداد تجمع Spark جديد. حدد إصدار Spark الهدف (على سبيل المثال، 3.4) وقم بتكوينه وفقا لمتطلبات الأداء الخاصة بك.
- تكوين Spark Pool Configuration: تأكد من تحديث جميع المكتبات والتبعيات في تجمع Spark الجديد أو استبدالها لتكون متوافقة مع Spark 3.4.
الخطوة 3: ترحيل التعليمات البرمجية واختبارها
- ترحيل التعليمات البرمجية: قم بتحديث التعليمات البرمجية لتكون متوافقة مع واجهات برمجة التطبيقات الجديدة أو المنقحة في Apache Spark 3.4. يتضمن ذلك معالجة الوظائف المهملة واعتماد ميزات جديدة كما هو مفصل في وثائق Apache Spark الرسمية.
- الاختبار في بيئة التطوير: اختبر التعليمات البرمجية المحدثة داخل بيئة تطوير في Azure Synapse، وليس محليا. هذه الخطوة ضرورية لتحديد أي مشكلات وإصلاحها قبل الانتقال إلى الإنتاج.
- النشر والمراقبة: بعد الاختبار الشامل والتحقق من الصحة في بيئة التطوير، انشر التطبيق الخاص بك إلى تجمع Spark 3.4 الجديد. من الضروري مراقبة التطبيق لأي سلوكيات غير متوقعة. استخدم أدوات المراقبة المتوفرة في Azure Synapse لتتبع أداء تطبيقات Spark.
سؤال: ما هي الخطوات التي يجب اتخاذها في الترحيل من 2.4 إلى 3.X؟
الإجابة: راجع دليل ترحيل Apache Spark.
السؤال: تلقيت خطأ عندما حاولت ترقية وقت تشغيل تجمع Spark باستخدام PowerShell cmdlet عندما يكون لديهم مكتبات مرفقة.
الإجابة: لا تستخدم PowerShell cmdlet إذا كان لديك مكتبات مخصصة مثبتة في مساحة عمل Synapse. بدلا من ذلك، اتبع الخطوات التالية:
- أعد إنشاء Spark Pool 3.3 من الألف إلى الياء.
- تخفيض إصدار Spark Pool 3.3 الحالي إلى 3.1، وإزالة أي حزم مرفقة، ثم الترقية مرة أخرى إلى 3.3.
سؤال: لماذا لا يمكنني الترقية إلى 3.4 دون إعادة إنشاء تجمع Spark جديد؟
الجواب: هذا غير مسموح به من UX، يمكن للعميل استخدام Azure PowerShell لتحديث إصدار Spark. يرجى استخدام "ForceApplySetting"، بحيث يتم إيقاف تشغيل أي مجموعات موجودة (مع إصدار قديم).
نموذج استعلام:
$_target_work_space = @("workspace1", "workspace2")
Get-AzSynapseWorkspace |
ForEach-Object {
if ($_target_work_space -contains $_.Name) {
$_workspace_name = $_.Name
Write-Host "Updating workspace: $($_workspace_name)"
Get-AzSynapseSparkPool -WorkspaceName $_workspace_name |
ForEach-Object {
Write-Host "Updating Spark pool: $($_.Name)"
Write-Host "Current Spark version: $($_.SparkVersion)"
Update-AzSynapseSparkPool -WorkspaceName $_workspace_name -Name $_.Name -SparkVersion 3.4 -ForceApplySetting
}
}
}