大資料開發筆記
Flink基礎
1、簡單介紹一下 Flink
Flink 是一個框架和分散式處理引擎,用於對無界和有界資料流進行有狀態計算。並且 Flink 提供了資料分佈、容錯機制以及資源管理等核心功能。Flink提供了諸多高抽象層的API以便使用者編寫分散式任務:
DataSet API, 對靜態資料進行批處理操作,將靜態資料抽象成分散式的資料集,使用者可以方便地使用Flink提供的各種操作符對分散式資料集進行處理,支援Java、Scala和Python。
DataStream API,對資料流進行流處理操作,將流式的資料抽象成分散式的資料流,使用者可以方便地對分散式資料流進行各種操作,支援Java和Scala。
Table API,對結構化資料進行查詢操作,將結構化資料抽象成關係表,並通過類SQL的DSL對關係表進行各種查詢操作,支援Java和Scala。
此外,Flink 還針對特定的應用領域提供了領域庫,例如: Flink ML,Flink 的機器學習庫,提供了機器學習Pipelines API並實現了多種機器學習演算法, Gelly,Flink 的圖計算庫,提供了圖計算的相關API及多種圖計算演算法實現。
2、Flink相比傳統的Spark Streaming區別?
這個問題是一個非常巨集觀的問題,因為兩個框架的不同點非常之多。但是在面試時有非常重要的一點一定要回答出來:Flink 是標準的實時處理引擎,基於事件驅動。而 Spark Streaming 是微批(Micro-Batch)的模型 。
下面我們就分幾個方面介紹兩個框架的主要區別:
架構模型Spark Streaming 在執行時的主要角色包括:Master、Worker、Driver、Executor,Flink 在執行時主要包含:Jobmanager、Taskmanager和Slot。
任務排程Spark Streaming 連續不斷的生成微小的資料批次,構建有向無環圖DAG,Spark Streaming 會依次建立 DStreamGraph、JobGenerator、JobScheduler。Flink 根據使用者提交的程式碼生成 StreamGraph,經過優化生成 JobGraph,然後提交給 JobManager進行處理,JobManager 會根據 JobGraph 生成 ExecutionGraph,ExecutionGraph 是 Flink 排程最核心的資料結構,JobManager 根據 ExecutionGraph 對 Job 進行排程。
時間機制Spark Streaming 支援的時間機制有限,只支援處理時間。 Flink 支援了流處理程式在時間上的三個定義:處理時間、事件時間、注入時間。同時也支援 watermark 機制來處理滯後資料。
容錯機制對於 Spark Streaming 任務,我們可以設定 checkpoint,然後假如發生故障並重啟,我們可以從上次 checkpoint 之處恢復,但是這個行為只能使得資料不丟失,可能會重複處理,不能做到恰好一次處理語義。Flink 則使用兩階段提交協議來解決這個問題。
3、Flink的元件棧有哪些?
根據 Flink 官網描述,Flink 是一個分層架構的系統,每一層所包含的元件都提供了特定的抽象,用來服務於上層元件。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70016760/viewspace-2887461/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 大資料筆記01--大資料概述大資料筆記
- 大資料個人筆記(一)大資料筆記
- 筆記:大話資料結構筆記資料結構
- 大資料學習筆記(四)大資料筆記
- 大資料學習筆記(五)大資料筆記
- 大資料學習筆記(六)大資料筆記
- 大資料3.2 -- 實時筆記大資料筆記
- 大資料學習筆記(十五)-大資料排程框架大資料筆記框架
- 大資料學習筆記(十七)-MapReduce大資料筆記
- 大資料學習筆記(十八)-MRUnit大資料筆記
- iOS開發筆記— 資料庫、Crash、記憶體問題分析iOS筆記資料庫記憶體
- 大資料教程分享Actor學習筆記大資料筆記
- 大資料之 Hadoop學習筆記大資料Hadoop筆記
- 大資料學習筆記(十四)-Sqoop大資料筆記OOP
- 電商大資料學習筆記:理論大資料筆記
- 電商大資料學習筆記:實戰大資料筆記
- Kinect開發學習筆記之(七)骨骼資料的提取筆記
- 教育大資料之資料開發系統大資料
- fyne 開發筆記筆記
- Laravel 開發筆記Laravel筆記
- golang 開發筆記Golang筆記
- 【筆記】敏捷開發筆記敏捷
- 工業大資料筆記2020大資料筆記
- 大資料學習筆記(十三)-Hive高階大資料筆記Hive
- 什麼是大資料開發?大資料
- 大資料開發之路:hive篇大資料Hive
- 如何大資料開發入門大資料
- 大資料開發-資料表監控-實現大資料
- 【筆記】關於大資料的一些想法筆記大資料
- 元件包開發筆記元件筆記
- 小程式開發筆記筆記
- Android開發筆記Android筆記
- EBS開發筆記-1筆記
- EBS開發筆記-2筆記
- IOS 開發筆記2iOS筆記
- Java 開發筆記16Java筆記
- 大資料前景如何?大資料開發工程師是什麼?大資料工程師
- 什麼是大資料?大資料開發是做什麼的?大資料