Apache Storm 2.0 dağıtılmış bilgi işlem sistemi mevcut

ışığı gördüm dağıtılmış olay işleme sisteminin önemli ölçüde piyasaya sürülmesi Apaçi Fırtınası 2.0, daha önce kullanılan Clojure dili yerine Java'da uygulanan yeni bir mimariye geçişiyle dikkat çekiyor.

Proje, çeşitli etkinliklerin gerçek zamanlı olarak garantili olarak işlenmesini organize etmenize olanak tanır. Örneğin Storm, veri akışlarını gerçek zamanlı olarak analiz etmek, makine öğrenimi görevlerini yürütmek, sürekli bilgi işlemi düzenlemek, RPC, ETL vb. uygulamak için kullanılabilir. Sistem, kümelemeyi, hataya dayanıklı konfigürasyonların oluşturulmasını, garantili veri işleme modunu destekler ve bir küme düğümünde saniyede bir milyondan fazla isteği işlemeye yetecek kadar yüksek performansa sahiptir.

Çeşitli kuyruk işleme sistemleri ve veritabanı teknolojileri ile entegrasyon desteklenmektedir. Storm mimarisi, hesaplamaların farklı aşamaları arasında bölümleme yeteneğine sahip, rastgele karmaşık işlemciler kullanarak, yapılandırılmamış, sürekli güncellenen veri akışlarının alınmasını ve işlenmesini içerir. Proje, Twitter'ın çerçeveyi ilk geliştiren şirket olan BackType'ı satın almasının ardından Apache topluluğuna devredildi. Uygulamada Storm, BackType'ta olayların mikrobloglardaki yansımasını analiz etmek için kullanıldı; yeni tweet'leri ve bunlarda kullanılan bağlantıları anında karşılaştırarak (örneğin, Twitter'da yayınlanan harici bağlantıların veya duyuruların diğer katılımcılar tarafından nasıl yeniden yayınlandığı değerlendirildi) ).

Storm'un işlevselliği Hadoop platformuyla karşılaştırılıyor; temel fark, verilerin bir depoda saklanmaması, harici olarak alınması ve gerçek zamanlı olarak işlenmesidir. Storm'un yerleşik bir depolama katmanı yoktur ve analitik sorgu, iptal edilene kadar gelen verilere uygulanmaya başlar (Hadoop sonlu zamanlı MapReduce işlerini kullanırken, Storm "topolojileri" sürekli çalıştırma fikrini kullanır). İşleyicilerin yürütülmesi birkaç sunucuya dağıtılabilir - Storm, çalışmayı farklı küme düğümlerindeki iş parçacıklarıyla otomatik olarak paralelleştirir.

Sistem orijinal olarak Clojure'da yazılmıştır ve JVM sanal makinesinin içinde çalışmaktadır. Apache Vakfı, Storm'u Java ile yazılmış yeni bir çekirdeğe geçirmek için bir girişim başlattı ve bunun sonuçları Apache Storm 2.0 sürümünde önerildi. Platformun tüm temel bileşenleri Java'da yeniden yazılmıştır. Clojure'da yazma işleyicileri desteği korundu ancak artık bağlama biçiminde sunuluyor. Storm 2.0.0, Java 8 gerektirir. Çok iş parçacıklı işleme modeli tamamen yeniden tasarlandı; başarmak performansta gözle görülür bir artış (bazı topolojiler için gecikmeler %50-80 oranında azaltıldı).

Apache Storm 2.0 dağıtılmış bilgi işlem sistemi mevcut

Yeni sürüm aynı zamanda işlevsel programlama tarzı işlemleri kullanarak işleyicileri tanımlamanıza olanak tanıyan yeni türde bir Akışlar API'si de sunar. Yeni API, standart temel API'nin üzerine uygulanır ve işlemlerini optimize etmek için işlemlerin otomatik olarak birleştirilmesini destekler. Pencere işlemlerine yönelik Pencereleme API'si, arka uçta durumun kaydedilmesi ve geri yüklenmesi için destek ekledi.

Aşağıdakilerle sınırlı olmamak üzere kararlar alınırken ek kaynakların dikkate alınması desteği
Ağ ve GPU ayarları gibi CPU ve bellek. Platformla entegrasyonu sağlamak için çok sayıda iyileştirme yapıldı Kafka. Erişim kontrol sistemi, yönetici grupları oluşturma ve jetonları delege etme yeteneğini içerecek şekilde genişletildi. SQL ve metrik desteğiyle ilgili iyileştirmeler eklendi. Küme durumunda hata ayıklamak için yönetici arayüzünde yeni komutlar ortaya çıktı.

Storm'un uygulama alanları:

  • Yeni veri akışlarının veya veritabanı güncellemelerinin gerçek zamanlı olarak işlenmesi;
  • Sürekli Bilgi İşlem: Storm, sürekli sorguları çalıştırabilir ve sürekli akışları işleyebilir, böylece işleme sonuçlarını müşteriye gerçek zamanlı olarak iletebilir.
  • Dağıtılmış Uzaktan Yordam Çağrısı (RPC): Storm, kaynak yoğun sorguların paralel yürütülmesini sağlamak için kullanılabilir. Storm'daki bir iş ("topoloji"), işlenmesi gereken mesajların gelmesini bekleyen, düğümler arasında dağıtılan bir işlevdir. Bir mesaj alındıktan sonra fonksiyon onu yerel bağlamda işler ve sonucu döndürür. Dağıtılmış RPC kullanmanın bir örneği, arama sorgularını paralel olarak işlemek veya geniş bir küme kümesinde işlemler gerçekleştirmek olabilir.

Fırtına Özellikleri:

  • Gerçek zamanlı veri işlemeyi büyük ölçüde basitleştiren basit bir programlama modeli;
  • Herhangi bir programlama dili desteği. Java, Ruby ve Python için modüller mevcuttur, desteklenmesi için yaklaşık 100 satır kod gerektiren çok basit bir iletişim protokolü sayesinde diğer dillere uyarlama kolaydır;
  • Hata toleransı: Bir veri işleme işini çalıştırmak için kod içeren bir jar dosyası oluşturmanız gerekir. Storm, bu jar dosyasını bağımsız olarak küme düğümleri arasında dağıtacak, onunla ilişkili işleyicileri bağlayacak ve izlemeyi organize edecektir. İş tamamlandığında kod tüm düğümlerde otomatik olarak devre dışı bırakılacaktır;
  • Yatay ölçeklenebilirlik. Tüm hesaplamalar paralel modda gerçekleştirilir, yük arttıkça yeni düğümleri kümeye bağlamak yeterlidir;
  • Güvenilirlik. Storm, gelen her mesajın en az bir kez tamamen işlenmesini sağlar. Mesaj, tüm işleyicilerden geçerken herhangi bir hata olmazsa yalnızca bir kez işlenir; sorun ortaya çıkarsa başarısız işleme girişimleri tekrarlanır.
  • Hız. Storm'un kodu yüksek performans göz önünde bulundurularak yazılmıştır ve sistemi hızlı eşzamansız mesajlaşma için kullanır sıfırMQ.

Kaynak: opennet.ru

Yorum ekle