مقياس مجموعات Azure HDInsight تلقائياً

يمكن لميزة التحجيم التلقائي المجانية في Azure HDInsight زيادة أو تقليل عدد العقد العاملة في مجموعتك تلقائيًا استنادًا إلى مقاييس نظام المجموعة ونهج التحجيم التي يعتمدها العملاء. تعمل ميزة Autoscale عن طريق قياس عدد العقد ضمن حدود معدة مسبقًا بناءً على قياسات الأداء أو جدول محدد لعمليات توسيع النطاق وتقليصه

كيف تعمل هذه الميزة

تستخدم ميزة Autoscale نوعين من الشروط لتشغيل أحداث القياس: الحدود الدنيا لقياسات أداء المجموعة المتنوعة (تسمى التحجيم القائم على الحمل) والمشغلات المستندة إلى الوقت (تسمى القياس المستند إلى الجدول الزمني). يغير القياس على أساس الحمل عدد العقد في مجموعتك، ضمن النطاق الذي تحدده، لضمان الاستخدام الأمثل لوحدة المعالجة المركزية وتقليل تكلفة التشغيل. يغير القياس المستند إلى الجدول الزمني عدد العقد في مجموعتك استناداً إلى جدول عمليات توسيع النطاق وتقليصه.

يوفر الفيديو التالي نظرة عامة على التحديات، التي يحلها التحجيم التلقائي وكيف يمكن أن يساعدك في التحكم في التكاليف باستخدام HDInsight.

اختيار القياس على أساس الحمل أو الجدول الزمني

يمكن استخدام التحجيم المستند إلى الجدول الزمني:

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

يمكن استخدام التحجيم المستند إلى التحميل:

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

قياسات نظام المجموعة

يراقب Autoscale نظام المجموعة باستمرار ويجمع القياسات التالية:

مقياس ‏‏الوصف
إجمالي وحدة المعالجة المركزية المعلقة إجمالي عدد الأنوية المطلوب لبدء تنفيذ جميع الحاويات المعلقة.
إجمالي الذاكرة المعلقة إجمالي الذاكرة (بالميغابايت) المطلوبة لبدء تنفيذ جميع الحاويات المعلقة.
إجمالي وحدة المعالجة المركزية الخالية مجموع كل الأنوية غير المستخدمة في العقد العاملة النشطة.
إجمالي الذاكرة الخالية مجموع الذاكرة غير المستخدمة (بالميغابايت) على العقد العاملة النشطة.
الذاكرة المستخدمة لكل عقدة الحمل على عقدة العامل. تعتبر العقدة العاملة التي يتم استخدام 10 غيغابايت من الذاكرة عليها تحت حمل أكبر من العامل الذي يمتلك 2 غيغابايت من الذاكرة المستخدمة.
عدد التطبيقات الرئيسية لكل عقدة عدد حاويات التطبيق الرئيسي (AM) التي تعمل على عقدة عاملة. تعتبر العقدة العاملة التي تستضيف حاويتين من النوع AM أكثر أهمية من العقدة العاملة التي تستضيف حاويات صفرية AM.

يتم فحص القياسات أعلاه كل 60 ثانية. يتخذ Autoscale قرارات للتوسيع والتصغير بناءً على هذه القياسات.

شروط المقياس على أساس الحمل

عند الكشف عن الشروط التالية، يصدر التحجيم التلقائي طلب مقياس:

تكبير الحجم تصغير الحجم
إجمالي وحدة CPU المعلقة أكبر من إجمالي وحدة CPU المجانية لأكثر من 3-5 دقائق. إجمالي وحدة المعالجة المركزية المعلقة أقل من إجمالي وحدة المعالجة المركزية المجانية لأكثر من 3-5 دقائق.
إجمالي الذاكرة المعلقة أكبر من إجمالي الذاكرة الفارغة لأكثر من 3-5 دقائق. إجمالي الذاكرة المعلقة أقل من إجمالي الذاكرة الحرة لأكثر من 3-5 دقائق.

للتوسيع، يصدر Autoscale طلب توسيع لإضافة العدد المطلوب من العقد. يعتمد توسيع النطاق على عدد عقد العمال الجديدة اللازمة لتلبية متطلبات وحدة المعالجة المركزية والذاكرة الحالية.

للتحجيم، يصدر التحجيم التلقائي طلبا لإزالة بعض العقد. يعتمد الحجم على عدد حاويات Application Master (AM) لكل عقدة. ومتطلبات وحدة المعالجة المركزية والذاكرة الحالية. تكتشف الخدمة أيضاً العقد عامل التصفية للإزالة بناءً على تنفيذ الوظيفة الحالية. تعطل عملية التحجيم التلقائي نقصانًا العقد أولاً ثم تزيلها من المجموعة.

