البرنامج التعليمي لـ Apache Oozie: ما هو، سير العمل، مثال - Hadoop

ما هو أوزي؟

Apache Oozie هو برنامج جدولة سير العمل لـ Hadoop. إنه نظام يدير سير عمل الوظائف التابعة. هنا، يُسمح للمستخدمين بإنشاء الرسوم البيانية غير الدورية الموجهة من سير العمل، والتي يمكن تشغيلها بالتوازي والتتابع في Hadoop.

وهو يتألف من جزأين:

  • محرك سير العمل: مسؤولية محرك سير العمل هي تخزين وتشغيل مهام سير العمل المكونة من وظائف Hadoop، على سبيل المثال MapReduce وPig وHive.
  • محرك المنسق: يقوم بتشغيل مهام سير العمل بناءً على جداول زمنية محددة مسبقًا وتوافر البيانات.

Oozie قابل للتطوير ويمكنه إدارة التنفيذ في الوقت المناسب لآلاف من عمليات سير العمل (تتكون كل منها من عشرات الوظائف) في مجموعة Hadoop.

اوزي

Oozie مرن للغاية أيضًا. يمكن للمرء بسهولة بدء المهام وإيقافها وتعليقها وإعادة تشغيلها. يجعل Oozie من السهل جدًا إعادة تشغيل مهام سير العمل الفاشلة. يمكن للمرء أن يفهم بسهولة مدى صعوبة اللحاق بالوظائف المفقودة أو الفاشلة بسبب التوقف أو الفشل. حتى أنه من الممكن تخطي عقدة فاشلة معينة.

كيف يعمل أوزي؟

يعمل Oozie كخدمة في المجموعة ويقوم العملاء بإرسال تعريفات سير العمل فورًا أو later معالجة.

يتكون سير عمل Oozie من عقد العمل و عقد التحكم في التدفق.

An عقدة العمل يمثل مهمة سير عمل، على سبيل المثال، نقل الملفات إلى HDFS، أو تشغيل MapReduce، أو Pig أو خلية النحل الوظائف، أو استيراد البيانات باستخدام Sqoop أو تشغيل برنامج نصي shell لبرنامج مكتوب بلغة Java.

A عقدة التحكم في التدفق يتحكم في تنفيذ سير العمل بين الإجراءات بواسطة allowing بنيات مثل المنطق الشرطي حيث يمكن اتباع فروع مختلفة اعتمادًا على نتيجة عقدة الإجراء السابقة.

عقدة البداية, عقدة النهايةو عقدة الخطأ تندرج تحت هذه الفئة من العقد.

عقدة البداية, يعين بداية مهمة سير العمل.

عقدة النهاية, إشارات نهاية المهمة.

عقدة الخطأ يحدد حدوث خطأ ورسالة الخطأ المقابلة المراد طباعتها.

في نهاية تنفيذ سير العمل، يستخدم Oozie رد اتصال HTTP لتحديث العميل بحالة سير العمل. الدخول إلى عقدة الإجراء أو الخروج منها قد يؤدي أيضًا إلى تشغيل رد الاتصال.

مثال على مخطط سير العمل

مثال على مخطط سير العمل

تعبئة ونشر تطبيق سير عمل Oozie

يتكون تطبيق سير العمل من تعريف سير العمل وجميع الموارد المرتبطة به مثل ملفات MapReduce Jar والبرامج النصية Pig وما إلى ذلك. تحتاج التطبيقات إلى اتباع بنية دليل بسيطة ويتم نشرها على HDFS حتى يتمكن Oozie من الوصول إليهم.

يظهر مثال على بنية الدليل أدناه-

<name of workflow>/</name>
??? lib/
? ??? hadoop-examples.jar
??? workflow.xml

من الضروري الاحتفاظ بـ Workflow.xml (ملف تعريف سير العمل) في دليل المستوى الأعلى (الدليل الأصلي باسم سير العمل). يحتوي دليل Lib على ملفات Jar التي تحتوي على فئات MapReduce. يمكن إنشاء تطبيق سير العمل المتوافق مع هذا التخطيط باستخدام أي أداة بناء، على سبيل المثال، Ant أو Maven.

يجب نسخ مثل هذا البناء إلى HDFS باستخدام أمر، على سبيل المثال –

% hadoop fs -put hadoop-examples/target/<name of workflow dir> name of workflow

خطوات تشغيل مهمة سير عمل Oozie

في هذا القسم، سنرى كيفية تشغيل مهمة سير العمل. لتشغيل هذا، سوف نستخدم أداة سطر الأوامر Oozie (برنامج عميل يتصل بخادم Oozie).

1. قم بتصدير متغير البيئة OOZIE_URL الذي يخبر أمر oozie بخادم Oozie الذي يجب استخدامه (هنا نستخدم واحدًا يعمل محليًا):

% export OOZIE_URL="http://localhost:11000/oozie"

2. تشغيل مهمة سير العمل باستخدام-

% oozie job -config ch05/src/main/resources/max-temp-workflow.properties -run

يشير خيار -config إلى ملف محلي جافا يحتوي ملف الخصائص على تعريفات للمعلمات في ملف XML لسير العمل، بالإضافة إلى oozie.wf.application.path، الذي يخبر Oozie بموقع تطبيق سير العمل في HDFS.

مثال لمحتويات ملف الخصائص:

nameNode=hdfs://localhost:8020
jobTracker=localhost:8021
oozie.wf.application.path=${nameNode}/user/${user.name}/<name of workflow>

3. احصل على حالة سير العمل الوظيفي-

يمكن رؤية حالة مهمة سير العمل باستخدام الأمر الفرعي "job" مع خيار "-info" وتحديد معرف الوظيفة بعد "-info".

e.g., % oozie job -info <job id>

يُظهر الإخراج الحالة التي هي قيد التشغيل أو القتل أو النجاح.

4. يمكن رؤية نتائج تنفيذ سير العمل بنجاح باستخدام أمر Hadoop مثل-

% hadoop fs -cat <location of result>

لماذا استخدام أوزي؟

الغرض الرئيسي من استخدام Oozie هو إدارة أنواع مختلفة من الوظائف التي تتم معالجتها في نظام Hadoop.

يتم تحديد التبعيات بين المهام من قبل المستخدم في شكل رسوم بيانية غير دورية موجهة. يستهلك Oozie هذه المعلومات ويتولى تنفيذها بالترتيب الصحيح كما هو محدد في سير العمل. وبهذه الطريقة يتم حفظ وقت المستخدم لإدارة سير العمل بالكامل. بالإضافة إلى ذلك، لدى Oozie بند لتحديد تكرار تنفيذ وظيفة معينة.

مميزات اوزي

  • يحتوي Oozie على واجهة برمجة تطبيقات العميل وواجهة سطر الأوامر التي يمكن استخدامها لتشغيل المهمة والتحكم فيها ومراقبتها من تطبيق Java.
  • باستخدام واجهات برمجة تطبيقات خدمة الويب الخاصة بها، يمكن للمرء التحكم في الوظائف من أي مكان.
  • لدى Oozie إمكانية تنفيذ المهام التي من المقرر تشغيلها بشكل دوري.
  • Oozie لديه شرط لإرسال البريد الإلكترونيmail الإخطارات عند الانتهاء من الوظائف.