Apache Storm Hakkında Bilmeniz Gereken Her Şey

Yayınlanan: 2018-02-20

Büyük Veri üretimi ve analitiğindeki sürekli artan büyüme, yeni zorluklar sunmaya devam ediyor ve veri bilimcileri ve programcıları, geliştirdikleri uygulamaları sürekli iyileştirerek, zarif bir şekilde adımlarını atıyorlar. Böyle bir sorun, gerçek zamanlı akış sorunuydu. Gerçek zamanlı veriler işletmeler için son derece yüksek bir değere sahiptir, ancak bir zaman aralığına sahiptir ve sonrasında değerini kaybeder - eğer isterseniz bir son kullanma tarihi. Bu gerçek zamanlı verinin değeri pencere içinde gerçekleştirilmezse, ondan kullanılabilir hiçbir bilgi çıkarılamaz. Bu gerçek zamanlı veriler hızlı ve sürekli olarak gelir, bu nedenle "Akış" terimi.

Bu gerçek zamanlı verilerin analizi, blog yayınınızı okuyan kişi sayısı veya Facebook sayfanızı ziyaret eden kişi sayısı gibi şu anda olup bitenler hakkında güncel kalmanıza yardımcı olabilir. Kulağa sadece "olması güzel" bir özellik gibi gelse de, pratikte Bu çok önemlidir. Reklam kampanyalarınızda gerçek zamanlı analizler gerçekleştiren bir Reklam Ajansının parçası olduğunuzu ve müşterinin bunun için çok para ödediğini hayal edin. Gerçek zamanlı analizler, Reklamınızın pazarda nasıl performans gösterdiği, kullanıcıların buna nasıl yanıt verdiği ve bu türden diğer şeyler hakkında sizi bilgilendirmeye devam edebilir. Bu şekilde düşünürseniz oldukça önemli bir araç, değil mi?

Gerçek zamanlı verilerin sahip olduğu değere bakıldığında, kuruluşlar çeşitli gerçek zamanlı veri analizi araçları geliştirmeye başladı. Bu yazıda bunlardan biri olan Apache Storm'dan bahsedeceğiz. Ne olduğuna, tipik bir fırtına uygulamasının mimarisine, temel bileşenlerine (soyutlamalar olarak da bilinir) ve gerçek yaşam kullanım durumlarına bakacağız.

Hadi gidelim!

İçindekiler

Apache Fırtınası nedir?

Apaçi Fırtınası
Twitter tarafından yayınlanan Apache Storm, verilerin gerçek zamanlı olarak işlenmesine yardımcı olan dağıtılmış bir açık kaynaklı çerçevedir. Apache Storm, gerçek zamanlı veriler için, Hadoop'un verilerin toplu işlenmesi için çalıştığı gibi çalışır (Toplu işleme, gerçek zamanlının tersidir. Bunda, veriler gruplara bölünür ve her toplu iş işlenir. Bu, gerçek zamanlı olarak yapılmaz. -zaman.)

Apache Storm'un herhangi bir durum yönetimi özelliği yoktur ve küme durumunu (mesaj bildirimleri, işlem durumları ve bu tür diğer mesajlar gibi) yönetmek için büyük ölçüde Apache ZooKeeper'a (Büyük Veri uygulamalarındaki yapılandırmaları yönetmek için merkezi bir hizmet) güvenir. Apache Storm, yönlendirilmiş asiklik grafikler şeklinde tasarlanmış uygulamalarına sahiptir. Düğüm başına saniyede bir milyonun üzerinde demeti işlemesiyle bilinir - bu, yüksek düzeyde ölçeklenebilir ve işleme işi garantileri sağlar. Storm, Lisp benzeri işlevsel bir programlama dili olan Clojure ile yazılmıştır.

Apache Storm'un kalbinde, mantık grafiğini (topolojiler olarak da bilinir) tanımlamak ve göndermek için bir “Tasarruf Tanımı” bulunur. Thrift istediğiniz herhangi bir dilde uygulanabildiğinden, herhangi bir dilde topolojiler de oluşturulabilir. Bu, Storm'un çok sayıda dili desteklemesini sağlar ve bu da onu geliştirici dostu hale getirir.