اعتبارات تغيير حجم Ambari DB للتحجيم التلقائي

يوصى بتحجيم Ambari DB بشكل صحيح لجني فوائد التحجيم التلقائي. يجب على العملاء استخدام طبقة DB الصحيحة واستخدام قاعدة بيانات Ambari المخصصة لمجموعات كبيرة الحجم. يرجى قراءة توصيات تغيير حجم قاعدة البيانات و Headnode.

توافق نظام المجموعة

هام

تم إصدار ميزة Azure HDInsight Autoscale للتوافر العام في 7 نوفمبر 2019 لمجموعات Spark وHadoop وتضمنت تحسينات غير متوفرة في إصدار معاينة الميزة. إذا قمت بإنشاء مجموعة Spark قبل 7 نوفمبر 2019 وترغب في استخدام ميزة Autoscale في المجموعة الخاصة بك، فإن المسار الموصى به هو إنشاء مجموعة جديدة، وتمكين Autoscale في المجموعة الجديدة.

تم إصدار Autoscale for Interactive Query (LLAP) للتوافر العام لـ HDI 4.0 في 27 أغسطس 2020. يتوفر التحجيم التلقائي فقط في نظم مجموعات Spark وHadoop وInteractive Query

يصف الجدول التالي أنواع المجموعات والإصدارات المتوافقة مع ميزة Autoscale.

إصدار Spark Hive استعلام تفاعلي HBase Kafka
HDInsight 4.0 دون ESP ‏‏نعم‬ ‏‏نعم‬ ‏‏نعم‬* لا لا
HDInsight 4.0 مع برنامج ESP ‏‏نعم‬ ‏‏نعم‬ ‏‏نعم‬* لا لا
HDInsight 5.0 بدون ESP ‏‏نعم‬ ‏‏نعم‬ ‏‏نعم‬* لا لا
HDInsight 5.0 مع ESP ‏‏نعم‬ ‏‏نعم‬ ‏‏نعم‬* لا لا

* لا يمكن تكوين نظام مجموعة Interactive Query إلا للتحجيم المستند إلى الجدول الزمني، وليس على أساس التحميل.

الشروع في العمل

قم بإنشاء مجموعة مع قياس تلقائي قائم على الحمل

لتمكين ميزة Autoscale مع القياس المستند إلى الحمل، أكمل الخطوات التالية كجزء من عملية إنشاء نظام المجموعة العادية:

  1. في علامة التبويب Configuration + pricing، حدد مربع الاختيار Enableautoscale.

  2. حدد Load-based ضمن Autoscale type.

  3. أدخل القيم المقصودة للخصائص التالية:

    • العدد الأولي للعقد لـ عقدة العامل.
    • الحد الأدنى لعدد العقد العاملة.
    • الحد الأقصى لعدد العقد العاملة.

    Enable worker node load-based autoscale.

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

قم بإنشاء مجموعة مع قياس تلقائي قائم على الجدول الزمني

لتمكين ميزة Autoscale مع القياس المستند إلى الجدول الزمني، أكمل الخطوات التالية كجزء من عملية إنشاء نظام المجموعة العادية:

  1. في علامة التبويب Configuration + pricing، حدد مربع الاختيار Enableautoscale.

  2. أدخل Number of nodes لـ Workernode، والتي تتحكم في الحد الأقصى لتوسيع المجموعة.

  3. حدد الخيار Schedule-based ضمن Autoscale type.

  4. حدد Configure لفتح نافذة Autoscale configuration.

  5. حدد منطقتك الزمنية، ثم انقر على + إضافة شرط

  6. حدد أيام الأسبوع التي يجب أن تنطبق عليها الحالة الجديدة.

  7. قم بتحرير الوقت الذي يجب أن يسري فيه الشرط وعدد العقد التي يجب تغيير حجم نظام المجموعة إليها.

  8. أضف المزيد من الشروط إذا لزم الأمر.

    Enable worker node schedule-based creation.

يجب أن يكون عدد العقد بين 3 والحد الأقصى لعدد العقد العاملة التي أدخلتها قبل إضافة الشروط.

خطوات الإنشاء النهائية

حدد نوع VM للعقد العاملة عن طريق تحديد VM من القائمة المنسدلة ضمن Node size. بعد اختيار نوع VM لكل نوع عقدة، يمكنك رؤية نطاق التكلفة المقدّر للمجموعة بأكملها. اضبط أنواع VM لتناسب ميزانيتك.

