Apache Apex – Bir Giriş
Yayınlanan: 2015-12-29Apache Hadoop, güvenilir, ölçeklenebilir, dağıtılmış ve büyük ölçekli bilgi işlem için fiili bir yazılım çerçevesi haline geldi. Hadoop, başlangıcından bu yana Toplu işleme için ilk tercih edilen çerçeve olmuştur. Büyük bankalardan çevrimiçi perakende devlerine kadar herkes, periyodik rapor oluşturma, hesaplamalar ve daha birçok kullanım durumu için Hadoop'u kullanıyor. Tipik olarak, bu kullanım durumları toplu iş odaklı süreçlerdir ve verilerden anlam çıkarmamız için birkaç saat gerekir. Günümüzün hızlı dünyası, neredeyse üretildiği anda ham verilerden anlam veya eylemler gerektiriyor. Bu, akış işleme kavramına yol açmıştır. Hadoop başlangıçta akış işleme için uygun görülmese de, YARN'ın (Hadoop 2.0) icadı onu bunun için iyi bir aday haline getirdi. Şu anda Hadoop eko sisteminde birden fazla akış işleme çerçevesi var ve Apex bu kalabalık pazara giren yepyeni bir çerçeve.
Apache Apex nedir?
Apache Apex, uygulama geliştiricisinin hem akış odaklı hem de Batch odaklı uygulamalar yazmasına yardımcı olan yerel YARN tabanlı bir platformdur. Hareket halindeki verileri dağıtılmış, yüksek performanslı, hataya dayanıklı bir şekilde işlemek için tasarlanmıştır. Bu, kullanıcıların java kodlarını sınırlı akış işleme bilgisi ile yazmalarını sağlayan kolay API'dir.
Apex, bunları bir araya getirmek yerine ayrı fonksiyonel ve operasyonel özelliklere dayanmaktadır. Bu, uygulama geliştiricilerinin, dağıtılmış ortamda nasıl çalışacaklarını düşünmek zorunda kalmadan Kullanıcı Tanımlı İşlevler yazmaya odaklanmasını sağlar.
Apache Apex, yaygın olarak kullanılan işlevlerden oluşan zengin bir kitaplığa sahiptir. Bunlar, Apache Apex-Malhar kitaplığının bir parçası olarak eklenir. Bu kitaplık, farklı dosya sistemlerine, veritabanlarına, mesaj kuyruklarına erişmek için operatörlere sahiptir. Topluluk, uygulama geliştiricilerinin hayatını daha kolay hale getiren operatörleri gün geçtikçe ekliyor.
Apache Apex'in temel Blokları nelerdir?
Apex'in mimarisi çok basittir. Apex, birlikte çalışacak bir operatör kütüphanesi ve çekirdek motoru olan Malhar'a sahiptir. Apex'in çekirdeği aşağıdaki gibi gösterilebilir, genellikle Apache Apex'in ana blokları olarak adlandırılırlar.
Katmanları net bir şekilde ayırabilir ve nerede olduğuna dair genel bir bakış elde edebilirsiniz. Bu bloklarla ilgili bilgileri görelim.
- StrAM ( Str eam A aplikasyonu M aster)
StrAM, bir İPLİK Uygulama Ustasıdır. Sorumluluğu, akış uygulamasının başlatılmasını, kaynak tahsisini, mantıksal DAG'lerin planlanmasını içerir. Bu YARN işlemleriyle birlikte StrAM, operatörleri, akışları başlatır. StrAM ayrıca çocuklarından istatistik toplar. - Durum Anlık Görüntüsü
Akış işleme çerçeveleri, işlenmiş sonuçları kaybetmeyi göze alamazdı. Ayrıca, arızadan kurtulduktan sonra kayıtları doğru bir şekilde işlemek için ne kadar işlem yaptıklarını bilmeleri gerekir. Bu nedenle periyodik olarak, akış işlemede kontrol noktası önemlidir. Apex'te, StrAM, kontrol işaretlemesinin kaydını tutar ve operatör sınırında, HDFS üzerinde periyodik olarak kontrol işaretlemesi yapılır. - REST API'si
StrAM, REST API için erişim noktasıdır. Harici araçlar bu REST API'ye erişebilir ve herhangi bir harici uygulama ile entegre olabilir. - Araçlar
Apex, Apex uygulamalarını başlatmak ve izlemek için CLI sağlar. Hatta REST API'lerinin yardımıyla kendimizinkini bile oluşturabiliriz. Uygulama, CLI ile birlikte otomatik başlatma için statik yapılandırma komut dosyalarıyla yapılandırılabilir. - bölümleme
- Dinamik Değişiklikler
- SLA Analizi
Apache Apex, periyodik olarak kendi başına SLA analizi yapar. Gecikme, darboğaz ve çıktı analizi yapar ve yapılandırılmış SLA'yı karşılamak için daha fazla kaynak ekler. - Güvenlik
- Yüksek kullanılabilirlik
Apache Apex, YARN'ın yeniden başlatma işlevini kullanır ve son kontrol noktası durumundan yeniden başlar. - malhar
Apache Apex –Malhar, çok sayıda operatör içeren operatör kütüphanesidir. Bu operatörler şu şekilde sınıflandırılır: - Giriş / Çıkış operatörleri –
Bu kategori altında, şu anda Malhar'ın okuma/yazma işlemleri yapan operatörleri vardır. - Dosya sistemi
- RDBMS
- NoSQL mağazaları
- Mesaj Kuyrukları
- Bellek içi veritabanları
- Sosyal medya
- Hesaplama Operatörleri –
- Desen Eşleştirme
- İstatistikler ve Matematik
- Makine öğrenme
- ayrıştırıcılar
- Sosyal medya
- Tampon Sunucular
Apex, anahtarlara ve dinamik yük dengelemeye dayalı bölümleme sağlar. Kullanıcı bile kendi bölümleme şemasını tanımlayabilir.
Apache Apex bu çok kullanışlı ve benzersiz özelliğe sahiptir. Mantıksal DAG değişikliğini, Fiziksel yürütme planı değişikliğini destekler.
Apex, Kerberos'u destekler. Güvenli Hadoop kümesinin altında yatan, doğal Kerberos entegrasyonuyla erişebilir.
Malhar, gerçek iş mantığı uygulamasında yardımcı olacak birçok operatöre sahiptir. Bu kütüphanede
Arabellek sunucuları her operatör sınırında bulunur. Veri durumunda, yerel operatör arabellek sunucuları, operatör dizilerinden sonra olabilir. Bunların temel amacı, bir sonrakine iletmeden önce verileri kenarlarda geçici olarak tutmaktır. Düğüm başarısızlıktan kurtarıldığında önemli rol oynarlar. Arabellek sunucuları, yeniden oynatmak için son kontrol noktası durumundan veri yükler
Apex Uygulama programlama modeli nedir?
Bu, zengin çerçeve ve Malhar kitaplığı içerir, bu da uygulama geliştiricilerinin yalnızca operatörleri bağlaması ve uygulamayı başlatması gerektiği anlamına gelir. Bu nedenle, uygulamanız bir dizi operatörden başka bir şey değildir.
Zengin çerçeve bu şekilde geliştiricinin hayatını kolaylaştırır. Şimdi bu demo uygulamanın nasıl çalıştığını görelim
Apache Apex Demosu
Öyleyse, Apache Apex kullanılarak küçük bir kelime sayımı demosu olan ' Hello World of Big Data J' ile başlayalım.
Apache Apex'i kurma
Bu demoyu çalıştırmak için Apex'i yapılandırmamız gerekiyor. Apache Apex'i mevcut kümenize yükleyebilir veya denemenin basit bir yolu vardır, buradan DataTorrent web sitesinden ön yükleme korumalı sanal alan VM'yi indirebilirsiniz. Bu demo için önceden kurulmuş VM kullanacağız.
İzlenecek yol Apex UI Konsolu
Apex, uygulamaları başlatmak, izlemek ve yönetmek için kullanabileceğiniz çok sezgisel ve güzel tasarımlı bir UI Konsolu ile birlikte gelir. Dağıtılan farklı bileşenlerle ilgili çeşitli istatistikleri içerir.
Sandbox VM'yi indirdikten sonra, UnTar'ı açın ve favori VM oynatıcınıza yükleyin (VMWare VM oynatıcı kullanıyorum). Apex'i çalıştırmak için gereken tüm yazılım ve araçlar bu sanal makinede zaten yapılandırılmıştır ve tüm başlangıç komut dosyaları, işletim sistemi önyüklemesinde yürütülecek şekilde yapılandırılmıştır. Böylece, VM'niz hazır olduğunda, çalışan Apache Apex örneğine sahip olacaksınız. Şimdi konsolu görüntülemek için favori web tarayıcınızda http://locahost:9090'a basın ve konsola giriş yapın. Varsayılan kullanıcı adı: sandbox VM için parola dtadmin: dtadmin'dir. Aşağıdaki gibi konsolu göreceksiniz
Bu sayfa bize CPU ve Bellek kullanımı, Uygulamalar, Performans, Sorunlar vb. gibi tüm sistemler hakkında eksiksiz bir genel bakış sunar.
Bir uygulamayı dağıtmak için sayfanın üst kısmındaki Geliştirme sekmesine gidin.
Burada uygulama paketlerinizi dağıtabilir ve Apex içindeki veriler için demet şemalarını yönetebilirsiniz.
Apex, aşağıda listelenmiş olarak görebileceğiniz, kullanıma hazır bir dizi uygulama sağlar:
Kelime Sayısı Demosu
Şimdi wordcount uygulamasını çalıştıralım. Bunu, DataTorrent Wordcount Demo'nun yanındaki uygulamayı başlat seçeneğine tıklayarak yapabilirsiniz. Ardından, uygulamadan farklı bir şey sağlayabilir ve gerekirse yapılandırma ayrıntılarını değiştirebilirsiniz (Varsayılanların çoğu iyi çalıştığı için bunu yapmayacağız, uygulama adını "MyWordCountDemo" olarak değiştirelim). Uygulamaya bir bağlantı ile uygulamanın başarıyla dağıtıldığını söyleyen bir mesaj göreceksiniz. O bağlantıya tıklayın.
Bu yeni bir sayfa açar. Uygulama durumu Kabul Edildi'den Çalışıyor'a değişene kadar birkaç saniye bekleyin. Şimdi çeşitli istatistikler ve bilgilerle dolu bir sayfa göreceksiniz. Sonraki iki ekran görüntüsü onları gösteriyor.
Bu sayfalar bize uygulamanın mantıksal, fiziksel ve metrik görünümü gibi çeşitli bilgileri ve uygulama tarafından her saniye işlenen çeşitli demetlerin/kayıtların istatistiklerini gösterir. Yayılan demetlerin ve gecikmelerin vb. grafiksel gösterimini gösterir.
Herhangi bir mantıksal operatöre tıklayabilir, kayıtlarını inceleyebilir ve hatta bir örnek kaydedebilirsiniz. Bunu konsol operatörü için yapalım. Konsol operatörüne tıklayın ve operatör hakkında aşağıdaki gibi ayrıntılı bilgi alacaksınız:
Ardından, bölümlerden birini seçin ve bir örnek kaydet'e tıklayın.
Birkaç saniye sonra, demetlerin doldurulduğunu göreceksiniz, içeriğini görüntülemek için demete tıklayın. İçerikten de görebileceğiniz gibi, uygulama windows tabanlı veri üzerinde wordcount işlemi yapmış ve bu pencere için 0. input tuple'da 2 adet “to”, 4 adet “the”, 4 adet “a” vs. vardı. Artık uygulamanın ana sayfasındaki “Kapat” veya “Öldür” seçeneğine tıklayarak uygulamayı durdurabilirsiniz.
İşte bu, wordcount uygulamasını başarıyla kurduk ve çalıştırdık.
Çözüm
Böylece yeni bir Akış aracı olan Apache Apex'in tanıtımı ve Apache Apex'te bir uygulamanın başarılı bir şekilde çalıştırılması sağlandı. Apache Apex, sonraki yazılarda ele alacağım diğer mevcut çerçevelere göre avantaj sağlayan birçok göze çarpan özelliğe sahiptir.