Flink調(diào)研(一)

前段時(shí)間調(diào)研了一下實(shí)時(shí)計(jì)算相關(guān)技術(shù)焕檬,因?yàn)楹笃跁?huì)搭建我們的數(shù)據(jù)分析平臺(tái)宴霸,由于近期精力有限,沒有做過多深入了解膏蚓,在我們測試庫上搭建flink服務(wù),做了一些常規(guī)的job提交等操作畸写,同時(shí)對apache flink做了一些入門的學(xué)習(xí)驮瞧,由于目前阿里云的實(shí)時(shí)計(jì)算框架,就是采用apache flink技術(shù)枯芬,所有后期會(huì)對apache flink進(jìn)行更深入的學(xué)習(xí)论笔。

核心要素

Checkpoint:Exactly-Once語義實(shí)現(xiàn)的關(guān)鍵;

State:如果當(dāng)前事件的處理結(jié)果與之前事件有關(guān)千所,則稱為有狀態(tài)處理狂魔;相反,如果當(dāng)前事件的處理結(jié)果只與事件本身相關(guān)淫痰,則為無狀態(tài)的最楷;

Window:流計(jì)算的基本單元,window將無限的流分隔成有限大小的bucket進(jìn)行處理待错;

Time:定義事件的順序籽孙;

特性

有狀態(tài)計(jì)算的Exactly-once語義。狀態(tài)是指flink能夠維護(hù)數(shù)據(jù)在時(shí)序上的聚類和聚合火俄,同時(shí)它的checkpoint機(jī)制

支持帶有事件時(shí)間(event time)語義的流處理和窗口處理犯建。事件時(shí)間的語義使流計(jì)算的結(jié)果更加精確,尤其在事件到達(dá)無序或者延遲的情況下瓜客。

支持高度靈活的窗口(window)操作适瓦。支持基于time、count谱仪、session玻熙,以及data-driven的窗口操作,能很好的對現(xiàn)實(shí)環(huán)境中的創(chuàng)建的數(shù)據(jù)進(jìn)行建模芽卿。

輕量的容錯(cuò)處理( fault tolerance)揭芍。 它使得系統(tǒng)既能保持高的吞吐率又能保證exactly-once的一致性。通過輕量的state snapshots實(shí)現(xiàn)

支持高吞吐卸例、低延遲称杨、高性能的流處理

支持savepoints 機(jī)制(一般手動(dòng)觸發(fā))。即可以將應(yīng)用的運(yùn)行狀態(tài)保存下來筷转;在升級應(yīng)用或者處理歷史數(shù)據(jù)是能夠做到無狀態(tài)丟失和最小停機(jī)時(shí)間姑原。

支持大規(guī)模的集群模式,支持yarn呜舒、Mesos锭汛。可運(yùn)行在成千上萬的節(jié)點(diǎn)上

支持具有Backpressure功能的持續(xù)流模型

Flink在JVM內(nèi)部實(shí)現(xiàn)了自己的內(nèi)存管理

支持迭代計(jì)算

支持程序自動(dòng)優(yōu)化:避免特定情況下Shuffle、排序等昂貴操作唤殴,中間結(jié)果進(jìn)行緩存

程序和數(shù)據(jù)源

Flink程序構(gòu)建的基本單元是stream和transformation(請注意般婆,DataSet實(shí)質(zhì)上也是stream)。一個(gè)stream是一個(gè)中間結(jié)果朵逝,一個(gè)transformation是一個(gè)操作蔚袍,該操作以一個(gè)或多個(gè)stream為輸入,計(jì)算輸出一個(gè)或多個(gè)stream為結(jié)果配名。

在運(yùn)行時(shí)啤咽,F(xiàn)link上運(yùn)行的程序會(huì)被映射成streaming dataflows,它包含了streams和transformations操作渠脉。每個(gè)dataflow以一個(gè)或者多個(gè)source開始宇整,以一個(gè)或多個(gè)sink結(jié)束。dataflow類似于有向無環(huán)圖(DAG)芋膘,特殊形式的環(huán)也允許通過iteration構(gòu)建鳞青。

在大多數(shù)情況下,程序中的transformation和dataflow中的操作是一一對應(yīng)關(guān)系索赏,但有時(shí)候一個(gè)transformation可能對應(yīng)了多個(gè)操作盼玄。

