很多朋友都想知道java flink是什么?下面就一起來了解一下吧~
1、Flink是什么
Java Apache Flink是一個開源的分布式,高性能,高可用,準確的流處理框架。支持實時流處理和批處理。
2、Flink特性
(1)支持批處理和數據流程序處理
(2)優雅流暢的支持java和scala api
(3)同時支持高吞吐量和低延遲
(4)支持事件處理和無序處理通過SataStream API,基于DataFlow數據流模型
(5)在不同的時間語義(時間時間,處理時間)下支持靈活的窗口(時間,技術,會話,自定義觸發器)
(6)僅處理一次的容錯擔保
(7)自動反壓機制
(8)圖處理(批) 機器學習(批) 復雜事件處理(流)
(9)在dataSet(批處理)API中內置支持迭代程序(BSP)
(10)高效的自定義內存管理,和健壯的切換能力在in-memory和out-of-core中
(11)兼容hadoop的mapreduce和storm
(12)集成YARN,HDFS,Hbase 和其它hadoop生態系統的組件
3、Flink分布式執行
Flink分布式程序包含2個主要的進程:JobManager和TaskManager.當程序運行時,不同的進程就會參與其中,包括Jobmanager、TaskManager和JobClient
Flink程序提交給JobClient,JobClient再提交到JobManager,JobManager負責資源的協調和Job的執行。一旦資源分配完成,task就會分配到不同的TaskManager,TaskManager會初始化線程去執行task,并根據程序的執行狀態向JobManager反饋,執行的狀態包括starting、in progress、finished以及canceled和failing等。當Job執行完成,結果會返回給客戶端。
以上就是小編今天的分享,希望能夠幫到大家。