Enable worker node schedule-based autoscale node size.

اشتراكك له حصة سعة لكل منطقة. لا يمكن أن يتجاوز إجمالي عدد الأنوية لعقد الرأس والعقد القصوى للعمال حصة السعة. ومع ذلك، تعتبر هذه الحصة حداً ضعيفاً؛ يمكنك دائماً إنشاء بطاقة دعم لزيادة حجمها بسهولة.

إشعار

إذا تجاوزت الحد الإجمالي للحصة الأساسية، فستتلقى رسالة خطأ مفادها "تجاوز الحد الأقصى للعقدة الأنوية المتوفرة في هذه المنطقة، يرجى اختيار منطقة أخرى أو الاتصال بالدعم لزيادة الحصة."

لمزيد من المعلومات حول إنشاء مجموعة HDInsight باستخدام مدخل Microsoft Azure، راجع إنشاء مجموعات مستندة إلى Linux في HDInsight باستخدام مدخل Microsoft Azure.

قم بإنشاء كتلة باستخدام قالب Resource Manager

قياس تلقائي قائم على الحمل

يمكنك إنشاء مجموعة HDInsight مع التحجيم التلقائي المستند إلى التحميل لقالب Azure Resource Manager، عن طريق إضافة عقدة autoscale إلى computeProfileworkernode>القسم مع الخصائص minInstanceCount وكما maxInstanceCount هو موضح في قصاصة json البرمجية. للحصول على قالب Resource Manager كامل، راجع قالب التشغيل السريع: نشر نظام مجموعة Spark مع تمكين التحجيم التلقائي المستند إلى التحميل.

{
  "name": "workernode",
  "targetInstanceCount": 4,
  "autoscale": {
      "capacity": {
          "minInstanceCount": 3,
          "maxInstanceCount": 10
      }
  },
  "hardwareProfile": {
      "vmSize": "Standard_D13_V2"
  },
  "osProfile": {
      "linuxOperatingSystemProfile": {
          "username": "[parameters('sshUserName')]",
          "password": "[parameters('sshPassword')]"
      }
  },
  "virtualNetworkProfile": null,
  "scriptActions": []
}

القياس التلقائي على أساس الجدول الزمني

يمكنك إنشاء مجموعة HDInsight باستخدام مقياس تلقائي قائم على الجدول الزمني لقالب Azure Resource Manager، عن طريق إضافة autoscale عقدة إلى قسم computeProfile>workernode. autoscale تحتوي العقدة recurrence على الذي يحتوي على timezone و schedule الذي يصف عند حدوث التغيير. للحصول على قالب Azure Resource Manager الكامل، راجع توزيع مجموعة Spark مع تمكين مقياس تلقائي قائم على الجدول الزمني.

{
  "autoscale": {
    "recurrence": {
      "timeZone": "Pacific Standard Time",
      "schedule": [
        {
          "days": [
            "Monday",
            "Tuesday",
            "Wednesday",
            "Thursday",
            "Friday"
          ],
          "timeAndCapacity": {
            "time": "11:00",
            "minInstanceCount": 10,
            "maxInstanceCount": 10
          }
        }
      ]
    }
  },
  "name": "workernode",
  "targetInstanceCount": 4
}

تمكين وتعطيل Autoscale لمجموعة قيد التشغيل

استخدام مدخل Microsoft Azure

لتمكين مقياس تلقائي على مجموعة قيد التشغيل، حدد Cluster size ضمن Settings. ثم حدد Enable autoscale. حدد نوع Autoscale الذي تريده وأدخل خيارات القياس المستند إلى التحميل أو الجدول الزمني. أخيراً، حدد Save.

Enable worker node schedule-based autoscale running cluster.

باستخدام واجهة برمجة تطبيقات REST

لتمكين أو تعطيل Autoscale على مجموعة قيد التشغيل باستخدام REST API، قم بتقديم طلب POST إلى نقطة نهاية Autoscale:

https://management.azure.com/subscriptions/{subscription Id}/resourceGroups/{resourceGroup Name}/providers/Microsoft.HDInsight/clusters/{CLUSTERNAME}/roles/workernode/autoscale?api-version=2018-06-01-preview

استخدم المعلمات المناسبة في حمولة الطلب. يمكن استخدام حمولة json التالية لتمكين التحجيم التلقائي. استخدم الحمولة {autoscale: null} لتعطيل مقياس تلقائي.

{ "autoscale": { "capacity": { "minInstanceCount": 3, "maxInstanceCount": 5 } } }

