استكشاف أخطاء Apache Oozie في Azure HDInsight وإصلاحها
باستخدام Apache Oozie UI، يمكنك عرض سجلات Oozie. تحتوي واجهة مستخدم Oozie أيضاً على ارتباطات إلى سجلات JobTracker لمهام MapReduce التي بدأها سير العمل. يجب أن يكون نمط استكشاف الأخطاء وإصلاحها:
اعرض الوظيفة في واجهة مستخدم Oozie على الويب.
إذا كان هناك خطأ أو فشل في إجراء معين، فحدد الإجراء لمعرفة ما إذا كان الحقل Error Message يوفر مزيداً من المعلومات حول الفشل.
إذا كان متاحاً، استخدم عنوان 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، يمكنك استخدام الخطوات التالية:
انسخ ملف
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
قم بتعديل
workflow.xml
لإضافة XML التالي في سطر جديد أعلاه</sqoop>
:<archive>mssql-jdbc-7.0.0.jre8.jar</archive>
الخطوات التالية
إذا لم تشاهد مشكلتك أو لم تتمكن من حلها، فتفضل بزيارة إحدى القنوات التالية للحصول على مزيد من الدعم:
احصل على إجابات من خبراء Azure عبر دعم مجتمع Azure.
تواصل مع @AzureSupport - حساب Microsoft Azure الرسمي لتحسين تجربة العملاء. توصيل الموارد المناسبة إلى مجتمع Azure: الإجابات، والدعم، والخبراء.
إذا كنت بحاجة إلى مزيد من المساعدة، فيمكنك إرسال طلب دعم من مدخل Microsoft Azure. حدد Support من شريط القائمة أو افتح المحور Help + support. لمزيد من المعلومات التفصيلية، راجع كيفية إنشاء طلب دعم Azure. يتم تضمين الوصول إلى إدارة الاشتراك ودعم الفواتير في اشتراك Microsoft Azure، ويتم توفير الدعم التقني من خلال إحدى خطط دعم Azure.