flink實戰 基本概念

2021-10-24 00:16:01 字數 1900 閱讀 3439

基本概念

flink程式執行時包含兩個主要的程序,master和worker。主要分為:job client 、jobmanager、taskmanager.

master程序是job manager,協調和管理著程式的執行,主要職責:排程任務、管理checkpoints、故障恢復等

job manager包含如下元件:

scheduler

flink的執行者叫做 task slots,每個taskmanger需要管理乙個或者多個 task slots

check pointing

check pointing 是flink實現一致性容錯方案的支撐。它維持了分發的資料流和執行者狀態的一致性快照。在出錯的時,flink停止執行者、重置它們並且從最新可用的checkpoint開始執行。

stream barriers 是flink快照的核心元素:

task manager是工作節點(worker nodes),負責任務在jvm中的乙個或者多個執行緒下執行。任務執行的並行度(parallelism)由每個task manager中可用的task slots決定。每個任務代表了分配給task slot的一系列的資源。例如乙個task manager有四個slots,,然後它將分配給每個task slot 25%的記憶體。乙個task slot裡可能會有乙個或者多個執行緒執行。在相同slot裡的執行緒分享相同的虛擬機器。在相同jvm裡的tasks分享了tcp 連線和心跳資訊:

job client 不是flink程式內部的部分,但是是執行的開始節點,job client職責是從使用者那裡接受程式,然後建立乙個資料流,把資料流提交給job manager 以備將來執行,一旦任務執行完成,jobclient 提供乙個結果給使用者。

例如下邊編寫乙個簡單的word count 程式:

val text = enc.

readtextfile

("input.txt");

//source

val count = text.

flatmap

(_.tolowercase.

split

("\\w+"

) filter (_.nonempty)

.map

.groupby(0

).sum(1)

//transformation

counts.

writeascsv

("output.txt"

,"\n"

," "

)//sink

如果乙個客戶端接受了使用者提交的程式,他將轉換成乙個data flow,data flow 看起來如下:

flink資料流預設是並行分布的。 對於並行資料處理,flink分割運算子和流。 操作員分割槽被稱為子任務。 流可以以一對一或重新分布的方式分發資料。

資料直接從源流向map運算子,因為不需要混洗資料。 但是對於groupby操作,flink可能需要通過keys重新分配資料才能獲得正確的結果:

以上基本展示了flink的基本架構和執行模組兒。

基本概念 C 基本概念

由於工作中需要用到c 編寫的一些工具,有時候需要根據需求修改或者定製工具,所以現在不得不學習一下c 的基礎語法,此為筆記,不成章法!機器語言 組合語言 高階語言 面向過程的程式設計方法 物件導向的程式設計方法 泛型程式設計方法 1 演算法設計 2 源程式編輯 3 編譯 4 連線 5 執行除錯 輸入裝...

hadoop實戰 一 hadoop基本概念

hadoop wiki上定義,apache hadoop is an open source software framework used for distributed storage and processing of very large data sets 就是說hadoop是 大資料下 ...

基本概念 數控系統基本概念

第一章 基本概念 數控工具機cnc是一種按事先編制好的加工零件程式進行加工的高效 自動化加工裝置。是 computer numerical control machine tools 的簡稱。數控工具機較好地解決了複雜 精密 小批量 多品種的零件加工問題,是一種柔性的 高效能的自動化工具機。西門子系...