راجع القسم السابق حول تمكين مقياس تلقائي قائم على التحميل للحصول على وصف كامل لجميع معلمات الحمولة. لا يوصى بتعطيل خدمة التحجيم التلقائي بقوة على نظام مجموعة قيد التشغيل.

مراقبة أنشطة Autoscale

حالة المجموعة

يمكن أن تساعدك حالة المجموعة المدرجة في مدخل Microsoft Azure في مراقبة أنشطة مقياس تلقائي.

Enable worker node load-based autoscale cluster status.

يتم شرح كافة رسائل حالة نظام المجموعة التي قد تراها في القائمة التالية.

حالة المجموعة ‏‏الوصف
قيد التشغيل نظام المجموعة تعمل بشكل طبيعي. تم الانتهاء من جميع أنشطة Autoscale السابقة بنجاح.
Updating يتم تحديث تكوين نظام المجموعة التلقائي.
تكوين HDInsight عملية توسيع نطاق المجموعة أو تصغيرها قيد التقدم.
خطأ في التحديث التقى HDInsight بالمشكلات أثناء تحديث تكوين Autoscale. يمكن للعملاء اختيار إما إعادة محاولة التحديث أو تعطيل مقياس تلقائي.
خطأ هناك شيء خاطئ في نظام المجموعة، وهو غير قابل للاستخدام. احذف هذه المجموعة وأنشئ مجموعة جديدة.

لعرض العدد الحالي للعقد في مجموعتك، انتقل إلى مخطط Cluster size في صفحة Overview للمجموعة الخاصة بك. أو حدد Cluster size ضمن Settings.

تاريخ العملية

يمكنك عرض سجل نظام المجموعة وتصغيره كجزء من قياسات المجموعة. يمكنك أيضاً سرد جميع إجراءات القياس على مدار اليوم أو الأسبوع الماضي أو أي فترة زمنية أخرى.

حدد Metrics ضمن Monitoring. ثم حدد Add metric وNumber of Active Workers من مربع القائمة المنسدلة Metric. حدد الزر الموجود في الجزء العلوي الأيمن لتغيير النطاق الزمني.

Enable worker node schedule-based autoscale metric.

أفضل الممارسات

ضع في اعتبارك زمن انتقال العمليات على نطاق واسع وتقليصها

قد تستغرق عملية التحجيم بشكلٍ عام من 10 إلى 20 دقيقة. عند إعداد جدول مخصص، خطط لهذا التأخير. على سبيل المثال، إذا كنت تريد أن يكون حجم نظام المجموعة 20 في الساعة 9:00 صباحًا، فقم بتعيين مشغل الجدول الزمني على وقت سابق مثل 8:30 صباحًا أو قبل ذلك حتى تكتمل عملية التحجيم بحلول الساعة 9:00 صباحًا.

استعد للتقليل

أثناء عملية تصغير نظام المجموعة، يقوم Autoscale بإلغاء تفويض العقد لتلبية الحجم المستهدف. في التحجيم التلقائي المستند إلى التحميل، إذا كانت المهام قيد التشغيل على تلك العقد، ينتظر التحجيم التلقائي حتى تكتمل المهام لمجموعات Spark و Hadoop. نظرًا إلى أن كل عقدة عاملة تؤدي أيضًا دورًا في HDFS، يتم نقل البيانات المؤقتة إلى عقد العامل المتبقية. تأكد من وجود مساحة كافية على العقد المتبقية لاستضافة جميع البيانات المؤقتة.

إشعار

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

تكوين مقياس تلقائي قائم على الجدول الزمني بناءً على نمط الاستخدام

تحتاج إلى فهم نمط استخدام نظام المجموعة الخاص بك عند تكوين مقياس تلقائي قائم على الجدول الزمني. يمكن أن تساعدكلوحة تحكم Grafana في فهم تحميل استعلامك وفتحات التنفيذ. يمكنك الحصول على فتحات المنفذ المتاحة وإجمالي فتحات المنفذ من لوحة القيادة.

فيما يلي طريقة يمكنك من خلالها تقدير عدد العقد العاملة المطلوبة. نوصي بإعطاء مخزن مؤقت آخر بنسبة 10٪ للتعامل مع تباين حمل العمل.

عدد فتحات المنفذ المستخدمة = إجمالي فتحات المنفذ – إجمالي فتحات المنفذ المتوفرة.

عدد العقد العاملة المطلوبة = عدد فتحات المنفذ المستخدمة بالفعل / (hive.llap.daemon.num.executors + hive.llap.daemon.task.scheduler.wait.queue.size)

* hive.llap.daemon.num.executors قابلة للتكوين والافتراضي هو 4

