مقياس مجموعات Azure HDInsight تلقائياً
يمكن لميزة التحجيم التلقائي المجانية في Azure HDInsight زيادة أو تقليل عدد العقد العاملة في مجموعتك تلقائيًا استنادًا إلى مقاييس نظام المجموعة ونهج التحجيم التي يعتمدها العملاء. تعمل ميزة التحجيم التلقائي عن طريق تحجيم عدد العقد ضمن حدود محددة مسبقا استنادا إلى مقاييس الأداء أو جدول محدد لعمليات التوسيع والتحجيم.
طريقة العمل
تستخدم ميزة Autoscale نوعين من الشروط لتشغيل أحداث القياس: الحدود الدنيا لقياسات أداء المجموعة المتنوعة (تسمى التحجيم القائم على الحمل) والمشغلات المستندة إلى الوقت (تسمى القياس المستند إلى الجدول الزمني). يغير القياس على أساس الحمل عدد العقد في مجموعتك، ضمن النطاق الذي تحدده، لضمان الاستخدام الأمثل لوحدة المعالجة المركزية وتقليل تكلفة التشغيل. يغير القياس المستند إلى الجدول الزمني عدد العقد في مجموعتك استناداً إلى جدول عمليات توسيع النطاق وتقليصه.
يوفر الفيديو التالي نظرة عامة على التحديات، التي يحلها التحجيم التلقائي وكيف يمكن أن يساعدك في التحكم في التكاليف باستخدام HDInsight.
اختيار القياس على أساس الحمل أو الجدول الزمني
يمكن استخدام التحجيم المستند إلى الجدول الزمني:
- عندما يتوقع تشغيل مهامك على جداول زمنية ثابتة ولفترة يمكن التنبؤ بها أو عندما تتوقع استخداما منخفضا خلال أوقات محددة من اليوم. على سبيل المثال، بيئات الاختبار والتطوير في ساعات ما بعد العمل، وظائف نهاية اليوم.
يمكن استخدام التحجيم المستند إلى التحميل:
- عندما تتقلب أنماط التحميل بشكل كبير وغير متوقع خلال النهار. على سبيل المثال، طلب معالجة البيانات مع تقلبات عشوائية في أنماط التحميل استنادا إلى عوامل مختلفة.
قياسات نظام المجموعة
يراقب Autoscale نظام المجموعة باستمرار ويجمع القياسات التالية:
مقياس | الوصف |
---|---|
إجمالي وحدة المعالجة المركزية المعلقة | إجمالي عدد الأنوية المطلوب لبدء تنفيذ جميع الحاويات المعلقة. |
إجمالي الذاكرة المعلقة | إجمالي الذاكرة (بالميغابايت) المطلوبة لبدء تنفيذ جميع الحاويات المعلقة. |
إجمالي وحدة المعالجة المركزية الخالية | مجموع كل الأنوية غير المستخدمة في العقد العاملة النشطة. |
إجمالي الذاكرة الخالية | مجموع الذاكرة غير المستخدمة (بالميغابايت) على العقد العاملة النشطة. |
الذاكرة المستخدمة لكل عقدة | الحمل على عقدة العامل. تعتبر العقدة العاملة التي يتم استخدام 10 غيغابايت من الذاكرة عليها تحت حمل أكبر من العامل الذي يمتلك 2 غيغابايت من الذاكرة المستخدمة. |
عدد التطبيقات الرئيسية لكل عقدة | عدد حاويات التطبيق الرئيسي (AM) التي تعمل على عقدة عاملة. تعتبر العقدة العاملة التي تستضيف حاويتين من النوع AM أكثر أهمية من العقدة العاملة التي تستضيف حاويات صفرية AM. |
يتم فحص القياسات أعلاه كل 60 ثانية. يتخذ Autoscale قرارات للتوسيع والتصغير بناءً على هذه القياسات.
للحصول على قائمة كاملة بمقاييس نظام المجموعة، راجع المقاييس المدعومة ل Microsoft.HDInsight/clusters.
شروط المقياس على أساس الحمل
عند الكشف عن الشروط التالية، يصدر التحجيم التلقائي طلب مقياس:
تكبير الحجم | تصغير الحجم |
---|---|
إجمالي وحدة 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 على نظام المجموعة الخاص بك، فإن المسار الموصى به هو إنشاء نظام مجموعة جديد، وعلى enable 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 مع القياس المستند إلى الحمل، أكمل الخطوات التالية كجزء من عملية إنشاء نظام المجموعة العادية:
في علامة التبويب Configuration + pricing ، حدد خانة
Enable autoscale
الاختيار.حدد Load-based ضمن Autoscale type.
أدخل القيم المقصودة للخصائص التالية:
- العدد الأولي للعقد لـ عقدة العامل.
- الحد الأدنى لعدد العقد العاملة.
- الحد الأقصى لعدد العقد العاملة.
يجب أن يقع العدد الأولي للعقد العاملة بين الحد الأدنى والحد الأقصى، شاملاً. تحدد هذه القيمة الحجم الأولي للكتلة عند إنشائها. يجب تعيين الحد الأدنى لعدد العقد العاملة على ثلاثة أو أكثر. يمكن أن يؤدي تحجيم المجموعة الخاصة بك إلى أقل من ثلاث عقد إلى توقفها في الوضع الآمن بسبب عدم كفاية نسخ الملف. لمزيد من المعلومات، راجع الوقوع في الوضع الآمن.
قم بإنشاء مجموعة مع قياس تلقائي قائم على الجدول الزمني
لتمكين ميزة Autoscale مع القياس المستند إلى الجدول الزمني، أكمل الخطوات التالية كجزء من عملية إنشاء نظام المجموعة العادية:
في علامة التبويب Configuration + pricing ، حدد خانة
Enable autoscale
الاختيار.أدخل Number of nodes لـ Workernode، والتي تتحكم في الحد الأقصى لتوسيع المجموعة.
حدد الخيار Schedule-based ضمن Autoscale type.
حدد Configure لفتح نافذة Autoscale configuration.
حدد منطقتك الزمنية، ثم انقر على + إضافة شرط
حدد أيام الأسبوع التي يجب أن تنطبق عليها الحالة الجديدة.
قم بتحرير الوقت الذي يجب أن يسري فيه الشرط وعدد العقد التي يجب تغيير حجم نظام المجموعة إليها.
أضف المزيد من الشروط إذا لزم الأمر.
يجب أن يكون عدد العقد بين 3 والحد الأقصى لعدد العقد العاملة التي أدخلتها قبل إضافة الشروط.
خطوات الإنشاء النهائية
حدد نوع VM للعقد العاملة عن طريق تحديد VM من القائمة المنسدلة ضمن Node size. بعد اختيار نوع VM لكل نوع عقدة، يمكنك رؤية نطاق التكلفة المقدّر للمجموعة بأكملها. اضبط أنواع VM لتناسب ميزانيتك.
اشتراكك له حصة سعة لكل منطقة. لا يمكن أن يتجاوز إجمالي عدد الأنوية لعقد الرأس والعقد القصوى للعمال حصة السعة. ومع ذلك، تعتبر هذه الحصة حداً ضعيفاً؛ يمكنك دائماً إنشاء بطاقة دعم لزيادة حجمها بسهولة.
إشعار
إذا تجاوزت الحد الإجمالي للحصة الأساسية، فستتلقى رسالة خطأ مفادها "تجاوز الحد الأقصى للعقدة الأنوية المتوفرة في هذه المنطقة، يرجى اختيار منطقة أخرى أو الاتصال بالدعم لزيادة الحصة."
لمزيد من المعلومات حول إنشاء مجموعة HDInsight باستخدام مدخل Microsoft Azure، راجع إنشاء مجموعات مستندة إلى Linux في HDInsight باستخدام مدخل Microsoft Azure.
قم بإنشاء كتلة باستخدام قالب Resource Manager
قياس تلقائي قائم على الحمل
يمكنك إنشاء مجموعة HDInsight مع التحجيم التلقائي المستند إلى التحميل لقالب Azure Resource Manager، عن طريق إضافة عقدة autoscale
إلى computeProfile
workernode
>القسم مع الخصائص 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.
باستخدام واجهة برمجة تطبيقات 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 التالية إلى enable Autoscale
. استخدم الحمولة {autoscale: null}
لتعطيل مقياس تلقائي.
{ "autoscale": { "capacity": { "minInstanceCount": 3, "maxInstanceCount": 5 } } }
راجع القسم السابق حول تمكين مقياس تلقائي قائم على التحميل للحصول على وصف كامل لجميع معلمات الحمولة. لا يوصى بتعطيل خدمة التحجيم التلقائي بقوة على نظام مجموعة قيد التشغيل.
مراقبة أنشطة Autoscale
حالة المجموعة
يمكن أن تساعدك حالة المجموعة المدرجة في مدخل Microsoft Azure في مراقبة أنشطة مقياس تلقائي.
يتم شرح كافة رسائل حالة نظام المجموعة التي قد تراها في القائمة التالية.
حالة المجموعة | الوصف |
---|---|
قيد التشغيل | نظام المجموعة تعمل بشكل طبيعي. تم الانتهاء من جميع أنشطة Autoscale السابقة بنجاح. |
Updating | يتم تحديث تكوين نظام المجموعة التلقائي. |
تكوين HDInsight | عملية توسيع نطاق المجموعة أو تصغيرها قيد التقدم. |
خطأ في التحديث | التقى HDInsight بالمشكلات أثناء تحديث تكوين Autoscale. يمكن للعملاء اختيار إما إعادة محاولة التحديث أو تعطيل مقياس تلقائي. |
خطأ | هناك شيء خاطئ في نظام المجموعة، وهو غير قابل للاستخدام. احذف هذه المجموعة وأنشئ مجموعة جديدة. |
لعرض العدد الحالي للعقد في مجموعتك، انتقل إلى مخطط Cluster size في صفحة Overview للمجموعة الخاصة بك. أو حدد Cluster size ضمن Settings.
تاريخ العملية
يمكنك عرض سجل نظام المجموعة وتصغيره كجزء من قياسات المجموعة. يمكنك أيضاً سرد جميع إجراءات القياس على مدار اليوم أو الأسبوع الماضي أو أي فترة زمنية أخرى.
حدد Metrics ضمن Monitoring. ثم حدد Add metric وNumber of Active Workers من مربع القائمة المنسدلة 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 إلى تطابق عدد العقد العاملة النشطة الحالية. يدعم Interactive Query Cluster التحجيم التلقائي المستند إلى الجدول الزمني فقط.
الخطوات التالية
اقرأ حول إرشادات تحجيم المجموعات يدويا في إرشادات التحجيم.