從疑問入手了解Flink

從疑問入手了解Flink

Flink網(wǎng)上的資料比起Spark來說是少很多的,我在學習的過程中有一些疑問,然后從疑問入手學習并參考官網(wǎng)文檔和阿里的云棲社區(qū)總結直晨。

批處理和流處理的區(qū)別?

最大的區(qū)別就是二者對流計算認知的不同卵慰。微批處理模式Micro-Batching計算模型可以理解成是"流是批的特例",而純流處理模式Native Streaming則是“批是流的特例”。MapReduce是批處理佛呻、Spark是為微批處理裳朋、Flink是純流式處理。當然Flink支持的批處理是在Native Streaming模式的框架上實現(xiàn)的吓著。

Flink會在什么地方觸發(fā)容錯機制鲤嫡?

在有大量機器的集群中,其中一個節(jié)點計算錯誤或者宕機可能會導致程序執(zhí)行失敗夜矗,或者得到錯誤的結果泛范。目前Flink支持兩種數(shù)據(jù)容錯機制分別是:At Least Once至少消費一次让虐,可能存在重復消費和Exactly Once:精確一次紊撕。同時Flink容錯可以歸納為三種場景

  • 系統(tǒng)內(nèi)部容錯時 自身算子

    Flink基于自身的CheckPointing機制實現(xiàn)了剛提到的兩種容錯模式。

  • 讀取外部數(shù)據(jù)源時 Source

    一般外部Source都支持 At Least Once模式赡突,如果希望有Exactly Once模式那么就需要對應外部數(shù)據(jù)源有記錄position的支持对扶,可以記錄當前讀取位置,并且支持根據(jù)位置進行讀取類似Kafka惭缰。

  • 落地到外部數(shù)據(jù)源時 Sink

    同外部數(shù)據(jù)源Source

Flink什么時候用批處理什么時候用流處理

Flink在網(wǎng)絡傳輸層上有兩種模式:PIPELINED模式即一條數(shù)據(jù)處理完立刻傳輸給下一個節(jié)點處理和BATCH模式即將數(shù)據(jù)緩存起來等所有數(shù)據(jù)處理完后在傳輸?shù)较聜€節(jié)點處理浪南。

我認為一般情況如Map和Count為了更低的延遲和性能都是PIPELINED模式更加高效,但如果要有Sort漱受、Merge络凿、Join這類操作批處理會使用BATCH模式。

Flink中的Table/SQL api到底是如何轉(zhuǎn)換成DataStream和DataSet的呢昂羡?

Flink是使用的Apache開源的Calcite項目做SQL解析的絮记。入門可參考文章

Calcite通過Java CC將SQL解析成AST樹,經(jīng)過校驗虐先、優(yōu)化后進行執(zhí)行怨愤,將物理執(zhí)行計劃轉(zhuǎn)化成Flink可執(zhí)行的程序。

引用云棲社區(qū)的一張圖

image.png

算子如何分類蛹批?

看完官網(wǎng)有很多概念比如Scalar Function撰洗、Table Function篮愉、Aggregate Function、UDF差导、UDTF试躏、UDAF等等,他們的關系需要縷一下柿汛,其實指的都是不同層面上的相同意思冗酿。

可以先把Flink的算子分為單流操作多流操作

多流操作 - 可以分為UNION-將字段一致的數(shù)據(jù)流合并和 JOIN-將數(shù)據(jù)類型不一致的的數(shù)據(jù)流連接成一個數(shù)據(jù)流络断。多流操作的目的都是將多個數(shù)據(jù)流合并成一個數(shù)據(jù)流再進行操作裁替。

單流操作 - 按輸入輸出歸類

類型 輸入 輸出 Table/SQL算子 DataStream/DataSet算子
Scalar Function 1 1 Built-in & UDF Map
Table Function 1 N(N>=0) Built-in & UDTF FlatMap
Aggregate Function N(N>=0) 1 Built-in & UDAF Reduce

Flink的時間類型有什么?

image.png
  • ProcessingTime 算計開始計算的時間貌笨,F(xiàn)link默認時間類型弱判,效率最高,延遲最低锥惋,因為是算子執(zhí)行的時間所以在分布式數(shù)據(jù)中多次運行會每次都不一致昌腰。
  • IngestionTime 是數(shù)據(jù)進入Flink框架時間,相對于ProcessingTime來說較為穩(wěn)定膀跌,因為數(shù)據(jù)源進入只記錄一次遭商。
  • EventTime 數(shù)據(jù)在生產(chǎn)后并在進入Flink之前記錄的時間,如果要防止window中的出現(xiàn)的亂序問題用Watermark解決時捅伤,必須設定時間為Event time劫流。
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市丛忆,隨后出現(xiàn)的幾起案子祠汇,更是在濱河造成了極大的恐慌,老刑警劉巖熄诡,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件可很,死亡現(xiàn)場離奇詭異,居然都是意外死亡凰浮,警方通過查閱死者的電腦和手機我抠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來袜茧,“玉大人菜拓,你說我怎么就攤上這事”怪埽” “怎么了尘惧?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長递递。 經(jīng)常有香客問我喷橙,道長啥么,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任贰逾,我火速辦了婚禮悬荣,結果婚禮上,老公的妹妹穿的比我還像新娘疙剑。我一直安慰自己氯迂,他們只是感情好,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布言缤。 她就那樣靜靜地躺著嚼蚀,像睡著了一般。 火紅的嫁衣襯著肌膚如雪管挟。 梳的紋絲不亂的頭發(fā)上轿曙,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天,我揣著相機與錄音僻孝,去河邊找鬼导帝。 笑死,一個胖子當著我的面吹牛穿铆,可吹牛的內(nèi)容都是我干的您单。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼荞雏,長吁一口氣:“原來是場噩夢啊……” “哼虐秦!你這毒婦竟也來了?” 一聲冷哼從身側響起讯檐,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤羡疗,失蹤者是張志新(化名)和其女友劉穎染服,沒想到半個月后别洪,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡柳刮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年挖垛,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片秉颗。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡痢毒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蚕甥,到底是詐尸還是另有隱情哪替,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布菇怀,位于F島的核電站凭舶,受9級特大地震影響晌块,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜帅霜,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一匆背、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧身冀,春花似錦钝尸、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至剩愧,卻和暖如春踢星,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背隙咸。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工沐悦, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人五督。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓藏否,卻偏偏與公主長得像,于是被迫代替她去往敵國和親充包。 傳聞我的和親對象是個殘疾皇子副签,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351