Storm, YARN üzerinde çalışır ve Hadoop ekosistemiyle mükemmel bir şekilde bütünleşir. Sıfır toplu desteğe sahip gerçek bir gerçek zamanlı veri işleme çerçevesidir. Bir dizi küçük partiye bölmek yerine, tüm bir 'olay' olarak eksiksiz bir veri akışını alır. Bu nedenle, tek bir varlık olarak alınacak veriler için en uygun olanıdır.

Şimdi bir Storm uygulamasının genel mimarisine bir göz atalım – Size Storm'un nasıl çalıştığına dair daha fazla fikir verecek!

Apache Storm: Genel Mimari ve Önemli Bileşenler

Apaçi Fırtınası
Herhangi bir Storm uygulamasında temel olarak iki tür düğüm vardır (yukarıda gösterildiği gibi).

  • Ana Düğüm (Nimbus Hizmeti)

Hadoop'un iç işleyişinin farkındaysanız, bir 'Job Tracker'ın ne olduğunu bilmelisiniz. Hadoop'un Ana düğümünde çalışan ve görevleri düğümler arasında dağıtmaktan sorumlu bir arka plan programıdır. Nimbus, Storm için benzer bir hizmet türüdür. Bir Storm kümesinin Ana Düğümünde çalışır ve görevleri çalışan düğümler arasında dağıtmaktan sorumludur.

Nimbus, Apache tarafından sağlanan ve kodunuzu istediğiniz programlama dilinde göndermenizi sağlayan bir Tasarruf hizmetidir. Bu, özellikle Storm için yeni bir dil öğrenmek zorunda kalmadan uygulamanızı yazmanıza yardımcı olur.

Daha önce de konuştuğumuz gibi Storm, herhangi bir durum yönetme yeteneğinden yoksundur. Nimbus hizmeti, görevleri işlerken çalışan düğümler tarafından gönderilen mesajları izlemek için ZooKeeper'a güvenmelidir. Tüm çalışan düğümler, Nimbus'un görmesi ve izlemesi için ZooKeeper hizmetindeki görev durumlarını günceller.

  • Çalışan Düğümü (Yönetici Hizmeti)

Bunlar görevleri yerine getirmekten sorumlu düğümlerdir. Storm'daki çalışan düğümleri, Supervisor adlı bir hizmeti çalıştırır. Süpervizör, Nimbus hizmeti tarafından bir makineye atanan işi almaktan sorumludur. Adından da anlaşılacağı gibi, Süpervizör, çalışan süreçleri denetler ve atanan görevleri tamamlamalarına yardımcı olur. Bu çalışan süreçlerin her biri, eksiksiz topolojinin bir alt kümesini yürütür.

Bir Storm uygulaması, eldeki görevleri gerçekleştirmekten sorumlu olan esas olarak dört bileşene/soyutlamaya sahiptir. Bunlar:

Apaçi Fırtınası

  • topoloji

    Herhangi bir gerçek zamanlı uygulamanın mantığı, esasen bir cıvata ve çıkış ağı olan bir topoloji biçiminde paketlenmiştir. Daha iyi anlamak için, MapReduce işleriyle karşılaştırabilirsiniz (bunun ne olduğunu bilmiyorsanız, MapReduce hakkındaki makalemizi okuyun!). Önemli bir fark, MapReduce işinin yürütülmesi tamamlandığında bitmesi, buna karşın bir Storm topolojisinin sonsuza kadar çalışmasıdır (bunu açıkça kendiniz öldürmediğiniz sürece). Ağ, işleme mantığını oluşturan düğümlerden ve verilerin geçişini ve işlemlerin yürütülmesini gösteren bağlantılardan (akım olarak da bilinir) oluşur.

  • Aktarım

    Akışların ne olduğunu anlamadan önce demetlerin ne olduğunu anlamanız gerekir. Tuple'lar, bir Storm kümesindeki ana veri yapılarıdır. Bunlar, değerlerin tamsayılardan, uzunlardan, kısalardan, baytlardan, çiftlerden, dizelerden, boolean kayanlarından bayt dizilerine kadar herhangi bir şey olabileceği değer listeleridir. Şimdi, .stream'ler, dağıtılmış bir ortamda gerçek zamanlı olarak oluşturulan ve işlenen bir demet dizisidir. Bir Spark kümesinin temel soyutlama birimini oluştururlar.

  • emzik

    Filiz, Storm demetindeki akışların kaynağıdır. Gerçek veri kaynağı ile iletişim kurmaktan, sürekli veri almaktan, bu verileri gerçek demet akışına dönüştürmekten ve son olarak bunları işlenecek cıvatalara göndermekten sorumludur. Güvenilir veya güvenilmez olabilir. Güvenilir bir Spout, Storm tarafından işlenemezse, demeti tekrar oynatır, diğer yandan güvenilmez bir Spout, yaydıktan hemen sonra demeti unutur.

  • cıvata

    Cıvatalar, topolojinin tüm işlemlerini gerçekleştirmekten sorumludur. Bir Storm uygulamasının işleme mantığı birimini oluştururlar. Filtreleme, işlevler, birleştirmeler, toplamalar, veritabanlarına bağlanma ve daha pek çok temel işlemi gerçekleştirmek için cıvata kullanılabilir.

