Apache Flink 零基础入门(六)Flink核心概念
????Flink程序是在分布式集合上實現轉換的常規程序(例如filtering, mapping, updating state, joining, grouping, defining windows, aggregating)。集合最初是從sources上創建,這些源包括:本地文件, kafka topics, 內存集合等。結果通過sink返回,sink可以將數據寫入文件中(分布式)或者終端輸出(命令行)。Flink可以運行在不同環境下,例如可以嵌入到其他程序中運行,也可以在單機運行,此外Flink可以在本地JVM中運行,也可以在分布式集群中運行。
? ? 有有界數據源也有無界數據源,可以使用批處理和流處理,使用批處理時使用DataSet API ,使用流處理時使用DataStream API。
Flink編程模型
第一步:獲取執行環境,批處理與流處理不同
第二步:獲取數據,socket、文本、kafka
第三步:transform
第四步:sink 到哪里去
第五步:觸發執行。
Lazy Evaluation 延遲執行
All Flink programs are executed lazily: When the program’s main method is executed, the data loading and transformations do not happen directly. Rather, each operation is created and added to the program’s plan. The operations are actually executed when the execution is explicitly triggered by an execute() call on the execution environment. Whether the program is executed locally or on a cluster depends on the type of execution environment.
The lazy evaluation lets you construct sophisticated programs that Flink executes as one holistically planned unit.
?上面的意思是說:當主函數被執行時,數據加載和transformation不會馬上執行。每一個操作會被添加到程序的執行計劃中,相當于僅僅是記下來了。當這些"執行操作"被顯式觸發時(例如調用execute()時),才會真正執行操作。
這種延遲執行方式可以讓我們構建非常復雜的應用程序,Flink將一些執行操作作為整體去執行。方便我們去優化。
?
總結
以上是生活随笔為你收集整理的Apache Flink 零基础入门(六)Flink核心概念的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Apache Flink 零基础入门(五
- 下一篇: Apache Flink 零基础入门(七