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

Oozie nedir? Ne işe yarar? Hadoop sistemindeki yeri nedir?

Hadoop en yaygın büyük veri platformu olarak piyasadaki öncülüğünü devam ettirmektedir. Hadoop ekosistemi sürekli büyümekte ve yeni ihtiyaçlar için yeni projeler ortaya çıkmakta mevcut projeler ise sürekli iyileşmekte ve gelişmektedir. Apache Oozie sürekli büyüyüp gelişen bu sistemde, yerine getirdiği rol ile önemini korumaktadır. Çünkü sistem büyüdükçe onu oluşturan unsurların görevlerini belli bir düzende yerine getirmek, zamanlamak ve koordine etmek ihtiyacı artmaktadır. ACID teoremine dayalı klasik sitemlerde şimdiye kadar gelişmiş unsurlar büyük veri dünyasında da gelişmektedir. Bu minvalde Hadoop ekosistemindeki işleri yönetmek için iş akışı yönetim ve zamanlama aracına (workflow management and scheduling) ihtiyaç vardır. İşte Oozie’nin ekosistemdeki yeri buradadır.

Oozie’nin Hadoop ekosistemi içindeki rolü; Hadoop işleri diye adlandırabileceğimiz bir çok veri aktarımı ve dosya işlemlerini programlaması ve bunların sonuçları hakkında bilgi vermesidir. Çünkü sistemde yapılan bir çok iş birbirine bağımlıdır. Başka bir deyişle bir görevin ürettiği çıktıyı başka bir görev girdi olarak kullanmaktadır. Örneğin bir seri MapReduce ve HDFS görevi verip bunları belli bir zaman çizelgesi ve ardışık düzene bağlayıp Oozie üzerinden çalışmasını sağlayabilirsiniz. Daha somut bir örnek ile Sqoop’un RDBMS’den Hive’a aktardığı tabloyu Spark kaynak veri olarak kullanıp makine öğrenmesi yapabilir ve sonuçlarını raporlamak maksadıyla kullanılan başka bir RDBMS veri tabanına Sqoop ile yazdırabilir. Yani Ooozie’ye Haoop’un orkestrasyon sistemi diyebiliriz. Hadoop yaratıcılarından birinin çocuğunun oyuncak filine verdiği addan geldiği için Oozie’nin geliştiricileri de Oozie’ye hem fil hem de Hint kültürüyle ilgisi olan Mahout(fil bakıcısı/şoförü) ismi vermeye niyet etmişler ancak Mahout kullanıldığından Birmanca’da benzer anlam taşıyan Oozie de karar kılmışlar.

Bu yazı serisi üç bölümden oluşacak ve basit bir java programını Oozie ile çalıştıracağız. Benim örnekler için kullanacağım Hadoop sistemi Cloudera’nın quickstart sandbox’u olacak. Ön gereksinimlerimiz sadece bir Hadoop ortamının olmasıdır. Bunun dışında zaten Oozie’ye ilgi duymuş birisi zaten Hadoop konusunda belli bir aşama kaydetmiştir diye düşünüyorum. En iyi öğrenme örnek üzerinden yaparak öğrenmedir prensibince tıraşı kısa kesip icraata başlıyorum.

Oozie ile örnek uygulama

Öncelikle Cloudera Manager’a tarayıcıdan erişip zaten kurulmuş bir şekilde gelen Oozie’yi çalıştıralım.

 

Oozie çalışıyor mu?

Oozie rolünün yüklü olduğu sunucuya bağlanıp (burada tek sunucu olduğundan quickstart.cludera) oozie hayatta mı sorusunu soralım:

[cloudera@quickstart ~]$ oozie admin -oozie http://quickstart.cloudera:11000/oozie -status
System mode: NORMAL
Oozie web arayüzüne erişmek

Oozie normal cevabını aldık. Oozie hayatta mı komutunda kullandığımız adresi tarayıcıya girdiğimizde Oozie’nin web arayüzüne erişmiş oluruz.

Oozie’nin versiyonunu nasıl öğrenirim? Benim Oozie’m kaç versiyon?

Bu da oldukça basit. Yukarıdaki komutun sadece sonunu değiştirip öğrenelim:

[cloudera@quickstart ~]$ oozie admin -oozie http://quickstart.cloudera:11000/oozie -version
Oozie server build version: 4.1.0-cdh5.7.0

Öğrenmeyi kolaylaştırmak için için Hadoop sistemine Oozie kurulurken Oozie kullanımında lazım olan örnek/alıştırma dosyalar da yükleniyor. Şimdi bu örnek dosyaları bulalım ve lokal kullanıcımızın dizininde bir yere kopyalayalım. Benim bu yazı dizisindeki kullanıcı adım cloudera.

