Apache Flink เป็นเฟรมเวิร์กการประมวลผลสตรีมแบบโอเพ่นซอร์สที่มีความสามารถในการประมวลผลสตรีมและการประมวลผลแบบกลุ่มอันทรงพลัง
เรียนรู้เพิ่มเติมเกี่ยวกับ Flink ได้ที่ https://flink.apache.org/
รันไทม์ที่เน้นการสตรีมเป็นหลักซึ่งรองรับทั้งการประมวลผลเป็นชุดและโปรแกรมการสตรีมข้อมูล
API ที่หรูหราและคล่องแคล่วใน Java
รันไทม์ที่รองรับปริมาณงานที่สูงมากและเวลาแฝงของเหตุการณ์ต่ำในเวลาเดียวกัน
รองรับ เวลากิจกรรม และการประมวล ผลที่ไม่อยู่ในลำดับ ใน DataStream API โดยอิงตาม Dataflow Model
หน้าต่างที่ยืดหยุ่น (เวลา จำนวน เซสชัน ทริกเกอร์แบบกำหนดเอง) ข้ามความหมายเวลาที่แตกต่างกัน (เวลาเหตุการณ์ เวลาประมวลผล)
ความทนทานต่อข้อผิดพลาดพร้อมการรับประกันการประมวลผล เพียงครั้งเดียว
แรงกดดันย้อนกลับตามธรรมชาติในโปรแกรมสตรีมมิ่ง
ไลบรารีสำหรับการประมวลผลกราฟ (แบทช์), การเรียนรู้ของเครื่อง (แบทช์) และการประมวลผลเหตุการณ์ที่ซับซ้อน (สตรีมมิ่ง)
การจัดการหน่วยความจำแบบกำหนดเองเพื่อการสลับที่มีประสิทธิภาพและแข็งแกร่งระหว่างอัลกอริธึมการประมวลผลข้อมูลในหน่วยความจำและนอกคอร์
เลเยอร์ความเข้ากันได้สำหรับ 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 ส่วนใหญ่ได้รับการส่งออกไปยัง repos แต่ละรายการภายใต้ Apache Software Foundation:
Apache Flink เป็นโครงการโอเพ่นซอร์สของ The Apache Software Foundation (ASF) โครงการ Apache Flink มีต้นกำเนิดมาจากโครงการวิจัย Stratosphere