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…