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

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

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

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

إشعار

يتم دعم المجموعات التي تحتوي على HDInsight الإصدار 3.1.3 أو أعلى فقط. إذا لم تكن متأكدًا من إصدار المجموعة خاصتك، يمكنك التحقق من صفحة الخصائص.

المرافق لتوسيع نطاق المجموعات

توفر Microsoft الأدوات المساعدة التالية لتوسيع نطاق المجموعات:

الأداة المساعدة ‏‏الوصف
PowerShell Az Set-AzHDInsightClusterSize -ClusterName CLUSTERNAME -TargetInstanceCount NEWSIZE
PowerShell AzureRM Set-AzureRmHDInsightClusterSize -ClusterName CLUSTERNAME -TargetInstanceCount NEWSIZE
Azure CLI az hdinsight resize --resource-group RESOURCEGROUP --name CLUSTERNAME --workernode-count NEWSIZE
Azure Classic CLI azure hdinsight cluster resize CLUSTERNAME NEWSIZE
مدخل Microsoft Azure افتح جزء نظام مجموعة HDInsight، وحدد حجم نظام المجموعة في القائمة اليسرى، ثم في جزء حجم نظام المجموعة، اكتب عدد العقد العاملة، وحدد حفظ.

Azure portal scale cluster option.

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

هام

  • تم إهمال CLI الكلاسيكي Azure، ويجب استخدامه فقط مع نموذج النشر الكلاسيكي. بالنسبة لجميع عمليات النشر الأخرى، استخدم Azure CLI.
  • تم إهمال الوحدة النمطية PowerShell AzureRM. يرجى استخدام الوحدة النمطية Az كلما أمكن ذلك.

تأثير عمليات القياس

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

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

يختلف تأثير تغيير عدد عقد البيانات لكل نوع من أنواع المجموعات التي يدعمها HDInsight:

  • Apache Hadoop

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

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

  • Apache HBase

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

    pushd %HBASE_HOME%\bin
    hbase shell
    balancer
    

    لمزيد من المعلومات حول استخدام HBase shell، راجع البدء باستخدام مثال Apache HBase في HDInsight.

  • Kafka

    يجب إعادة موازنة النسخ المتماثلة للقسم بعد عمليات المقياس. لمزيد من المعلومات، راجع مستند قابلية الوصول العالية للبيانات باستخدام Apache Kafka على HDInsight .

  • Apache Hive LLAP

    بعد التحجيم إلى N العقد العاملة، يقوم HDInsight تلقائيا بتعيين التكوينات التالية وإعادة تشغيل Hive.

    • الحد الأقصى لإجمالي الاستعلامات المتزامنة: hive.server2.tez.sessions.per.default.queue = min(N, 32)
    • عدد العقد المستخدمة بواسطة LLAP الخاص ب Hive: num_llap_nodes = N
    • عدد العقد (العقد) لتشغيل برنامج Hive LLAP الخفي: num_llap_nodes_for_llap_daemons = N

كيفية تصغير مجموعة بأمان

تصغير المجموعة مع المهام الجارية

لتجنب فشل مهام التشغيل أثناء عملية تقليص حجمها، يمكنك تجربة ثلاثة أشياء:

  1. انتظر حتى تكتمل المهام قبل تصغير حجم مجموعتك.
  2. إنهاء الوظائف يدويًا.
  3. أعد إرسال الوظائف بعد انتهاء عملية القياس.

لمشاهدة قائمة بالمهام المعلقة والمشغلة، يمكنك استخدام واجهة مستخدم YARN Resource Manager، باتباع الخطوات التالية:

  1. من مدخل Azure، حدد نظام المجموعة. يتم فتح نظام مجموعة في صفحة مدخل جديد.

  2. من العرض الرئيسي، انتقل إلى لوحات معلومات>نظام المجموعة الصفحة الرئيسية Ambari. أدخل بيانات اعتماد المجموعة الخاصة بك.

  3. من واجهة مستخدم Ambari، حدد YARN في قائمة الخدمات في القائمة اليسرى.

  4. من صفحة YARN، حدد ارتباطات سريعة وقم بالمرور فوق عقدة الرأس النشطة، ثم حدد واجهة مستخدم Resource Manager.

    Apache Ambari quick links Resource Manager UI.

