استكشاف أخطاء Apache Hadoop YARN وإصلاحها باستخدام Azure HDInsight

تعرف على أهم المشكلات وحلولها عند العمل مع حمولات Apache Hadoop YARN في Apache Ambari.

كيف أقوم بإنشاء قائمة انتظار YARN جديدة على نظام مجموعة؟

خطوات القرار

استخدم الخطوات التالية في Ambari لإنشاء قائمة انتظار YARN جديدة، ثم موازنة تخصيص السعة بين جميع قوائم الانتظار.

في هذا المثال، تم تغيير قائمتين موجودتين (default وthriftsvr) من سعة 50% إلى سعة 25%، ما يمنح قائمة الانتظار الجديدة (شرارة) سعة 50%.

Queue السعة الحد الأقصى للقدرة الإنتاجية
افتراضي 25% 50%
thrftsvr 25% 50%
spark 50% 50%
  1. حدد أيقونة Ambari Views، ثم حدد نمط الشبكة. بعد ذلك، حدد YARN Queue Manager.

    Apache Ambari dashboard YARN Queue Manager.

  2. حدد قائمة الانتظار default.

    Apache Ambari YARN select default queue.

  3. في قائمة الانتظار default، قم بتغيير capacity من 50% إلى 25%. في قائمة انتظار thriftsvr، قم بتغيير capacity إلى 25%.

    Change the capacity to 25% for the default and thriftsvr queues.

  4. لإنشاء قائمة انتظار جديدة، حدد Add Queue.

    Apache Ambari YARN dashboard Add Queue.

  5. اسم قائمة الانتظار الجديدة.

    Apache Ambari YARN dashboard name Queue.

  6. اترك قيم capacity عند 50%، ثم حدد زر Actions.

    Apache Ambari YARN select action.

  7. حدد Save and Refresh Queues.

    Select Save and Refresh Queues.

تظهر هذه التغييرات على الفور على YARN Scheduler UI.

لمزيد من القراءة

كيف يمكنني تنزيل سجلات YARN من نظام مجموعة؟

خطوات القرار

  1. اتصل بمجموعة HDInsight باستخدام عميل Secure Shell (SSH). لمزيد من المعلومات، راجع المزيد من القراءة.

  2. لسرد جميع معرفات التطبيقات الخاصة بتطبيقات YARN قيد التشغيل حالياً، قم بتشغيل الأمر التالي:

    yarn top
    

    يتم سرد المعرفات في العمود APPLICATIONID. يمكنك تنزيل السجلات من العمود APPLICATIONID.

    YARN top - 18:00:07, up 19d, 0:14, 0 active users, queue(s): root
    NodeManager(s): 4 total, 4 active, 0 unhealthy, 0 decommissioned, 0 lost, 0 rebooted
    Queue(s) Applications: 2 running, 10 submitted, 0 pending, 8 completed, 0 killed, 0 failed
    Queue(s) Mem(GB): 97 available, 3 allocated, 0 pending, 0 reserved
    Queue(s) VCores: 58 available, 2 allocated, 0 pending, 0 reserved
    Queue(s) Containers: 2 allocated, 0 pending, 0 reserved
    
                      APPLICATIONID USER             TYPE      QUEUE   #CONT  #RCONT  VCORES RVCORES     MEM    RMEM  VCORESECS    MEMSECS %PROGR       TIME NAME
     application_1490377567345_0007 hive            spark  thriftsvr       1       0       1       0      1G      0G    1628407    2442611  10.00   18:20:20 Thrift JDBC/ODBC Server
     application_1490377567345_0006 hive            spark  thriftsvr       1       0       1       0      1G      0G    1628430    2442645  10.00   18:20:20 Thrift JDBC/ODBC Server
    
  3. لتنزيل سجلات حاوية YARN لجميع التطبيقات الرئيسية، استخدم الأمر التالي:

    yarn logs -applicationIdn logs -applicationId <application_id> -am ALL > amlogs.txt
    

    يقوم هذا الأمر بإنشاء ملف سجل يسمى amlogs.txt.

  4. لتنزيل سجلات حاوية YARN لأحدث تطبيق رئيسي فقط، استخدم الأمر التالي:

    yarn logs -applicationIdn logs -applicationId <application_id> -am -1 > latestamlogs.txt
    

    يقوم هذا الأمر بإنشاء ملف سجل يسمى latestamlogs.txt.

  5. لتنزيل سجلات حاوية YARN لأول تطبيقين رئيسيين، استخدم الأمر التالي:

    yarn logs -applicationIdn logs -applicationId <application_id> -am 1,2 > first2amlogs.txt
    

    يقوم هذا الأمر بإنشاء ملف سجل يسمى first2amlogs.txt.

  6. لتنزيل جميع سجلات حاوية YARN، استخدم الأمر التالي:

    yarn logs -applicationIdn logs -applicationId <application_id> > logs.txt
    

    يقوم هذا الأمر بإنشاء ملف سجل يسمى logs.txt.

  7. لتنزيل سجل حاوية YARN لحاوية معينة، استخدم الأمر التالي:

    yarn logs -applicationIdn logs -applicationId <application_id> -containerId <container_id> > containerlogs.txt
    

    يقوم هذا الأمر بإنشاء ملف سجل يسمى containerlogs.txt.

