2015-04-28 10 views

cevap

12

Yasal Uyarı: Ben bir Apache Flink üyesi ve PMC üyesiyim.

Hadoop MapReduce'a benzer şekilde Apache Flink, kendi API ve yürütme altyapısına sahip paralel veri işlemcisidir. Flink, Hadoop'un HDFS ve YARN gibi Hadoop ekosisteminden birçok sistemle birlikte kullanıldığı ve kullanıldığı birçok kullanım örneğini desteklemeyi hedefliyor.

MapReduce programlama modeli ve MapReduce yürütme modeli arasında ayrım yaparak sorunuzu yanıtlayacağım.

Model Programlama

Apache FLINK programlama modeli MapReduce programlama modelinin kavramlarına dayanan ancak çeşitli yollarla genelleştirir edilir. Flink Harita ve Azalt işlevlerini, ayrıca Katılma, CoGroup, Filtre ve Yineleme gibi ek dönüşümler sunar. Bu dönüşümler, çoklu kaynaklar, lavabolar ve dallanma ve birleştirme akışları dahil olmak üzere keyfi veri akışlarında birleştirilebilir. Flink'in veri modeli, MapReduce'un anahtar/değer çifti modelinden daha geneldir ve herhangi bir Java (veya Scala) veri tipinin kullanılmasına izin verir. Anahtarlar bu veri tiplerinde esnek bir şekilde tanımlanabilir. Sonuç olarak, Flink'in programlama modeli MapReduce programlama modelinin süper kümesidir. Birçok programı çok daha uygun ve özlü bir şekilde tanımlamayı sağlar. Ayrıca, Flink programlarında değiştirilmemiş Hadoop fonksiyonlarının (Input/OutputFormats, Mapper, Reducers) gömülmesinin ve yerel Flink fonksiyonları ile ortak olarak yürütülmesinin mümkün olduğunu belirtmek isterim. yürütme modeline baktığımızda

Yürütme Modeli

, Flink paralel ilişkisel veritabanı sistemlerinden birçok kavram ödünç alır. Flink, yerel veya dağıtılmış dosya sistemlerinde ara sonuçların gerçekleştirilmesi ihtiyacını azaltan bir pipeline işlem modeli sunar (bu ayrıca Flink'in gerçek zamanlı akış işlemlerini gerçekleştirmesine de olanak tanır). Ayrıca, bir Flink programının çalıştırılması programın özelliklerine sıkı sıkıya bağlı değildir. MapReduce'ta (Apache Hadoop tarafından yapıldığı gibi), her bir MapReduce programının yürütülmesi, tam olarak aynı kalıbı takip eder. Flink programları verimli bir yürütme planı belirleyen bir optimizatöre verilir. İlişkisel DBMS'ye benzer şekilde optimizer, veri nakliyesini seçer ve stratejileri, pahalı karıştırma işlemleri ve sıralama gibi işlemlerden kaçınacak şekilde seçer. Flink'in Hadoop'un devam ettiği büyük ölçekte test edilmediğine dikkat etmeliyim. 200 düğümde çalışan Flink kurulumlarını biliyorum. Fabian'ın cevabı ekleme

3

:

Bir daha fark Flink saf toplu işlem sistemi değil, can düşük gecikmeli akış analizine aynı anda ve analiz programları akışı tanımlamak için güzel bir API sunmasıdır .

Dahili olarak Flink aslında bir akış sistemi. Flink için, Toplu programlar özel bir akış programlarıdır.