Apache Flink 源碼解析(一)(Legacy mode已廢棄)入口愉昆,bash腳本

概述

因?yàn)樽约涸陂喿x源碼的過(guò)程中曾經(jīng)遇到過(guò)很多問(wèn)題,現(xiàn)在稍微有一點(diǎn)點(diǎn)的經(jīng)驗(yàn)希望分享給很多從零開(kāi)始的人麻蹋。Apache的項(xiàng)目代碼量很大跛溉,很難做到徹底通讀,我也是一步一步的先從整體的架構(gòu)來(lái)分析扮授。閱讀源碼的好處有很多芳室,在此就不一一贅述。

介紹

首先介紹以下flink刹勃,它是一個(gè)分布式堪侯,高容錯(cuò),能保證每條消息只被處理一次的流處理引擎深夯,也是對(duì)Google Dataflow模型的一個(gè)較好的開(kāi)源實(shí)現(xiàn)抖格,雖然還是有一些不足之處。雖然在runtime中用的是同一個(gè)引擎咕晋,但是卻提供了針對(duì)stream和batch的兩套api,不過(guò)在后續(xù)的更新中應(yīng)該更好地加入了對(duì)sql的支持來(lái)完成統(tǒng)一收奔。

本次解析參考的代碼是flink1.2版本掌呜。

另外Flink是使用Scala和Java混編,關(guān)于Scala和分布式工具包Akka的學(xué)習(xí)資料后續(xù)我會(huì)補(bǔ)充坪哄。

入口

首先是找到入口质蕉。因?yàn)橐粋€(gè)項(xiàng)目中可能有幾個(gè)主函數(shù),而且大數(shù)據(jù)相關(guān)的項(xiàng)目還會(huì)兼容Yarn和Mesos翩肌,入口的話就更多了模暗。在這里我會(huì)用Local模式和Standalone Cluster模式來(lái)講解,一方面對(duì)Yarn和Mesos相關(guān)的背景就不需要怎么介紹(事實(shí)是我還沒(méi)學(xué) : ( ...)念祭,另一方面入門門檻也稍低一些兑宇,還省略了很多代碼可以以后再分析。

要找入口粱坤,那就要去找啟動(dòng)腳本隶糕,建議大家可以稍微學(xué)一下bash瓷产, 不說(shuō)能寫的多好,最起碼能看懂啟動(dòng)腳本就行枚驻。

Flink的啟動(dòng)腳本源碼在flink-dist/src/main/flink-bin/bin文件夾下濒旦,其中有start-cluster和start-local。其中start-local的代碼很簡(jiǎn)單


start-local.sh代碼片段

就是調(diào)用同文件夾下的jobmanager.sh腳本再登,因?yàn)槭潜镜啬J蕉耍暂斎雲(yún)?shù)是local。其中taskmanager的啟動(dòng)時(shí)嵌入在同一個(gè)jvm中锉矢,后面會(huì)做解析。

而start-cluster集群模式下的運(yùn)行就較為復(fù)雜


start-cluster.sh代碼片段

在這里不會(huì)對(duì)Zookeeper下的高可用模式進(jìn)行介紹沈撞,只介紹普通集群模式慷荔,所以直接參考else后面的語(yǔ)句,同樣是運(yùn)行jobmanager腳本缠俺,只是第二個(gè)命令行參數(shù)變成了cluster显晶。所以接下來(lái)去看jobmanager.sh。jobmanager.sh在對(duì)入?yún)⑦M(jìn)行了一系列判斷之后壹士,會(huì)到以下代碼塊磷雇。


jobmanager.sh代碼片段


不管是前臺(tái)運(yùn)行還是后臺(tái)運(yùn)行,都會(huì)調(diào)用flink-daemon.sh腳本躏救,下面就是啟動(dòng)腳本的核心唯笙。


flink-daemon.sh代碼片段判斷部分