لقراءة إضافية

كيف أعمل التحقق من معلومات تشخيص تطبيق Yarn؟

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

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

Screenshot showing Yarn Application Diagnostics.

كيف يمكنني استكشاف مشكلات YARN الشائعة وإصلاحها؟

لا يتم تحميل Yarn UI

إذا لم يتم تحميل واجهة مستخدم YARN أو تعذر الوصول إليها، وأرجعت "خطأ HTTP 502.3 - بوابة غير صالحة"، فهذا يشير إلى أن خدمة Resource Manager غير صحية. للتخفيف من حدة المشكلة، اتبع الخطوات التالية:

  1. انتقل إلى ملخص Ambari UI>YARN>وتحقق لمعرفة ما إذا كان Resource Manager النشط فقط في حالة البدء. إذا لم يكن الأمر كما هو، فحاول التخفيف عن طريق إعادة تشغيل Resource Manager غير السليم أو المتوقف.
  2. إذا لم تحل الخطوة 1 المشكلة، فقم ب SSH عقدة رأس Resource Manager النشطة وتحقق من حالة مجموعة البيانات المهملة باستخدام jstat -gcutil <Resource Manager pid> 1000 100. إذا رأيت زيادة FGCT بشكل كبير في بضع ثوان فقط، فهذا يشير إلى أن Resource Manager مشغول في Full GC، وغير قادر على معالجة الطلبات الأخرى.
  3. انتقل إلى واجهة المستخدم Ambari>YARN>CONFIGS>Advanced وقم بزيادة Resource Manager java heap size.
  4. أعد تشغيل الخدمات المطلوبة في واجهة مستخدم Ambari.

كلا مديري الموارد في وضع الاستعداد

  1. تحقق من سجل Resource Manager لمعرفة ما إذا كان هناك خطأ مشابه.
Service RMActiveServices failed in state STARTED; cause: org.apache.hadoop.service.ServiceStateException: com.google.protobuf.InvalidProtocolBufferException: Could not obtain block: BP-452067264-10.0.0.16-1608006815288:blk_1074235266_494491 file=/yarn/node-labels/nodelabel.mirror
  1. إذا كان الخطأ موجودًا، فتحقق لمعرفة ما إذا كانت بعض الملفات ضمن النسخ المتماثل أو إذا كانت هناك كتل مفقودة في HDFS. يمكنك تشغيل hdfs fsck hdfs://mycluster/

  2. قم بتشغيل hdfs fsck hdfs://mycluster/ -delete تنظيف HDFS بقوة كبيرة والتخلص من مشكلة RM في وضع الاستعداد. بدلاً من ذلك، قم بتشغيل PatchYarnNodeLabel على إحدى عقد العنوان لتصحيح نظام المجموعة.

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

إذا لم تشاهد مشكلتك أو لم تتمكن من حلها، فتفضل بزيارة إحدى القنوات التالية للحصول على مزيد من الدعم:

  • احصل على إجابات من خبراء Azure عبر دعم مجتمع Azure.

  • تواصل مع @AzureSupport - حساب Microsoft Azure الرسمي لتحسين تجربة العملاء. توصيل الموارد المناسبة إلى مجتمع Azure: الإجابات، والدعم، والخبراء.

  • إذا كنت بحاجة إلى مزيد من المساعدة، فيمكنك إرسال طلب دعم من مدخل Microsoft Azure. حدد Support من شريط القائمة أو افتح المحور Help + support. لمزيد من المعلومات التفصيلية، راجع كيفية إنشاء طلب دعم Azure. يتم تضمين الوصول إلى إدارة الاشتراك ودعم الفواتير في اشتراك Microsoft Azure، ويتم توفير الدعم التقني من خلال إحدى خطط دعم Azure.