Apache Oozie Nedir? Nasıl Kullanılır? Örnek Java Uygulaması Bölüm-2/3
Oozie yazı dizimizin ikincisine devam ediyoruz. İlk yazıda Oozie hakkında bilgi vermiş, Oozie servisini başlatmış ve examples dosyasını incelemiştik.
Şimdi java main örneğini uygulayalım. Bakalım java-main dizini altında neler var neler yok:
[cloudera@quickstart oozie_ornekler]\$ cd examples/apps/java-main/ [cloudera@quickstart java-main]\$ ls -ltr total 12 -rw-r--r-- 1 1106 4001 1631 Mar 23 2016 workflow.xml -rw-r--r-- 1 1106 4001 977 Mar 23 2016 job.properties drwxr-xr-x 2 root root 4096 Aug 26 02:06 lib
lib klasörü altında hatırlasanız bir önceki yazıda çalışacak uygulamanın jar dosyası vardı. xml dosyasının içeriği aşağıdadır. xml dosyasının kodlarını doğrudan buraya yapıştırmadım. Notepad++ dosyasının içine koydum ve .xml uzantısıyla alakasız farklı bir yere kaydettim ve onun ekran görüntüsünü buraya koydum. Bunu sizin yapmanıza gerek yok. içine bakalım:
job.properties dosyasının içine girip bakalım:
[cloudera@quickstart java-main]\$ cat job.properties # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # nameNode=hdfs://localhost:8020 jobTracker=localhost:8021 queueName=default examplesRoot=examples oozie.wf.application.path=\${nameNode}/user/\${user.name}/\${examplesRoot}/apps/java-main
Yukarıdaki açıklama satırlarını (# ile başlayanlar) geçersek burada beş adet özellik ve aldığı değerler görünüyor. Şimdi bu değerler örnek olarak verildiği için kendi ortamımıza uygun şekilde değiştirmemiz gerekir. nameNode adresimiz aynı mı bakalım? nameNode adresini aşağıdaki görseller yardımıyla Cloudera Manager üzerinden öğrenelim. Başka yöntemlerle de öğrenilebilir. Örneğin ilgili xml dosyasına erişip bakmak gibi.
Cloudera Manager ana sayfayı açıyoruz (http://quickstart.cloudera:7180/cmf/home) 1 numarada Hosts linkine tıklıyoruz.
Tüm roller tek sunucuda toplandığı için quickstart.cloudera sunucusunda 2 numarada görünen 30 Roles okuna tıklıyoruz.
3 numaralı şekilde HDFS NameNode rolü linkine tıklıyoruz.
4 numarada Configuration sekmesine tıklıyoruz. Çıkan pencerede arama formuna 5 numarada görüldüğü gibi adsress yazıyoruz. Sonuçlar süzülüyor ve biz şekil 6 ve 7’den NameNode portunun 8020 olduğunu öğreniyoruz. 8 numarada zaten sunucu adresi belli. Öyleyse bizim nameNode tam adresi hdfs://quickstart.cloudera:8020
.
Gelelim jobtracker özelliğine. Burada jobtracker olması ilginç çünkü bu kavram Hadoop versiyon 1 ile alakalı, Hadoop 2’ye geçeli çok oldu ve konsept biraz değişti. Hadoop 2’de YARN ile birlikte MapReduce sadece kendi işine bakmaya başladı ve kaynak yönetimi ile veri işleme işleri birbirinden ayrıldı. Kaynak yönetimi artık resourcemanager ile yapılıyor, MapReduce’lar bir de kafayı bu işlere yormuyor. Neyse adamlar buraya jobtracker yazmış öyle devam edeceğiz. Çözüm olarak özellik adı jobtracker kalacak ancak biz onun karşısına resourcemanager adres ve port numarasını yazacağız. Cloudera Manager ana sayfasından başlayarak aşağıdaki görsellerin yardımı ile jobtracker karşısına yazacağımız resourcemanager adresini öğrenelim:
Cloudera Manager anasayfadan (http://quickstart.cloudera:7180/cmf/home) 1 numarada sol menüde görülen YARN(MR2 included) servisine tıklıyoruz.
2 numaralı Configuration sekmesine tıklayıp arama formuna resourcemanager.address giriyoruz ve sonuçlar süzülüyor. 4 ve 5 numaradan port numarasını 6 numaradan da sunucu adresini alıyoruz. jobtracker için girilecek adresimiz son olarak quickstart.cloudera:8032
Diğer iki özelliğimiz olan queuName ve examplesRoot aynı şekilde kalacak. Bu yazımızı da çok uzatmadan burada kesiyorum. Üçüncü yazımızla devam edeceğiz.