يمكنك الوصول مباشرة إلى واجهة مستخدم Resource Manager باستخدام https://<HDInsightClusterName>.azurehdinsight.net/yarnui/hn/cluster.

ترى قائمة الوظائف، بالإضافة إلى حالتها الحالية. في لقطة الشاشة، هناك وظيفة واحدة قيد التشغيل حاليًا:

Resource Manager UI applications.

لإيقاف هذا التطبيق قيد التشغيل يدويًا، قم بتنفيذ الأمر التالي من SSH shell:

yarn application -kill <application_id>

على سبيل المثال:

yarn application -kill "application_1499348398273_0003"

التعثر في الوضع الآمن

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

بشكل افتراضي، يتم تكوين HDFS بإعداد dfs.replication 1، والذي يتحكم في عدد النسخ المتوفرة من كل كتلة ملفات. يتم تخزين كل نسخة من مجموعة الملف على عقدة مختلفة من المجموعة.

عندما لا يتوفر العدد المتوقع لنسخ الحظر، يدخل HDFS في الوضع الآمن، ويقوم Ambari بإنشاء تنبيهات. قد يدخل HDFS في الوضع الآمن لعملية القياس. قد تتعطل المجموعة في الوضع الآمن إذا لم يتم اكتشاف العدد المطلوب من العقد للنسخ المتماثل.

مثال على الأخطاء عند تشغيل الوضع الآمن

org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /tmp/hive/hive/819c215c-6d87-4311-97c8-4f0b9d2adcf0. Name node is in safe mode.
org.apache.http.conn.HttpHostConnectException: Connect to active-headnode-name.servername.internal.cloudapp.net:10001 [active-headnode-name.servername. internal.cloudapp.net/1.1.1.1] failed: Connection refused

يمكنك مراجعة سجلات عقدة الاسم من المجلد، بالقرب من /var/log/hadoop/hdfs/ الوقت الذي تم فيه تحجيم نظام المجموعة، لمعرفة متى دخلت الوضع الآمن. تتم تسمية ملفات السجل باسم Hadoop-hdfs-namenode-<active-headnode-name>.*.

كان السبب الأساسي هو أن Hive تعتمد على الملفات المؤقتة في HDFS أثناء تشغيل الاستعلامات. عندما يدخل HDFS في الوضع الآمن، لا يمكن لـ Hive تشغيل الاستعلامات؛ لأنه لا يمكنها الكتابة إلى HDFS. توجد ملفات Temp في HDFS في محرك الأقراص المحلي المثبت على عقدة العامل الفردي VMs. يتم نسخ الملفات بين العقد العاملة الأخرى في ثلاث نسخ متماثلة، كحد أدنى.

كيفية منع HDInsight من التعثر في الوضع الآمن

هناك عدة طرق لمنع ترك HDInsight في الوضع الآمن:

  • أوقف جميع وظائف Hive قبل تصغير HDInsight. بالتناوب، قم بجدولة عملية تقليص الحجم؛ لتجنب التعارض مع تشغيل وظائف Hive.
  • قم بتنظيف ملفات دليل Apache Hive الصفرية tmp يدويا في HDFS قبل تقليص الحجم.
  • قلص HDInsight إلى ثلاث عقد عاملة، كحد أدنى. تجنب الانحدار إلى عقدة عاملة واحدة.
  • قم بتشغيل الأمر لمغادرة الوضع الآمن، إذا لزم الأمر.

تصف الأقسام التالية هذه الخيارات.

أوقف جميع وظائف Hive

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

إيقاف مهام Apache Hive قبل التحجيم، يساعد على تقليل عدد ملفات التسويد في مجلد tmp (إن وجد).

قم بتنظيف ملفات خدش Hive يدويًا

