KAFKA – FLINK – STORM PLATFORMLARI
Flink
Apache Flink, veri akışları üzerinden dağıtılmış hesaplama için olanaklar sağlamayı amaçlayan çekirdeği java ve scala dili ile yazılmış olan bir veri akış motorudur. Toplu iş süreçlerini özel bir veri akışı durumu olarak ele alan Flink, hem toplu işler hem de gerçek zamanlı bir işlem çerçevesi olarak etkilidir, Büyük ölçekli verileri işleyebilir. Flink ayrıca FlinkML adlı kendi makine öğrenme kütüphanesine, kendi SQL Sorgusu’na (MRQL) ve grafik işleme kütüphanelerine sahiptir. Flink ayrıca sürekli akış modeli için oldukça esnek bir akış penceresi sunar. Bu, hem toplu işin hem de gerçek zamanlı akışın bir sisteme entegre edilmesini sağlar. Sürekli akış modeli için son derece esnek akış pencereleri bulundurur. Flink, diğer açık kaynaklı veri işleme ekosistemleriyle entegre edilmiştir. Etkili, hızlı, doğru ve hataya dayanıklı bir yapıya sahiptir.
Toplu veri İşleme, interaktif işlem adımları , gerçek zamanlı veri akış işlemleri, grafik İşleme, yinelemeli işleme, bellek içi işleme gibi özellikleri sağlamaktadır. Flink gerçek bir akış işleme motorudur ve hızlı işlem süresine sahiptir ve asla bellek sorunu yaşamaz. Flink’in API’leri, tüm ortak işlemleri kapsayacak şekilde geliştirildiğinden, programcılar verimli bir şekilde kullanabilir.
Storm
Apache Storm dağıtılmış gerçek zamanlı akış işleme özelliklerine sahip bir sistemdir. Storm herhangi bir programlama dili ile kullanılabilir. Neredeyse ölçeklenebilir olan ve işlem iş garantileri sağlayan düğüm başına saniyede bir milyon tuple’ın işlenmesiyle bilinir. Storm, Lisp benzeri işlevsel ilk programlama dili olan Clojure dilinde yazılmıştır ve akan verileri anlık olarak işleyebilme özelliğine sahip açık kaynak kodlu bir kütüphanedir.
Storm, özellikle yüksek veri hızı ile dağıtılmış makine öğrenimi, gerçek zamanlı analiz ve diğer birçok durum için kullanılır. Storm, YARN üzerinde çalışır ve Hadoop ekosistemleri ile bütünleşir. Küçük partiler halinde bir dizi yerine bir akış işleme motorudur. storm düşük gecikme süresine sahiptir ve tek bir varlık olarak alınması gereken verilere çok uygundur. Storm, toplu işleme ve akış işleme arasındaki bir köprüdür ve Hadoop, üzerinde işlenecek şekilde tasarlanmamıştır. Storm bir milyon 100 bayt msgs / sn / node işlemek için kullanılabilir ve güvenilirdir. Her bir veri biriminin (tuple) bir kez işleneceğini garanti eder. Mesajlar sadece hata olduğunda tekrarlanır.
Kafka
Teknolojinin giderek gelişmesi ve internetin hemen her alanda yaygın kullanıma sahip olaması ile birlikte veriler artık depolanamaz boyuta ulaşmıştır. İnternet üzerinde yapmış olduğumuz her bir hareket anlık bir veri oluşturmaktadır. Günümüzde de real-time da veri akışlarını işleyerek analiz edebilecek sistemler üzerinde çalışmalar yapılmaktadır. Apache Kafka’nında asıl görevi anlık bir şekilde big-data akışı sağlamaktır.
Apache Kafka real-time veri akışını sağlayabilmek için verileri log kaydına benzer bir yapıda tutarak, farklı sistemlere MQ(Messaging Queue) şeklinde sunan bir mesajlaşma uygulamasıdır. Kafka’nın distributed tarafındaki bir özelliği ise her bir client, ayrı bir bölüme yazabilir veya ayrı bir bölüm üzerinden okuma işlemini yapabilir. Kafka’nın bu partitioning mimarisi paralel okuyabilme ve yazabilme işlemleri de mümkün olabilmektedir.
Başlangıçta Linkedin Corporation’da geliştirildi ve daha sonra Apache projesinin bir parçası olarak açık kaynak kodlu bir hale getirildi Bu nedenle, Apache Spark için hızlı, ölçeklenebilir ve güvenilir bir mesajlaşma sistemidir denebilir. Kafka birçok terabayttan fazla veriyi hiç ele geçirmeden idare edebilir. Apache Kafka, geleneksel mesajlaşma sisteminden tamamen farklıdır. Dağıtılmış bir sistem olarak tasarlanmıştır ve ölçeklendirilmesi çok kolaydır. Kafka, AMQP, JMS vb. Üzerine üç ana avantaj sağlamak üzere tasarlanmıştır.
Son derece güvenilir: Kafka verileri çoğaltır ve çoklu aboneleri destekleyebilir. Arıza durumunda, benzer mesajlaşma hizmetlerine kıyasla çok güvenilir olan arıza durumunda tüketicileri otomatik olarak dengeler.
Süper Ölçeklendirilebilir: Dağıtık bir sistem olan Kafka, herhangi bir kesinti yaşanmadan hızlı ve kolay bir şekilde ölçeklendirilebilir.
Yüksek Performans: Hem yayıncılık hem de abone için yüksek verim sağlıyor. Birçok terabayt saklanan iletiyle uğraşırken bile sabit performans seviyeleri sunabilir.
Dayanıklı: Kafka, mesajları mesajlaşma sistemi haline getiren diskler üzerinde tutarak küme içi çoğaltma sağlar.