Fırtınayı Kim Kullanır?

Büyük Veri pazarında bir dizi güçlü ve kullanımı kolay araç olmasına rağmen, Storm, attığınız herhangi bir programlama dilini işleme yeteneği nedeniyle bu listede benzersiz bir yer bulur. Birçok kuruluş Storm'u kullanır.

Apache Storm'u ve nasıl kullanan birkaç büyük oyuncuya bakalım!

  • heyecan

twitter logosu
Twitter, feed'inizin kişiselleştirilmesinden gelir optimizasyonuna, arama sonuçlarını iyileştirmeye ve bu tür diğer süreçlere kadar çeşitli sistemlerini güçlendirmek için Storm'u kullanır. Twitter Storm'u geliştirdiği için (daha sonra Apache tarafından satın alındı ​​ve Apache Storm olarak adlandırıldı), Twitter'ın altyapısının geri kalanıyla (veritabanı sistemleri (Cassandra, Memcached, vb.), mesajlaşma ortamı (Mesos) ve izleme sistemleri) ile sorunsuz bir şekilde bütünleşir. .

  • Spotify

spotify logosu
Spotify, 50 milyondan fazla aktif kullanıcıya ve 10 milyon aboneye müzik akışı sağlamasıyla bilinir. Müzik önerisi, izleme, analiz, reklam hedefleme ve oynatma listesi oluşturma gibi çok çeşitli gerçek zamanlı özellikler sunar. Spotify, bu başarıya ulaşmak için Apache Storm'u kullanır.
Kafka, Memcached ve netty-zmtp tabanlı mesajlaşma ortamıyla yığılmış olan Apache Storm, Spotify'ın düşük gecikme süreli, hataya dayanıklı dağıtılmış sistemleri kolayca oluşturmasını sağlar.

Kapatmak için…

Kariyerinizi Büyük Veri analisti olarak kurmak istiyorsanız, akış, gitmenin yoludur. Gerçek zamanlı verilerle uğraşma sanatında ustalaşabiliyorsanız, analist rolü için işe alan şirketlerin bir numaralı tercihi olacaksınız. Gerçek zamanlı veri analitiğine dalmak için daha iyi bir zaman olamazdı çünkü bu, en gerçek anlamda saatin ihtiyacı!

Büyük Veri hakkında daha fazla bilgi edinmek istiyorsanız, çalışan profesyoneller için tasarlanmış ve 7+ vaka çalışması ve proje sağlayan, 14 programlama dili ve aracını kapsayan, pratik uygulamalı Büyük Veride Yazılım Geliştirme Uzmanlığı programında PG Diplomamıza göz atın çalıştaylar, en iyi firmalarla 400 saatten fazla titiz öğrenim ve işe yerleştirme yardımı.

Yazılım Mühendisliği derecelerini dünyanın en iyi üniversitelerinden çevrimiçi öğrenin . Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.

Veriye Dayalı Teknolojik Devrime Öncülük Edin

IIIT Bangalore'den Büyük Veride Gelişmiş Sertifika Programı