قم بالوصول إلى سجلات تطبيق Apache Hadoop YARN على HDInsight المستند إلى Linux

تعرف على كيفية الوصول إلى سجلات تطبيقات Apache Hadoop YARN (مفاوض موارد آخر) على مجموعة Apache Hadoop في Azure HDInsight.

ما هو Apache YARN؟

يدعم YARN نماذج برمجة متعددة (يعد Apache Hadoop MapReduce أحدها) عن طريق فصل إدارة الموارد عن جدولة/مراقبة التطبيق. يستخدم YARN ResourceManager (RM) عالمياً NodeManagers (NMs) لكل عامل ApplicationMasters لكل تطبيق (AMs). يتفاوض AM لكل تطبيق على الموارد (وحدة المعالجة المركزية، والذاكرة، والقرص، والشبكة) لتشغيل التطبيق الخاص بك مع RM. يعمل RM مع NMs لمنح هذه الموارد، والتي يتم منحها كـ حاويات. تعد AM مسؤولة عن تتبع تقدم الحاويات المعينة لها من قِبل RM. قد يتطلب التطبيق العديد من الحاويات حسب طبيعة التطبيق.

قد يتكون كل تطبيق من عدة محاولات تطبيق. إذا فشل أحد التطبيقات، فقد يتم إعادة المحاولة كمحاولة جديدة. كل محاولة تعمل في حاوية. بمعنى ما، توفر الحاوية سياق وحدة العمل الأساسية التي يقوم بها تطبيق YARN. يتم تنفيذ جميع الأعمال التي يتم إجراؤها في سياق الحاوية على عقدة العامل الفردية التي تم توفير الحاوية عليها. راجع Hadoop: كتابة تطبيقات YARN، أو Apache Hadoop YARN لمزيد من المراجع.

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

خادم الجدول الزمني YARN

يوفر Apache Hadoop YARN Timeline Server معلومات عامة عن التطبيقات المكتملة

يتضمن YARN Timeline Server النوع التالي من البيانات:

  • معرف التطبيق، معرف فريد للتطبيق
  • المستخدم الذي بدأ التطبيق
  • معلومات عن محاولات إكمال الطلب
  • الحاويات المستخدمة من قِبل أي محاولة تطبيق معينة

تطبيقات وسجلات YARN

تعد سجلات التطبيق (وسجلات الحاوية المرتبطة) بالغة الأهمية في تصحيح أخطاء تطبيقات Hadoop التي تحدث المشكلات. يوفر YARN إطاراً رائعاً لجمع وتجميع وتخزين سجلات التطبيق باستخدام تجميع السجل.

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

/app-logs/<user>/logs/<applicationId>

المسار، user هو اسم المستخدم الذي بدأ التطبيق. applicationId هو المعرف الفريد المعين للتطبيق بواسطة YARN RM.

السجلات المجمعة غير قابلة للقراءة مباشرة، لأنها مكتوبة TFileبتنسيق ثنائي مفهرس بواسطة الحاوية. استخدم سجلات YARN ResourceManager أو أدوات CLI لعرض هذه السجلات كنص عادي للتطبيقات أو الحاويات ذات الأهمية.

سجلات الغزل في مجموعة ESP

يجب إضافة تكوينين إلى mapred-site المخصص في Ambari.

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

  2. من Ambari UI، انتقل إلى MapReduce2>Configs>>Custom mapred-site.

  3. أضف واحدة من مجموعات الخصائص التالية:

    المجموعة 1

    mapred.acls.enabled=true
    mapreduce.job.acl-view-job=*
    

    المجموعة 2

    mapreduce.job.acl-view-job=<user1>,<user2>,<user3>
    
  4. احفظ التغييرات وأعد تشغيل جميع الخدمات المتأثرة.

أدوات YARN CLI

  1. استخدم الأمر ssh للاتصال بنظام المجموعة الخاص بك. قم بتحرير الأمر التالي عن طريق استبدال CLUSTERNAME باسم نظام المجموعة الخاص بك، ثم أدخل الأمر :

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. أدرج جميع معرفات التطبيقات الخاصة بتطبيقات Yarn قيد التشغيل حالياً باستخدام الأمر التالي:

    yarn top
    

    لاحظ معرّف التطبيق من العمود 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 logs -applicationId <applicationId> -appOwner <user-who-started-the-application>
    yarn logs -applicationId <applicationId> -appOwner <user-who-started-the-application> -containerId <containerId> -nodeAddress <worker-node-address>
    

    حدد معلومات <applicationId> و<user-who-started-the-application> و<containerId> و<worker-node-address> عند تشغيل هذه أوامر.

أوامر عينة أخرى

  1. قم بتنزيل سجلات حاويات Yarn لجميع التطبيقات الرئيسية باستخدام الأمر التالي. تنشئ هذه الخطوة ملف السجل المسمى amlogs.txt بتنسيق نصي.

    yarn logs -applicationId <application_id> -am ALL > amlogs.txt
    
  2. قم بتنزيل سجلات حاوية Yarn لأحدث تطبيق رئيسي فقط باستخدام الأمر التالي:

    yarn logs -applicationId <application_id> -am -1 > latestamlogs.txt
    
  3. قم بتنزيل سجلات حاوية YARN لأول تطبيقين رئيسيين باستخدام الأمر التالي:

    yarn logs -applicationId <application_id> -am 1,2 > first2amlogs.txt
    
  4. قم بتنزيل جميع سجلات حاوية Yarn باستخدام الأمر التالي:

    yarn logs -applicationId <application_id> > logs.txt
    
  5. قم بتنزيل سجل حاوية الغزل لحاوية معينة باستخدام الأمر التالي:

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

واجهة ResourceManager المستخدم للغزل

تعمل واجهة مستخدم YARN ResourceManager على العقدة الرئيسية للمجموعة. يتم الوصول إليه من خلال واجهة مستخدم ويب Ambari. استخدم الخطوات التالية لعرض سجلات YARN:

  1. في متصفح الويب لديك، انتقل إلى https://CLUSTERNAME.azurehdinsight.net. استبدل CLUSTERNAME باسم مجموعة HDInsight الخاصة بك.

  2. من قائمة الخدمات على اليسار، حدد YARN.

    Apache Ambari Yarn service selected.

  3. من القائمة المنسدلة روابط سريعة، حدد واحداً من عُقد رأس نظام المجموعة ثم حدد ResourceManager Log.

    Apache Ambari Yarn quick links.

    يتم تقديمك بقائمة من الروابط إلى سجلات YARN.

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