Oozie örnek dosyalarını bulma
[cloudera@quickstart ~]$sudo find /usr -name "oozie*examples*"

Birçok arama sonucu arasından bize lazım olan sıkıştırılmış dosya

/usr/share/doc/oozie-4.1.0+cdh5.7.0+267/demo/oozie-examples.tar.gz

Önce nerede olduğumuza bakalım ve sonra oozie_ornekler isminde bir klasör oluşturalım:

[cloudera@quickstart ~]$ pwd
/home/cloudera
Oozie örnek dosyalarını yeni bir dizine taşıma

Klasör oluştur:

[cloudera@quickstart ~]$ sudo mkdir oozie_ornekler

Oluşan klasörün içine oozie-examples.tar.gz dosyasını kopyalama:

[cloudera@quickstart ~]$sudo cp /usr/share/doc/oozie-4.1.0+cdh5.7.0+267/demo/oozie-examples.tar.gz /home/cloudera/oozie_ornekler/

Kopyaladığımız dizini kontrol edelim:

[cloudera@quickstart ~]$ ls oozie_ornekler/
oozie-examples.tar.gz

Sıkıştırılmış dosyayı açalım:

[cloudera@quickstart oozie_ornekler]$ sudo tar xvzf oozie-examples.tar.gz
oozie örnek dosyalarını inceleme

Açılan dosyalarda neler var bakalım:

[cloudera@quickstart oozie_ornekler]$ ls
examples  oozie-examples.tar.gz
[cloudera@quickstart oozie_ornekler]$ ls examples/
apps  input-data  src

Önce tüm dosyalar examples klasörü içine açıldı. daha sonra examples içinde üç tana daha klasör gördük.
apps klasörü içine bakalım:

[cloudera@quickstart oozie_ornekler]$ ls -ltr examples/apps/
total 96
drwxr-xr-x 2 1106 4001 4096 Aug 26 02:06 streaming
drwxr-xr-x 2 1106 4001 4096 Aug 26 02:06 sqoop-freeform
drwxr-xr-x 2 1106 4001 4096 Aug 26 02:06 pig
drwxr-xr-x 3 1106 4001 4096 Aug 26 02:06 map-reduce
drwxr-xr-x 2 1106 4001 4096 Aug 26 02:06 hive2
drwxr-xr-x 2 1106 4001 4096 Aug 26 02:06 subwf
drwxr-xr-x 2 1106 4001 4096 Aug 26 02:06 ssh
drwxr-xr-x 3 1106 4001 4096 Aug 26 02:06 spark
drwxr-xr-x 2 1106 4001 4096 Aug 26 02:06 no-op
drwxr-xr-x 2 1106 4001 4096 Aug 26 02:06 distcp
drwxr-xr-x 3 1106 4001 4096 Aug 26 02:06 demo
drwxr-xr-x 3 1106 4001 4096 Aug 26 02:06 custom-main
drwxr-xr-x 2 1106 4001 4096 Aug 26 02:06 cron
drwxr-xr-x 3 1106 4001 4096 Aug 26 02:06 aggregator
drwxr-xr-x 2 1106 4001 4096 Aug 26 02:06 shell
drwxr-xr-x 3 1106 4001 4096 Aug 26 02:06 java-main
drwxr-xr-x 2 1106 4001 4096 Aug 26 02:06 hcatalog
drwxr-xr-x 3 1106 4001 4096 Aug 26 02:06 hadoop-el
drwxr-xr-x 2 1106 4001 4096 Aug 26 02:06 cron-schedule
drwxr-xr-x 2 1106 4001 4096 Aug 26 02:06 bundle
drwxr-xr-x 2 1106 4001 4096 Aug 26 02:06 sqoop
drwxr-xr-x 2 1106 4001 4096 Aug 26 02:06 sla
drwxr-xr-x 2 1106 4001 4096 Aug 26 02:06 hive
drwxr-xr-x 3 1106 4001 4096 Aug 26 02:06 datelist-java-main

Yukarıdaki listeyi incelediğimizde Oozie ile Hadoop platformunda ne tür işleri idare edebileceğimiz hakkında fikir edinebiliriz. Bir klasörün içine bakalım (spark olsun) neler varmış:

[cloudera@quickstart oozie_ornekler]$ ls -ltr examples/apps/spark/
total 12
-rw-r--r-- 1 1106 4001 1920 Mar 23  2016 workflow.xml
-rw-r--r-- 1 1106 4001 1019 Mar 23  2016 job.properties
drwxr-xr-x 2 root root 4096 Aug 26 02:06 lib