在flink中,他會(huì)根據(jù)先前運(yùn)行的腳本調(diào)用daemon腳本盒使,所以需要運(yùn)行的可能不只是jobmanager崩掘,在這兒因?yàn)槲覀兪菑膉obmanager.sh中進(jìn)入daemon,所以需要運(yùn)行的class是org.apache.flink.runtime.jobmanaer.JobManager少办,所以我們看源碼的入口也就在這個(gè)類苞慢。

以下是啟動(dòng)jvm將該類作為主程序的運(yùn)行,其中很多事jvm的啟動(dòng)參數(shù)英妓,不做細(xì)講挽放。


flink-daemon.sh代碼片段運(yùn)行部分

總結(jié)

至此,flink的local與cluster啟動(dòng)腳本應(yīng)該已經(jīng)比較清晰蔓纠,如果想開(kāi)始閱讀源碼的話就從org.apache.flink.runtime.jobmanaer.JobManager這個(gè)類開(kāi)始看起辑畦。因?yàn)閒link中基于akka的部分大部分是使用scala實(shí)現(xiàn),所以建議可以先去看scala文檔腿倚,或者runoob.com的scala入門教程纯出,后續(xù)還可以研讀Scala In Depth這本書。

下一篇解析將探討Flink的總體架構(gòu),與代碼中啟動(dòng)的流程

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末潦刃,一起剝皮案震驚了整個(gè)濱河市侮措,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌乖杠,老刑警劉巖分扎,帶你破解...
    沈念sama閱讀 216,919評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異胧洒,居然都是意外死亡畏吓,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門卫漫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)菲饼,“玉大人,你說(shuō)我怎么就攤上這事列赎『暝茫” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 163,316評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵包吝,是天一觀的道長(zhǎng)饼煞。 經(jīng)常有香客問(wèn)我,道長(zhǎng)诗越,這世上最難降的妖魔是什么砖瞧? 我笑而不...
    開(kāi)封第一講書人閱讀 58,294評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮嚷狞,結(jié)果婚禮上块促,老公的妹妹穿的比我還像新娘。我一直安慰自己床未,他們只是感情好竭翠,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,318評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著薇搁,像睡著了一般逃片。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上只酥,一...
    開(kāi)封第一講書人閱讀 51,245評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音呀狼,去河邊找鬼裂允。 笑死,一個(gè)胖子當(dāng)著我的面吹牛哥艇,可吹牛的內(nèi)容都是我干的绝编。 我是一名探鬼主播,決...
    沈念sama閱讀 40,120評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼十饥!你這毒婦竟也來(lái)了窟勃?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 38,964評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤逗堵,失蹤者是張志新(化名)和其女友劉穎秉氧,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蜒秤,經(jīng)...
    沈念sama閱讀 45,376評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡汁咏,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,592評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了作媚。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片攘滩。...
    茶點(diǎn)故事閱讀 39,764評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖纸泡,靈堂內(nèi)的尸體忽然破棺而出漂问,到底是詐尸還是另有隱情,我是刑警寧澤女揭,帶...
    沈念sama閱讀 35,460評(píng)論 5 344
  • 正文 年R本政府宣布蚤假,位于F島的核電站,受9級(jí)特大地震影響田绑,放射性物質(zhì)發(fā)生泄漏勤哗。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,070評(píng)論 3 327
  • 文/蒙蒙 一掩驱、第九天 我趴在偏房一處隱蔽的房頂上張望芒划。 院中可真熱鬧,春花似錦欧穴、人聲如沸民逼。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,697評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)拼苍。三九已至,卻和暖如春调缨,著一層夾襖步出監(jiān)牢的瞬間疮鲫,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,846評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工弦叶, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留俊犯,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,819評(píng)論 2 370
  • 正文 我出身青樓伤哺,卻偏偏與公主長(zhǎng)得像燕侠,于是被迫代替她去往敵國(guó)和親者祖。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,665評(píng)論 2 354

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