تمكين النُسخ الاحتياطية لكومة الذاكرة المؤقتة لخدمات Apache Hadoop على HDInsight المستند إلى Linux

النُسخ الاحتياطية لكومة الذاكرة المؤقتة يحتوي على نسخة مطابقة من ذاكرة التطبيق بما في ذلك قيم المتغيرات في وقت إنشاء النُسخ الاحتياطية. لذلك فهي مفيدة لتشخيص المشاكل التي تحدث في وقت التشغيل.

الخدمات

يمكنك تمكين النُسخ الاحتياطية لكومة الذاكرة المؤقتة للخدمات التالية:

  • Apache hcatalog - tempelton
  • Apache hive - hiveserver2, metastore, derbyserver
  • mapreduce - jobhistoryserver
  • Apache yarn - resourcemanager, nodemanager, timelineserver
  • Apache hdfs - datanode, secondarynamenode, namenode

كما يمكنك تمكين النُسخ الاحتياطية لكومة الذاكرة المؤقتة للخريطة وتقليل العمليات التي يديرها HDInsight.

فهم تكوين النسخة الاحتياطية لكومة الذاكرة المؤقتة

يتم تمكين النُسخ الاحتياطية لكومة الذاكرة المؤقة بتمرير الخيارات (تعرف أحيانًا باسم opts أو معلمات) إلى جهاز Java ظاهري عند بدء تشغيل الخدمة. بالنسبة لمعظم خدمات Apache Hadoop، يمكنك تعديل البرنامج النصي shell المُستخدم لبدء تشغيل الخدمة لتمرير هذه الخيارات.

في كل سيناريو، هناك تصدير لـ OPTS، والذي يحتوي على الخيارات التي تم تمريرها إلى جهاز Java ظاهري. على سبيل المثال، في البرنامج النصي hadoop-env.sh، السطر الذي يبدأ بـ export HADOOP_NAMENODE_OPTS= يحتوي على الخيارات لخدمة NameNode.

تختلف عمليات التعيين والتقليل قليلًا، حيث أن هذه العمليات هي عملية تابعة لخدمة MapReduce. يتم تشغيل كل عملية تعيين أو عملية تقليل في حاوية تابعة، وهناك إدخالان يحتويا على خيارات جهاز Java ظاهري. كلاهما مُضمن في mapred-site.xml:

  • mapreduce.admin.map.child.java.opts
  • mapreduce.admin.reduce.child.java.opts

إشعار

نُوصي باستخدام Apache Ambari لتعديل كل من البرامج النصية وإعدادات mapred-site.xml، حيث يتعامل Ambari مع تكرار التغييرات عبر العُقد في المجموعة. راجع قسم استخدام Apache Ambari لخطوات محددة.

تمكين النُسخ الاحتياطية لكومة الذاكرة المؤقتة

يُمكن الخيار التالي النُسخ الاحتياطية لكومة الذاكرة المؤقتة عند حدوث خطأ OutOfMemoryError:

-XX:+HeapDumpOnOutOfMemoryError

يُشير + إلى عدم تمكين هذا الخيار. يُعطل في الوضع الافتراضي.

تحذير

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

موقع النسخ الاحتياطية

الموقع الافتراضي لملف النسخ الاحتياطية هو الدليل المشغَّل الحالي. يمكنك التحكم في مكان تخزين الملف باستخدام الخيار التالي:

-XX:HeapDumpPath=/path

على سبيل المثال، يؤدي استخدام -XX:HeapDumpPath=/tmp إلى تخزين النسخ الاحتياطية في دليل /tmp.

نصوص

يمكنك كذلك تشغيل برنامج نصي عند حدوث خطا OutOfMemoryError. على سبيل المثال، تشغيل إعلام حتى تعرف أن الخطأ قد حدث. استخدم الخيار التالي لتشغيل برنامج نصي على OutOfMemoryError:

-XX:OnOutOfMemoryError=/path/to/script

إشعار

نظرًا لأن Apache Hadoop هو نظام موزع، فيجب وضع أي برنامج نصي مُستخدم على جميع العقد في المجموعة التي تعمل عليها الخدمة.

كما يجب أن يكون البرنامج النصي في موقع يمكن الوصول إليه بواسطة الحساب الذي تعمل الخدمة فيه، ويجب أن يوفر أذونات التنفيذ. على سبيل المثال، قد ترغب في تخزين البرامج النصية في /usr/local/bin واستخدام chmod go+rx /usr/local/bin/filename.sh لمنح أذونات القراءة والتنفيذ.

استخدام Apache Ambari

لتعديل التكوين لخدمة ما، استخدم الخطوات التالية:

  1. من متصفح ويب، انتقل إلى https://CLUSTERNAME.azurehdinsight.net، حيث CLUSTERNAME هو اسم نظام المجموعة.

  2. باستخدام القائمة من على اليسار، حدد منطقة الخدمة التي تريد تعديلها. على سبيل المثال، HDFS. في منطقة الوسط، حدد علامة التبويب Configs.

    Image of Ambari web with HDFS Configs tab selected.

  3. باستخدام إدخال عامل التصفية...، أدخل opts. تُعرض العناصر التي تحتوي على هذا النص فقط.

    Apache Ambari config filtered list.

  4. ابحث عن إدخال *_OPTS للخدمة التي تريد تمكين النُسخ الاحتياطية لكومة الذاكرة المؤقتة لها، وأضف الخيارات التي ترغب في تمكينها. في الصورة التالية، لقد أضفت -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/ إلى إدخال HADOOP_NAMENODE_OPTS:

    Apache Ambari hadoop-namenode-opts.

    إشعار

    عند تمكين النُسخ الاحتياطية لكومة الذاكرة المؤقتة للخريطة أو تقليل العملية التابعة، ابحث عن الحقول المُسماه mapreduce.admin.map.child.java.opts وmapreduce.admin.reduce.child.java.opts.

    استخدم الزر حفظ لحفظ التغييرات. يمكنك إدخال ملاحظة قصيرة تصف التغييرات.

  5. بمجرد تطبيق التغييرات، يظهر الرمز إعادة التشغيل مطلوبة بجانب خدمة واحدة أو أكثر من خدمة.

    restart required icon and restart button.

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

    Turn on hdi maintenance mode menu.

  7. بمجرد تمكين وضع الصيانة، استخدم زر إعادة التشغيل للخدمة لإعادة تشغيل كافة التأثيرات

    Apache Ambari Restart All Affected entry.

    إشعار

    قد تختلف إدخالات زر إعادة التشغيل عن الخدمات الأخرى.

  8. بمجرد إعادة تشغيل الخدمات، استخدم زر إجراءات الخدمةلإيقاف تشغيل وضع الصيانة. يُستخدم هذا الـ Ambari لاستئناف رصد التنبيهات للخدمة.