استكشاف أخطاء Apache Oozie في Azure HDInsight وإصلاحها

باستخدام Apache Oozie UI، يمكنك عرض سجلات Oozie. تحتوي واجهة مستخدم Oozie أيضاً على ارتباطات إلى سجلات JobTracker لمهام MapReduce التي بدأها سير العمل. يجب أن يكون نمط استكشاف الأخطاء وإصلاحها:

  1. اعرض الوظيفة في واجهة مستخدم Oozie على الويب.

  2. إذا كان هناك خطأ أو فشل في إجراء معين، فحدد الإجراء لمعرفة ما إذا كان الحقل Error Message يوفر مزيداً من المعلومات حول الفشل.

  3. إذا كان متاحاً، استخدم عنوان URL من الإجراء لعرض مزيد من التفاصيل، مثل سجلات JobTracker، للإجراء.

فيما يلي بعض الأخطاء المحددة التي قد تصادفك وكيفية حلها.

JA009: لا يمكن تكوين نظام المجموعة

مشكلة

تتغير حالة الوظيفة إلى معلق. تُظهر تفاصيل الوظيفة الحالة RunHiveScript كـ START_MANUAL. يؤدي تحديد الإجراء إلى عرض رسالة الخطأ التالية:

JA009: Cannot initialize Cluster. Please check your configuration for map

السبب

لا تحتوي عناوين موقع موقع موقع تخزين Azure Blob المستخدمة في ملف job.xml على حاوية التخزين أو اسم حساب التخزين. يجب أن يكون تنسيق عنوان تخزين Blob هو wasbs://containername@storageaccountname.blob.core.windows.net.

الدقة

قم بتغيير عناوين تخزين Blob التي تستخدمها المهمة.


JA002: لا يُسمح لـ Oozie بانتحال شخصية <USER>

مشكلة

تتغير حالة الوظيفة إلى معلق. تُظهر تفاصيل الوظيفة الحالة RunHiveScript كـ START_MANUAL. إذا حددت الإجراء، فستظهر رسالة الخطأ التالية:

JA002: User: oozie is not allowed to impersonate <USER>

السبب

لا تسمح إعدادات الأذونات الحالية لـ Oozie بانتحال شخصية حساب المستخدم المحدد.

الدقة

يمكن أن ينتحل Oozie صفة المستخدمين في المجموعة users. استخدم groups USERNAME لمشاهدة المجموعات التي يكون حساب المستخدم عضواً فيها. إذا لم يكن المستخدم عضواً في مجموعة users، فاستخدم الأمر التالي لإضافة المستخدم إلى المجموعة:

sudo adduser USERNAME users

ملاحظة

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


خطأ قاذفة (Sqoop)

مشكلة

تتغير حالة الوظيفة إلى KILLED. تُظهر تفاصيل الوظيفة الحالة RunSqoopExport على أنها خطأ. إذا حددت الإجراء، فستظهر رسالة الخطأ التالية:

Launcher ERROR, reason: Main class [org.apache.oozie.action.hadoop.SqoopMain], exit code [1]

السبب

Sqoop غير قادر على تحميل برنامج تشغيل قاعدة البيانات المطلوب للوصول إلى قاعدة البيانات.

الدقة

عند استخدام Sqoop من وظيفة Oozie، يجب عليك تضمين برنامج تشغيل قاعدة البيانات مع الموارد الأخرى، مثل workflow.xml، الذي تستخدمه الوظيفة. قم أيضاً بالإشارة إلى الأرشيف الذي يحتوي على برنامج تشغيل قاعدة البيانات من قسم <sqoop>...</sqoop> في workflow.xml.

على سبيل المثال، بالنسبة لمثال الوظيفة من استخدام مهام سير عمل Hadoop Oozie، يمكنك استخدام الخطوات التالية:

  1. انسخ ملف mssql-jdbc-7.0.0.jre8.jar إلى دليل / tutorials/useoozie :

    hdfs dfs -put /usr/share/java/sqljdbc_7.0/enu/mssql-jdbc-7.0.0.jre8.jar /tutorials/useoozie/mssql-jdbc-7.0.0.jre8.jar
    
  2. قم بتعديل workflow.xml لإضافة XML التالي في سطر جديد أعلاه </sqoop>:

    <archive>mssql-jdbc-7.0.0.jre8.jar</archive>
    

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

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

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

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

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