استكشاف أخطاء 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% |
حدد أيقونة Ambari Views، ثم حدد نمط الشبكة. بعد ذلك، حدد YARN Queue Manager.
حدد قائمة الانتظار default.
في قائمة الانتظار default، قم بتغيير capacity من 50% إلى 25%. في قائمة انتظار thriftsvr، قم بتغيير capacity إلى 25%.
لإنشاء قائمة انتظار جديدة، حدد Add Queue.
اسم قائمة الانتظار الجديدة.
اترك قيم capacity عند 50%، ثم حدد زر Actions.
حدد Save and Refresh Queues.
تظهر هذه التغييرات على الفور على YARN Scheduler UI.
لمزيد من القراءة
كيف يمكنني تنزيل سجلات YARN من نظام مجموعة؟
خطوات القرار
اتصل بمجموعة HDInsight باستخدام عميل Secure Shell (SSH). لمزيد من المعلومات، راجع المزيد من القراءة.
لسرد جميع معرفات التطبيقات الخاصة بتطبيقات 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
لتنزيل سجلات حاوية YARN لجميع التطبيقات الرئيسية، استخدم الأمر التالي:
yarn logs -applicationIdn logs -applicationId <application_id> -am ALL > amlogs.txt
يقوم هذا الأمر بإنشاء ملف سجل يسمى amlogs.txt.
لتنزيل سجلات حاوية YARN لأحدث تطبيق رئيسي فقط، استخدم الأمر التالي:
yarn logs -applicationIdn logs -applicationId <application_id> -am -1 > latestamlogs.txt
يقوم هذا الأمر بإنشاء ملف سجل يسمى latestamlogs.txt.
لتنزيل سجلات حاوية YARN لأول تطبيقين رئيسيين، استخدم الأمر التالي:
yarn logs -applicationIdn logs -applicationId <application_id> -am 1,2 > first2amlogs.txt
يقوم هذا الأمر بإنشاء ملف سجل يسمى first2amlogs.txt.
لتنزيل جميع سجلات حاوية YARN، استخدم الأمر التالي:
yarn logs -applicationIdn logs -applicationId <application_id> > logs.txt
يقوم هذا الأمر بإنشاء ملف سجل يسمى logs.txt.
لتنزيل سجل حاوية YARN لحاوية معينة، استخدم الأمر التالي:
yarn logs -applicationIdn logs -applicationId <application_id> -containerId <container_id> > containerlogs.txt
يقوم هذا الأمر بإنشاء ملف سجل يسمى containerlogs.txt.
لقراءة إضافية
كيف أعمل التحقق من معلومات تشخيص تطبيق Yarn؟
التشخيص في Yarn UI هي ميزة تسمح لك بعرض حالة وسجلات التطبيقات التي تعمل على Yarn. يمكن أن تساعدك التشخيصات في استكشاف أخطاء تطبيقاتك وإصلاحها، بالإضافة إلى مراقبة أدائها واستخدام الموارد.
لعرض تشخيصات تطبيق معين، يمكنك النقر فوق معرف التطبيق في قائمة التطبيقات. في صفحة تفاصيل التطبيق، يمكنك أيضا مشاهدة قائمة بجميع المحاولات التي تم إجراؤها لتشغيل التطبيق. يمكنك النقر فوق أي محاولة للاطلاع على مزيد من التفاصيل، مثل معرف المحاولة ومعرف الحاوية ومعرف العقدة ووقت البدء ووقت الانتهاء والتشخيصات
كيف يمكنني استكشاف مشكلات YARN الشائعة وإصلاحها؟
لا يتم تحميل Yarn UI
إذا لم يتم تحميل واجهة مستخدم YARN أو تعذر الوصول إليها، وأرجعت "خطأ HTTP 502.3 - بوابة غير صالحة"، فهذا يشير إلى أن خدمة Resource Manager غير صحية. للتخفيف من حدة المشكلة، اتبع الخطوات التالية:
- انتقل إلى ملخص Ambari UI>YARN>وتحقق لمعرفة ما إذا كان Resource Manager النشط فقط في حالة البدء. إذا لم يكن الأمر كما هو، فحاول التخفيف عن طريق إعادة تشغيل Resource Manager غير السليم أو المتوقف.
- إذا لم تحل الخطوة 1 المشكلة، فقم ب SSH عقدة رأس Resource Manager النشطة وتحقق من حالة مجموعة البيانات المهملة باستخدام
jstat -gcutil <Resource Manager pid> 1000 100
. إذا رأيت زيادة FGCT بشكل كبير في بضع ثوان فقط، فهذا يشير إلى أن Resource Manager مشغول في Full GC، وغير قادر على معالجة الطلبات الأخرى. - انتقل إلى واجهة المستخدم Ambari>YARN>CONFIGS>Advanced وقم بزيادة
Resource Manager java heap size
. - أعد تشغيل الخدمات المطلوبة في واجهة مستخدم Ambari.
كلا مديري الموارد في وضع الاستعداد
- تحقق من سجل 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
إذا كان الخطأ موجودًا، فتحقق لمعرفة ما إذا كانت بعض الملفات ضمن النسخ المتماثل أو إذا كانت هناك كتل مفقودة في HDFS. يمكنك تشغيل
hdfs fsck hdfs://mycluster/
قم بتشغيل
hdfs fsck hdfs://mycluster/ -delete
تنظيف HDFS بقوة كبيرة والتخلص من مشكلة RM في وضع الاستعداد. بدلاً من ذلك، قم بتشغيل PatchYarnNodeLabel على إحدى عقد العنوان لتصحيح نظام المجموعة.
الخطوات التالية
إذا لم تشاهد مشكلتك أو لم تتمكن من حلها، فتفضل بزيارة إحدى القنوات التالية للحصول على مزيد من الدعم:
احصل على إجابات من خبراء Azure عبر دعم مجتمع Azure.
تواصل مع @AzureSupport - حساب Microsoft Azure الرسمي لتحسين تجربة العملاء. توصيل الموارد المناسبة إلى مجتمع Azure: الإجابات، والدعم، والخبراء.
إذا كنت بحاجة إلى مزيد من المساعدة، فيمكنك إرسال طلب دعم من مدخل Microsoft Azure. حدد Support من شريط القائمة أو افتح المحور Help + support. لمزيد من المعلومات التفصيلية، راجع كيفية إنشاء طلب دعم Azure. يتم تضمين الوصول إلى إدارة الاشتراك ودعم الفواتير في اشتراك Microsoft Azure، ويتم توفير الدعم التقني من خلال إحدى خطط دعم Azure.