Lib diye ayrı bir klasör daha çıktı onun da içine bakalım ne varmış?:

[cloudera@quickstart oozie_ornekler]$ ls -ltr examples/apps/spark/lib/
total 28
-rw-r--r-- 1 1106 4001 27652 Mar 23  2016 oozie-examples.jar

jar dosyamız varmış. Buradaki jar dosyası Oozie örneğini kullanmak için derlenmiş bir uygulamaya ait. Bir üst dizindeki workflow.xml adından da anlaşılacağı üzere iş akışı ile yapılan konfigürasyonların tutulduğu xml dosyasıdır.

Şimdiye kadar examples dosyasının içinde neler varmış göz attık. Yazı daha fazla uzamasın ikinci bölümde kaldığımız yerden devam edeceğiz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Barkod Etiketi üretimi yapan firmaların işi ciddi bir iştir. Bu anlamda sizin de hangi firmayla çalışma yatığınız çok büyük önem taşır. Kullanım alanı sınırsızdır. Her alanda ve her sektörde bu etiketlere ihtiyaç duyulur. Etiket çeşitleri ve Barkod etiketleri, seri üretimle hazırlanmaktadır. Etiketler ahşap, plastik, metal ya da cam gibi ambalajlı ürünlerin üzerilerine ugulanır.
Mide botoksu midenin belirli yerlerine botoks maddesi enjekte etme suretiyle midedeki kasların çalışmasını sınırlandırmayı ve sayede midenin gıdaları sindirim sürecini yavaşlatarak buna bağlı olan açlık-tokluk hissi süresinin de uzatılmasını amaçlayan ameliyatsız kolay kilo verme tedavisidir. Botoks uygulanırken, midenin detaylı şekilde içerden görüntülenmesini sağlayan endoskopi uygulaması ile gerçekleştirilir. Bu sayede hastaya sadece gastroskpik uygulaması kadar bir rahatsızlık olur. Özellikle diyet programlarına ve düzenli egzersizlere uymakta zorlanan ve buna bağlı olarak da obeziteye yakalanan, bu yüzdende obezitenin sebep olduğu çeşitli sağlık sorunları olan kişiler için mide botoksu bir devrim niteliğindedir ve son yıllarda ülkemizde yaygın olarak kullanılmaktadır.
En güzel cami halısı dış avlusu olup bunun çevresi pencereli duvarlarla çevrilidir. Bu avulya 3 ü cephede olmak üzere, 8 kapıdan girilir. Şadırvan avlusu, 26 adet granit mermer ve porfir sütuna oturtulmuş, 30 kubbeyle çevrili geniş alandır. Mermer döşemeli bu geniş sahanın ortasında 6 mermer sütunlu şadırvan, sahanın azametini gösterir. Şadırvanın kemerleri, kabartma olarak Rumi geçmelerle ve köşebentleri, kabartma, lale ve karanfil motifleriyle bezelidir.
En güzel cami halısı dış avlusu olup bunun çevresi pencereli duvarlarla çevrilidir. Bu avulya 3 ü cephede olmak üzere, 8 kapıdan girilir. Şadırvan avlusu, 26 adet granit mermer ve porfir sütuna oturtulmuş, 30 kubbeyle çevrili geniş alandır. Mermer döşemeli bu geniş sahanın ortasında 6 mermer sütunlu şadırvan, sahanın azametini gösterir. Şadırvanın kemerleri, kabartma olarak Rumi geçmelerle ve köşebentleri, kabartma, lale ve karanfil motifleriyle bezelidir.
Termal Etiket Eco Termal etiket, yüzeyinde hami bir katman bulunmayan miktar çeşididir. Kumbara üzerine termal lamine edilmesi sonucunda oluşmaktadır. Kullanılan barkod yazıcının baş bölgesindeki ısı beraberlik birlikte termal sıvılaşma özelliği gösterir dahi bu şekilde Eco termal etiketin üzerine baskı alınır. Bu termal etiketlere yumruk termal olarak (ısıyla) yapılır ve yerde yüzden ribon kullanılmaz. Ribon kullanımı olmadığı için tahakküm maliyeti sıfıra yakındır.
Dijital Baskı ve baskı etiketi teknolojileri geliştikçe firmaların büyük ebatlı etiket ihtiyaçlarına da dijital çözümler sunulmaya başlamıştır. Böylece, birbirinden canlı renklerin ve kusursuz çizgilerin hakimiyetindeki büyük ebatlı dijital baskı etkileri; kurumsal firmaların reklam kampanyalarındaki en iddialı unsurlarına dönüşmüştür.