إذا تركت Hive ملفات مؤقتة، يمكنك تنظيف هذه الملفات يدويًا قبل تقليص حجمها لتجنب الوضع الآمن.

  1. تحقق من الموقع الذي يتم استخدامه لملفات Hive المؤقتة من خلال النظر في hive.exec.scratchdir خاصية التكوين. تم تعيين هذه المعلمة ضمن /etc/hive/conf/hive-site.xml:

    <property>
        <name>hive.exec.scratchdir</name>
        <value>hdfs://mycluster/tmp/hive</value>
    </property>
    
  2. أوقف خدمات Hive، وتأكد من إكمال جميع الاستفسارات والوظائف.

  3. سرد محتويات دليل الصفر الموجود أعلاه، hdfs://mycluster/tmp/hive/ لمعرفة ما إذا كان يحتوي على أي ملفات:

    hadoop fs -ls -R hdfs://mycluster/tmp/hive/hive
    

    إليك عينة من المخرجات عند وجود الملفات:

    sshuser@scalin:~$ hadoop fs -ls -R hdfs://mycluster/tmp/hive/hive
    drwx------   - hive hdfs          0 2017-07-06 13:40 hdfs://mycluster/tmp/hive/hive/4f3f4253-e6d0-42ac-88bc-90f0ea03602c
    drwx------   - hive hdfs          0 2017-07-06 13:40 hdfs://mycluster/tmp/hive/hive/4f3f4253-e6d0-42ac-88bc-90f0ea03602c/_tmp_space.db
    -rw-r--r--   3 hive hdfs         27 2017-07-06 13:40 hdfs://mycluster/tmp/hive/hive/4f3f4253-e6d0-42ac-88bc-90f0ea03602c/inuse.info
    -rw-r--r--   3 hive hdfs          0 2017-07-06 13:40 hdfs://mycluster/tmp/hive/hive/4f3f4253-e6d0-42ac-88bc-90f0ea03602c/inuse.lck
    drwx------   - hive hdfs          0 2017-07-06 20:30 hdfs://mycluster/tmp/hive/hive/c108f1c2-453e-400f-ac3e-e3a9b0d22699
    -rw-r--r--   3 hive hdfs         26 2017-07-06 20:30 hdfs://mycluster/tmp/hive/hive/c108f1c2-453e-400f-ac3e-e3a9b0d22699/inuse.info
    
  4. إذا كنت تعلم أن Hive قامت بالانتهاء من هذه الملفات، يمكنك إزالتها. تأكد من أن Hive ليس لديها أي استعلامات قيد التشغيل من خلال النظر في صفحة واجهة مستخدم Yarn Resource Manager.

    مثال على سطر أوامر لإزالة الملفات من HDFS:

    hadoop fs -rm -r -skipTrash hdfs://mycluster/tmp/hive/
    

قم بتوسيع نطاق HDInsight إلى ثلاث عقد عاملة أو أكثر

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

يعد وجود ثلاث عقد عاملة أكثر تكلفة من تقليص حجمها إلى عقدة عاملة واحدة فقط. ومع ذلك، يمنع هذا الإجراء نظام المجموعة من التعثر في الوضع الآمن.

مقياس HDInsight وصولاً الى عقدة عامل واحد

حتى عندما يتم تحجيم نظام المجموعة إلى عقدة واحدة، لا تزال العقدة العاملة 0 على قيد الحياة. لا يمكن إيقاف تشغيل العقدة العاملة 0.

قم بتشغيل الأمر لمغادرة الوضع الآمن

الخيار الأخير هو تنفيذ أمر ترك الوضع الآمن. إذا دخل HDFS في الوضع الآمن بسبب وجود ملف Hive تحت النسخ المتماثل، فقم بتنفيذ الأمر التالي لمغادرة الوضع الآمن:

hdfs dfsadmin -D 'fs.default.name=hdfs://mycluster/' -safemode leave

تصغير حجم مجموعة Apache HBase

تتم موازنة خوادم المنطقة تلقائيًا في غضون دقائق قليلة بعد إكمال عملية القياس. لموازنة خوادم المنطقة يدويًا، أكمل الخطوات التالية:

  1. قم بالاتصال بمجموعة HDInsight باستخدام SSH. لمزيدٍ من المعلومات، راجع استخدام SSH مع HDInsight.

  2. ابدأ بـ HBase shell:

    hbase shell
    
  3. استخدم الأمر التالي لموازنة خوادم المنطقة يدويًا:

    balancer
    

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

للحصول على معلومات محددة حول قياس مجموعة HDInsight الخاصة بك، راجع: