這篇文章主要介紹“Flink核心概念是什么”,在日常操作中,相信很多人在Flink核心概念是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Flink核心概念是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
Flink程序是在分布式集合上實現轉換的常規程序(例如filtering, mapping, updating state, joining, grouping, defining windows, aggregating)。集合最初是從sources上創建,這些源包括:本地文件, kafka topics, 內存集合等。結果通過sink返回,sink可以將數據寫入文件中(分布式)或者終端輸出(命令行)。Flink可以運行在不同環境下,例如可以嵌入到其他程序中運行,也可以在單機運行,此外Flink可以在本地JVM中運行,也可以在分布式集群中運行。
有有界數據源也有無界數據源,可以使用批處理和流處理,使用批處理時使用DataSet API ,使用流處理時使用DataStream API。
第一步:獲取執行環境,批處理與流處理不同
第二步:獲取數據,socket、文本、kafka
第三步:transform
第四步:sink 到哪里去
第五步:觸發執行。
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將一些執行操作作為整體去執行。方便我們去優化。
到此,關于“Flink核心概念是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。