* hive.llap.daemon.task.scheduler.wait.queue.size قابل للتكوين والإعداد الافتراضي هو 10

إجراءات البرنامج النصي المخصص

تستخدم إجراءات البرنامج النصي المخصصة في الغالب لتخصيص العقد (أي HeadNode / WorkerNodes) التي تمكن عملائنا من تكوين مكتبات وأدوات معينة، والتي يتم استخدامها من قبلهم. إحدى حالات الاستخدام الشائعة هي الوظيفة (الوظائف) التي تعمل على نظام المجموعة قد يكون لها بعض التبعيات على مكتبة الجهات الخارجية، المملوكة من قبل العميل، ويجب أن تكون متاحة على العقد حتى تنجح المهمة. بالنسبة للتحجيم التلقائي، ندعم حاليا إجراءات البرنامج النصي المخصصة، والتي تستمر، ومن ثم في كل مرة تتم فيها إضافة العقد الجديدة إلى نظام المجموعة كجزء من عملية توسيع النطاق، سيتم تنفيذ إجراءات البرنامج النصي المستمر هذه ونشر تخصيص الحاويات أو الوظائف عليها. على الرغم من أن إجراءات البرنامج النصي المخصصة تساعد على تمهيد العقد الجديدة، فمن المستحسن الاحتفاظ بها في الحد الأدنى لأنها قد تضيف ما يصل إلى زمن الانتقال الكلي للتوسيع ويمكن أن تسبب تأثيرا على الوظائف المجدولة.

كن على علم بالحد الأدنى لحجم نظام المجموعة

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

Microsoft Entra Domain Services and Scaling Operations

إذا كنت تستخدم مجموعة HDInsight مع حزمة أمان المؤسسة (ESP) التي تم ربطها بمجال مدار من Microsoft Entra Domain Services، نوصي بالتقييد التحميل على Microsoft Entra Domain Services. في مزامنة نطاق بنيات الدليل المعقدة، نوصي بتجنب التأثير على عمليات التحجيم.

قم بتعيين الحد الأقصى لإجمالي الاستعلامات المتزامنة لتكوين الخلية لسيناريو ذروة الاستخدام

لا تؤدي أحداث المقياس التلقائي إلى تغيير تكوين الخلية الحد الأقصى لإجمالي الاستعلامات المتزامنة في Ambari. وهذا يعني أن خدمة Hive Server 2 التفاعلية يمكنها التعامل فقط مع العدد المحدد من الاستعلامات المتزامنة في أي وقت حتى إذا تم توسيع نطاق عدد البرامج الخفية للاستعلام التفاعلي صعودا وهبوطا استنادا إلى التحميل والجدول الزمني. التوصية العامة هي تعيين هذا التكوين لسيناريو ذروة الاستخدام لتجنب التدخل اليدوي.

ومع ذلك، قد تواجه فشل إعادة تشغيل Hive Server 2 إذا كان هناك عدد قليل من العقد العاملة وتم تكوين قيمة الحد الأقصى لإجمالي الاستعلامات المتزامنة عالية جدا. كحد أدنى، أنت بحاجة إلى الحد الأدنى لعدد العقد العاملة التي يمكنها استيعاب العدد المحدد من Tez Ams (يساوي تكوين الحد الأقصى لإجمالي الاستعلامات المتزامنة).

القيود

عدد Daemons الاستعلام التفاعلي

إذا كانت مجموعات Interactive Query الممكنة للتحجيم التلقائي، فإن حدث التحجيم التلقائي لأعلى/لأسفل يقوم أيضا بزيادة/تقليل عدد البرامج الخفية للاستعلام التفاعلي إلى عدد العقد العاملة النشطة. لا يستمر التغيير في عدد العناصر الخفية في تكوين num_llap_nodes في Ambari. إذا تمت إعادة تشغيل خدمات Apachi Hive يدوياً، فسيتم إعادة تعيين عدد البرامج الخفية للاستعلام التفاعلي وفقاً للتكوين في Ambari.

إذا تمت إعادة تشغيل خدمة الاستعلام التفاعلي يدوياً، فستحتاج إلى تغيير تكوين num_llap_node يدوياً (عدد العقدة (العقد) المطلوبة لتشغيل البرنامج الخفي للاستعلام التفاعلي Hive) ضمن Advancedhive-Interactive-env إلى تطابق عدد العقد العاملة النشطة الحالية. تدعم مجموعة الاستعلام التفاعلي المقياس التلقائي القائم على الجدول الزمني فقط

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

اقرأ إرشادات حول قياس المجموعات يدوياً في إرشادات تغيير الحجم