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