Apache Flink هو إطار عمل مفتوح المصدر لمعالجة التدفق يتمتع بقدرات قوية لمعالجة التدفق والدُفعات.
تعرف على المزيد حول Flink على https://flink.Apache.org/
وقت تشغيل البث الأول الذي يدعم كلاً من برامج المعالجة المجمعة وتدفق البيانات
واجهات برمجة التطبيقات (APIs) الأنيقة والسلسة في Java
وقت تشغيل يدعم إنتاجية عالية جدًا وزمن وصول منخفض للحدث في نفس الوقت
دعم وقت الحدث والمعالجة خارج الترتيب في DataStream API، بناءً على نموذج تدفق البيانات
النوافذ المرنة (الوقت، العدد، الجلسات، المشغلات المخصصة) عبر دلالات زمنية مختلفة (وقت الحدث، وقت المعالجة)
التسامح مع الأخطاء مع ضمانات المعالجة لمرة واحدة بالضبط
الضغط الخلفي الطبيعي في برامج البث
مكتبات معالجة الرسوم البيانية (دفعة)، والتعلم الآلي (دفعة)، ومعالجة الأحداث المعقدة (التدفق)
إدارة مخصصة للذاكرة للتبديل الفعال والقوي بين خوارزميات معالجة البيانات داخل الذاكرة وخارجها
طبقات التوافق لـ Apache Hadoop MapReduce
التكامل مع YARN وHDFS وHBase والمكونات الأخرى للنظام البيئي Apache Hadoop
// pojo class WordWithCount
public class WordWithCount {
public String word ;
public int count ;
public WordWithCount () {}
public WordWithCount ( String word , int count ) {
this . word = word ;
this . count = count ;
}
}
// main method
StreamExecutionEnvironment env = StreamExecutionEnvironment . getExecutionEnvironment ();
DataStreamSource < String > text = env . socketTextStream ( host , port );
DataStream < WordWithCount > windowCounts = text
. flatMap (
( FlatMapFunction < String , String >) ( line , collector )
-> Arrays . stream ( line . split ( " \ s" )). forEach ( collector :: collect )
). returns ( String . class )
. map ( word -> new WordWithCount ( word , 1 )). returns ( TypeInformation . of ( WordWithCount . class ))
. keyBy ( wordWithCnt -> wordWithCnt . word )
. window ( TumblingProcessingTimeWindows . of ( Duration . ofSeconds ( 5 )))
. sum ( "count" ). returns ( TypeInformation . of ( WordWithCount . class ));
windowCounts . print ();
env . execute ();
}
// pojo class WordWithCount
public class WordWithCount {
public String word ;
public int count ;
public WordWithCount () {}
public WordWithCount ( String word , int count ) {
this . word = word ;
this . count = count ;
}
}
// main method
StreamExecutionEnvironment env = StreamExecutionEnvironment . getExecutionEnvironment ();
env . setRuntimeMode ( RuntimeExecutionMode . BATCH );
FileSource < String > source = FileSource . forRecordStreamFormat ( new TextLineInputFormat (), new Path ( "MyInput.txt" )). build ();
DataStreamSource < String > text = env . fromSource ( source , WatermarkStrategy . noWatermarks (), "MySource" );
DataStream < WordWithCount > windowCounts = text
. flatMap (( FlatMapFunction < String , String >) ( line , collector ) -> Arrays
. stream ( line . split ( " \ s" ))
. forEach ( collector :: collect )). returns ( String . class )
. map ( word -> new WordWithCount ( word , 1 )). returns ( TypeInformation . of ( WordWithCount . class ))
. keyBy ( wordWintCount -> wordWintCount . word )
. sum ( "count" ). returns ( TypeInformation . of ( WordWithCount . class ));
windowCounts . print ();
env . execute ();
المتطلبات الأساسية لبناء Flink:
git clone https://github.com/apache/flink.git
cd flink
./mvnw clean package -DskipTests # this will take up to 10 minutes
تم الآن تثبيت Flink في build-target
.
يستخدم ملتزمو Flink IntelliJ IDEA لتطوير قاعدة بيانات Flink. نوصي باستخدام IntelliJ IDEA لتطوير المشاريع التي تتضمن كود Scala.
الحد الأدنى من متطلبات IDE هي:
يدعم IntelliJ IDE Maven خارج الصندوق ويقدم مكونًا إضافيًا لتطوير Scala.
راجع دليل إعداد IntelliJ للحصول على التفاصيل.
ملاحظة: من تجربتنا، لا يعمل هذا الإعداد مع Flink بسبب أوجه القصور في إصدار Eclipse القديم المجمع مع Scala IDE 3.0.3 أو بسبب عدم توافق الإصدار مع إصدار Scala المجمع في Scala IDE 4.4.1.
نوصي باستخدام IntelliJ بدلاً من ذلك (انظر أعلاه)
لا تتردد في السؤال!
اتصل بالمطورين والمجتمع على القوائم البريدية إذا كنت بحاجة إلى أي مساعدة.
افتح مشكلة إذا وجدت خطأً في Flink.
توجد وثائق Apache Flink على موقع الويب: https://flink.apache.org أو في دليل docs/
الخاص بكود المصدر.
هذا مشروع نشط مفتوح المصدر. نحن منفتحون دائمًا على الأشخاص الذين يرغبون في استخدام النظام أو المساهمة فيه. تواصل معنا إذا كنت تبحث عن مهام تنفيذية تناسب مهاراتك. توضح هذه المقالة كيفية المساهمة في Apache Flink.
تم تحويل معظم موصلات Flink إلى عمليات إعادة الشراء الفردية ضمن مؤسسة Apache Software Foundation:
Apache Flink هو مشروع مفتوح المصدر لمؤسسة Apache Software Foundation (ASF). نشأ مشروع Apache Flink من مشروع أبحاث الستراتوسفير.