
استغلال لثغرة Apache Flink CVE-2020-17519 تستهدف ثغرة تجاوز المسار في الإصدارات 1.11.2 والإصدارات السابقة، مما يتيح قراءة ملفات غير مصرح بها على الخادم.
Apache Flink هو إطار عمل مفتوح المصدر لمعالجة التدفقات (stream processing) يتمتع بقدرات قوية في معالجة التدفقات والمعالجة الدفعية (batch processing).
تعرف على المزيد حول Flink على https://flink.apache.org/
بيئة تشغيل تعتمد على التدفقات أولاً (streaming-first) تدعم كلاً من البرامج الدفعية وبرامج تدفق البيانات
واجهات برمجة تطبيقات أنيقة وسلسة (fluent APIs) بلغتي Java و Scala
بيئة تشغيل تدعم الإنتاجية العالية جداً وزمن انتقال منخفض للأحداث في نفس الوقت
دعم معالجة زمن الحدث والترتيب الخارج (event time و out-of-order) في واجهة برمجة تطبيقات DataStream بناءً على نموذج تدفق البيانات (Dataflow Model)
النوافذ المرنة (الزمن، العدد، الجلسات، المشغلات المخصصة) عبر دلالات زمنية مختلفة (زمن الحدث، زمن المعالجة)
تحمل الأعطال مع ضمانات معالجة مرة واحدة بالضبط (exactly-once)
الضغط العكسي الطبيعي (back-pressure) في برامج التدفق
مكتبات لمعالجة الرسوم البيانية (دفعي)، التعلم الآلي (دفعي)، ومعالجة الأحداث المعقدة (تدفقي)
دعم مدمج للبرامج التكرارية (BSP) في واجهة برمجة تطبيقات DataSet (دفعي)
إدارة ذاكرة مخصصة للتبديل الفعال والقوي بين خوارزميات معالجة البيانات في الذاكرة وخارجها
طبقات توافق لـ Apache Hadoop MapReduce
التكامل مع YARN و HDFS و HBase ومكونات أخرى من نظام Apache Hadoop البيئي
case class WordWithCount(word: String, count: Long)
val text = env.socketTextStream(host, port, '\n')
val windowCounts = text.flatMap { w => w.split("\\s") }
.map { w => WordWithCount(w, 1) }
.keyBy("word")
.timeWindow(Time.seconds(5))
.sum("count")
windowCounts.print()
case class WordWithCount(word: String, count: Long)
val text = env.readTextFile(path)
val counts = text.flatMap { w => w.split("\\s") }
.map { w => WordWithCount(w, 1) }
.groupBy("word")
.sum("count")
counts.writeAsCsv(outputPath)
المتطلبات الأساسية لبناء Flink:
git clone https://github.com/apache/flink.git
cd flink
mvn clean package -DskipTests # سيستغرق هذا حتى 10 دقائق
تم الآن تثبيت Flink في build-target.
ملاحظة: يمكن لـ Maven 3.3.x بناء Flink، لكنه لن يقوم بتظليل (shade) بعض التبعيات بشكل صحيح. يقوم Maven 3.1.1 بإنشاء المكتبات بشكل صحيح. لبناء اختبارات الوحدة باستخدام Java 8، استخدم Java 8u51 أو أعلى لمنع الإخفاقات في اختبارات الوحدة التي تستخدم مشغل PowerMock.
يستخدم مطورو Flink IntelliJ IDEA لتطوير قاعدة بيانات Flink. نوصي باستخدام IntelliJ IDEA لتطوير المشاريع التي تتضمن كود Scala.
الحد الأدنى من المتطلبات لبيئة التطوير المتكاملة (IDE) هي:
يدعم IDE IntelliJ 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.
Apache Flink هو مشروع مفتوح المصدر تابع لمؤسسة Apache Software Foundation (ASF). نشأ مشروع Apache Flink من مشروع البحث Stratosphere.