Apache Oozie Nedir? Nasıl Kullanılır? Örnek Java Uygulaması Bölüm-3/3

İkinci yazımızın hemen ardından Apache Oozie yazımızın üçüncüsüne devam ediyoruz.

Yazı uzayınca hafıza körelmiş olabilir Önce hangi dizindeyiz pwd ile bakalım:

[cloudera@quickstart java-main]\$ pwd
/home/cloudera/oozie_ornekler/examples/apps/java-main
Job.properties dosyasını düzenlemek

Şimdi nano editörü ile job.properties dosyasının içine girip değişikliklerimizi yapalım. (Siz vi, vim vb. başka editör kullanabilirsiniz)

[cloudera@quickstart java-main]\$ sudo nano job.properties
nameNode=hdfs://quickstart.cloudera:8020
jobTracker=quickstart.cloudera:8032
queueName=default
examplesRoot=examples

oozie.wf.application.path=\${nameNode}/user/\${user.name}/\${examplesRoot}/apps/java-main

Beşinci özelliğimiz olan en alt satırdaki oozie.wf.application.path dan bahsetmek istiyorum. Bu beşinci özellik aslında diğer dört özelliği kullanarak dosya yolu oluşturuyor.

\${nameNode}/user/\${user.name}/\${examplesRoot}/apps/java-main

Bu özellik mevcut konfigürasyona göre şu şekilde bir değer alacaktır:

hdfs://quickstart.cloudera:8020/user/cloudera/examples/apps/java-main

Buradan herhalde hazırladığımız bu dosyaları HDFS’e kopyalamamız gerektiğini anlamışsınızdır 🙂

Examples klasörünü HDFS’e kopyalamak

Öncelikle hdfs://quickstart.cloudera:8020/user/cloudera/examples adresi var mı yok mu kontrol edelim.

[cloudera@quickstart java-main]\$ hdfs dfs -ls /user/cloudera/examples
ls: `/user/cloudera/examples': No such file or directory

Beklediğimiz gibi “böyle bir dizin yok” diyor. Öyleyse lokal dizinde examples klasörünün dışına çıkalım ve examples klasörünü olduğu gibi hdfs’de /user/cloudera/examples adresine kopyalayalım. Burada farklı bir adres verme şansımız yok çünkü job.properties dosyasında işaret edilen hdfs adresi budur. Aksi halde oozie görevi hata verecektir.

[cloudera@quickstart java-main]\$ cd ..
[cloudera@quickstart apps]\$ cd ..
[cloudera@quickstart examples]\$ cd ..
[cloudera@quickstart oozie_ornekler]\$ hdfs dfs -put examples/ /user/cloudera/examples

kopyalama başarılı mı? kontrol edelim:

[cloudera@quickstart oozie_ornekler]\$ hdfs dfs -ls /user/cloudera/examples
Found 3 items
drwxr-xr-x   - cloudera cloudera          0 2017-08-26 05:22 /user/cloudera/examples/apps
drwxr-xr-x   - cloudera cloudera          0 2017-08-26 05:22 /user/cloudera/examples/input-data
drwxr-xr-x   - cloudera cloudera          0 2017-08-26 05:22 /user/cloudera/examples/src

Başarılı bir şekilde kopyalanmış.
Evet şimdi herşey tamam görünüyor.

İlk Oozie görevini başlatmak

Şimdi geldi görevi çalıştırmaya.
Lokal dizinde oozie_ornekler kalsörünün de dışına çıkıp görevimizi çalıştıralım.

[cloudera@quickstart oozie_ornekler]\$ cd ..
[cloudera@quickstart ~]\$ pwd
/home/cloudera
[cloudera@quickstart ~]\$ oozie job -oozie http://quickstart.cloudera:11000/oozie -config /home/cloudera/oozie_ornekler/examples/apps/java-main/job.properties -run
job: 0000000-170825203534617-oozie-oozi-W

Adress; oozie rolünün bulunduğu sunucunun adres ve portu, -config; lokal dizindeki job.properties dosyası, en son -run ise icraata geç, görevi başlat parametresidir.
Sonuç olarak bize job: 0000000-170825203534617-oozie-oozi-W görev numarası döndürdü. Bu görev numarası ile görev hakkında bilgi alabiliriz.

Oozie görevinin sonucunu görme
[cloudera@quickstart ~]\$ oozie job -oozie http://quickstart.cloudera:11000/oozie -info 0000000-170825203534617-oozie-oozi-W
Job ID : 0000000-170825203534617-oozie-oozi-W
------------------------------------------------------------------------------------------------------------------------------------
Workflow Name : java-main-wf
App Path      : hdfs://quickstart.cloudera:8020/user/cloudera/examples/apps/java-main
Status        : SUCCEEDED
Run           : 0
User          : cloudera
Group         : -
Created       : 2017-08-26 12:35 GMT
Started       : 2017-08-26 12:35 GMT
Last Modified : 2017-08-26 12:35 GMT
Ended         : 2017-08-26 12:35 GMT
CoordAction ID: -

Actions
---------------------------------------------------------------------------------
ID                         Status    Ext ID                 Ext Status Err Code
---------------------------------------------------------------------------------
0000000-170825203534617
-oozie-oozi-W@:start:       OK        -                      OK         -
---------------------------------------------------------------------------------
0000000-170825203534617
-oozie-oozi-W@java-node     OK        job_1502609949360_0001 SUCCEEDED  -
---------------------------------------------------------------------------------
0000000-170825203534617
-oozie-oozi-W@end           OK        -                      OK         -
---------------------------------------------------------------------------------
Oozie görevlerini web arayüzünden izlemek

Yukarıdaki bilgilerden görevin başarıyla tamamlandığını görebiliyoruz. Resource manager web arayüzünden bu görev ile bilgi alabiliriz. quickstart.cloudera:8088 adresine gidelim.

Ayrıca http://quickstart.cloudera:11000/oozie/ adresinden Done Jobs sekmesinden az önceki görev hakkında da bilgi alabiliriz.

Evet şimdi diyeceksiniz ki üç yazıda baya uğraştık ama çalıştırdığımız bu iş ne yaptı. Bu “hello world” tarzında basit bir java uygulamasıydı. Müteakip Oozie yazılarında başka türden görevlerin örneklerini de yapacağız. Bir sonraki sefere kadar veriyle kalın…

Yazar Hakkında
Toplam 180 yazı
Erkan ŞİRİN
Erkan ŞİRİN
10 yılı aşkın süredir yurtiçi ve yurtdışında sektörde büyük veri mühendisliği, platform yönetimi ve makine öğrenmesi ile ilgili çalışmalar yürütmekte ve aynı zamanda birçok kurum ve şirkete danışmanlık ve eğitimler vermektedir. Çalışma alanları: Data ve MLOps platformları, gerçek zamanlı veri işleme, değişen veriyi yakalama (CDC) ve Lakehouse.
Yorumlar (Yorum yapılmamış)

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

×

Bir Şeyler Ara