并行的數(shù)據(jù)流

在Flink中,程序天生是并行和分布式的:一個(gè)Stream可以被分成多個(gè)Stream分區(qū)(Stream Partitions)潜腻,一個(gè)Operator可以被分成多個(gè)Operator Subtask埃儿,每一個(gè)Operator Subtask是在不同的線程中獨(dú)立執(zhí)行的。一個(gè)Operator的并行度融涣,等于Operator Subtask的個(gè)數(shù)童番,一個(gè)Stream的并行度總是等于生成它的Operator的并行度

API

Flink有四個(gè)主要的API

DataStream API適合用于那些實(shí)現(xiàn)在數(shù)據(jù)流上轉(zhuǎn)換的程序。(例如:過濾威鹿,更新狀態(tài)剃斧,窗口定義,聚合)

DataSet API適合用于那些實(shí)現(xiàn)在數(shù)據(jù)流上轉(zhuǎn)換的程序(例如:過濾忽你,映射幼东,連接,分組)

Table API適合于關(guān)系流和批處理科雳,能輕松嵌入Flink的 DataSet API 和 DataStream API 的類SQL表達(dá)式的語言(Java和Scala)根蟹。

Streaming SQL 允許在流和多表上執(zhí)行SQL查詢。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末糟秘,一起剝皮案震驚了整個(gè)濱河市简逮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌尿赚,老刑警劉巖散庶,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蕉堰,死亡現(xiàn)場離奇詭異,居然都是意外死亡悲龟,警方通過查閱死者的電腦和手機(jī)屋讶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來躲舌,“玉大人丑婿,你說我怎么就攤上這事∶恍叮” “怎么了?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵秒旋,是天一觀的道長约计。 經(jīng)常有香客問我,道長迁筛,這世上最難降的妖魔是什么煤蚌? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮细卧,結(jié)果婚禮上尉桩,老公的妹妹穿的比我還像新娘。我一直安慰自己贪庙,他們只是感情好蜘犁,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著止邮,像睡著了一般这橙。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上导披,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天屈扎,我揣著相機(jī)與錄音,去河邊找鬼撩匕。 笑死鹰晨,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的止毕。 我是一名探鬼主播模蜡,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼滓技!你這毒婦竟也來了哩牍?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤令漂,失蹤者是張志新(化名)和其女友劉穎膝昆,沒想到半個(gè)月后丸边,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡荚孵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年妹窖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片收叶。...
    茶點(diǎn)故事閱讀 38,569評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡骄呼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出判没,到底是詐尸還是另有隱情蜓萄,我是刑警寧澤,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布澄峰,位于F島的核電站嫉沽,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏俏竞。R本人自食惡果不足惜绸硕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望魂毁。 院中可真熱鬧玻佩,春花似錦、人聲如沸席楚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽酣胀。三九已至刁赦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間闻镶,已是汗流浹背甚脉。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留铆农,地道東北人牺氨。 一個(gè)月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像墩剖,于是被迫代替她去往敵國和親猴凹。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 介紹 概述 Apache Flink是一個(gè)面向數(shù)據(jù)流處理和批量數(shù)據(jù)處理的可分布式的開源計(jì)算框架岭皂,它基于同一個(gè)Fli...
    stephen_k閱讀 50,770評論 0 22
  • Flink總結(jié) Flink簡介 Apache Flink作為一款高吞吐量郊霎、低延遲的針對流數(shù)據(jù)和批數(shù)據(jù)的分布式實(shí)時(shí)處...
    bigdata_er閱讀 10,589評論 0 10
  • Apache Flink是一個(gè)面向分布式數(shù)據(jù)流處理和批量數(shù)據(jù)處理的開源計(jì)算平臺(tái),它能夠基于同一個(gè)Flink運(yùn)行時(shí)爷绘,...
    康小為6840閱讀 1,191評論 0 7
  • 1. 程序和數(shù)據(jù)流 Flink程序構(gòu)建的基本單元是stream和transformation(請注意书劝,DataSe...
    郭尋撫閱讀 14,953評論 0 10
  • 記錄一下個(gè)人看了一些Flink文章后的理解與個(gè)人關(guān)注點(diǎn)进倍,目錄如下, Overview 基于Flink 1.4购对。先來...
    chenfh5閱讀 2,461評論 0 2