Tutorial Apache Oozie: Apa itu, Alur Kerja, Contoh – Hadoop

Apa itu OOZIE?

Apache Oozie adalah penjadwal alur kerja untuk Hadoop. Ini adalah sistem yang menjalankan alur kerja pekerjaan yang bergantung. Di sini, pengguna diizinkan untuk berkreasi Grafik Acyclic Berarah alur kerja, yang dapat dijalankan secara paralel dan berurutan di Hadoop.

Ini terdiri dari dua bagian:

  • Mesin alur kerja: Tanggung jawab mesin alur kerja adalah untuk menyimpan dan menjalankan alur kerja yang terdiri dari pekerjaan Hadoop misalnya, MapReduce, Pig, Hive.
  • Mesin koordinator: Ini menjalankan pekerjaan alur kerja berdasarkan jadwal yang telah ditentukan dan ketersediaan data.

Oozie dapat diskalakan dan dapat mengelola eksekusi ribuan alur kerja secara tepat waktu (masing-masing terdiri dari lusinan pekerjaan) dalam cluster Hadoop.

OOZIE

Oozie juga sangat fleksibel. Seseorang dapat dengan mudah memulai, menghentikan, menangguhkan, dan menjalankan kembali pekerjaan. Oozie membuatnya sangat mudah untuk menjalankan kembali alur kerja yang gagal. Seseorang dapat dengan mudah memahami betapa sulitnya mengejar pekerjaan yang terlewat atau gagal karena downtime atau kegagalan. Bahkan dimungkinkan untuk melewati node tertentu yang gagal.

Bagaimana cara kerja OOZIE?

Oozie berjalan sebagai layanan dalam kluster dan klien mengirimkan definisi alur kerja untuk pemrosesan segera atau selanjutnya.

Alur kerja Oozie terdiri dari node tindakan dan node aliran kontrol.

An simpul tindakan mewakili tugas alur kerja, misalnya, memindahkan file ke HDFS, menjalankan MapReduce, Pig atau Sarang lebah pekerjaan, mengimpor data menggunakan Sqoop atau menjalankan skrip shell dari program yang ditulis Java.

A simpul aliran kontrol mengontrol pelaksanaan alur kerja antara tindakan dengan mengizinkan konstruksi seperti logika kondisional di mana cabang yang berbeda dapat diikuti tergantung pada hasil simpul tindakan sebelumnya.

Mulai Node, Node Akhir, dan Node Kesalahan termasuk dalam kategori node ini.

Mulai Node, menunjuk awal pekerjaan alur kerja.

simpul akhir, menandakan berakhirnya pekerjaan.

Node Kesalahan menunjukkan terjadinya kesalahan dan pesan kesalahan terkait yang akan dicetak.

Di akhir eksekusi alur kerja, panggilan balik HTTP digunakan oleh Oozie untuk memperbarui klien dengan status alur kerja. Masuk atau keluar dari simpul tindakan juga dapat memicu panggilan balik.

Contoh Diagram Alur Kerja

Contoh Diagram Alur Kerja

Mengemas dan menerapkan aplikasi alur kerja Oozie

Aplikasi alur kerja terdiri dari definisi alur kerja dan semua sumber daya terkait seperti file Jar MapReduce, skrip Pig, dll. Aplikasi harus mengikuti struktur direktori sederhana dan diterapkan ke HDFS sehingga Oozie dapat mengaksesnya.

Contoh struktur direktori ditunjukkan di bawah ini-

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

Workflow.xml (file definisi alur kerja) harus disimpan di direktori tingkat atas (direktori induk dengan nama alur kerja). Direktori Lib berisi file Jar yang berisi kelas MapReduce. Aplikasi alur kerja yang sesuai dengan tata letak ini dapat dibangun dengan alat pembangunan apa pun, misalnya Ant atau Maven.

Build seperti itu perlu disalin ke HDFS menggunakan perintah, misalnya –

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

Langkah-langkah untuk Menjalankan pekerjaan alur kerja Oozie

Di bagian ini, kita akan melihat cara menjalankan pekerjaan alur kerja. Untuk menjalankannya, kita akan menggunakan alat baris perintah Oozie (program klien yang berkomunikasi dengan server Oozie).

1. Ekspor variabel lingkungan OOZIE_URL yang memberi tahu perintah oozie server Oozie mana yang akan digunakan (di sini kami menggunakan server yang berjalan secara lokal):

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

2. Jalankan pekerjaan alur kerja menggunakan-

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

Opsi -config mengacu pada lokal Java file properti yang berisi definisi parameter dalam file XML alur kerja, serta oozie.wf.application.path, yang memberi tahu Oozie lokasi aplikasi alur kerja di HDFS.

Contoh isi file properti:

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

3. Dapatkan status pekerjaan alur kerja-

Status pekerjaan alur kerja dapat dilihat menggunakan subperintah 'pekerjaan' dengan opsi '-info' dan menentukan id pekerjaan setelah '-info'.

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

Output menunjukkan status antara BERJALAN, TERBUNUH, atau BERHASIL.

4. Hasil eksekusi alur kerja yang sukses dapat dilihat menggunakan perintah Hadoop seperti-

% hadoop fs -cat <location of result>

Mengapa menggunakan Oozie?

Tujuan utama penggunaan Oozie adalah untuk mengelola berbagai jenis pekerjaan yang diproses dalam sistem Hadoop.

Ketergantungan antar pekerjaan ditentukan oleh pengguna dalam bentuk Grafik Asiklik Terarah. Oozie menggunakan informasi ini dan menangani eksekusinya dalam urutan yang benar seperti yang ditentukan dalam alur kerja. Dengan begitu waktu pengguna untuk mengelola alur kerja lengkap dapat dihemat. Selain itu, Oozie memiliki ketentuan untuk menentukan frekuensi pelaksanaan pekerjaan tertentu.

Fitur Oozie

  • Oozie memiliki API klien dan antarmuka baris perintah yang dapat digunakan untuk meluncurkan, mengontrol, dan memantau pekerjaan Java aplikasi.
  • Dengan menggunakan API Layanan Web, seseorang dapat mengontrol pekerjaan dari mana saja.
  • Oozie memiliki ketentuan untuk melaksanakan pekerjaan yang dijadwalkan untuk dijalankan secara berkala.
  • Oozie memiliki ketentuan untuk mengirim pemberitahuan email setelah pekerjaan selesai.