網(wǎng)站建設(shè)賬戶搭建頁面關(guān)鍵詞優(yōu)化
分析&回答
1.開發(fā)者模式
? ??在idea中運(yùn)行Flink程序的方式就是開發(fā)模式。
2.local-cluster模式
? ??Flink中的Local-cluster(本地集群)模式,單節(jié)點(diǎn)運(yùn)行,主要用于測(cè)試, 學(xué)習(xí)。
3.Standalone模式
????????獨(dú)立集群模式,由Flink自身提供計(jì)算資源。
4.Yarn模式
把Flink應(yīng)用提交給Yarn的ResourceManager
Flink會(huì)根據(jù)運(yùn)行在JobManger上的job的需要的slot的數(shù)量動(dòng)態(tài)的分配TaskManager資源
Yarn又分3種模式
4.1Session-Cluster
Session-Cluster模式需要先啟動(dòng)Flink集群,向Yarn申請(qǐng)資源。以后提交任務(wù)都向這里提交。
這個(gè)Flink集群會(huì)常駐在yarn集群中,除非手工停止。
在向Flink集群提交Job的時(shí)候, 如果資源被用完了,則新的Job不能正常提交.
缺點(diǎn): 如果提交的作業(yè)中有長(zhǎng)時(shí)間執(zhí)行的大作業(yè), 占用了該Flink集群的所有資源, 則后續(xù)無法提交新的job.
所以, Session-Cluster適合那些需要頻繁提交的多個(gè)小Job, 并且執(zhí)行時(shí)間都不長(zhǎng)的Job.
4.2Per-Job-Cluster
一個(gè)Job會(huì)對(duì)應(yīng)一個(gè)Flink集群,每提交一個(gè)作業(yè)會(huì)根據(jù)自身的情況,都會(huì)單獨(dú)向yarn申請(qǐng)資源,直到作業(yè)執(zhí)行完成,一個(gè)作業(yè)的失敗與否并不會(huì)影響下一個(gè)作業(yè)的正常提交和運(yùn)行。獨(dú)享Dispatcher和ResourceManager,按需接受資源申請(qǐng);適合規(guī)模大長(zhǎng)時(shí)間運(yùn)行的作業(yè)。
每次提交都會(huì)創(chuàng)建一個(gè)新的flink集群,任務(wù)之間互相獨(dú)立,互不影響,方便管理。任務(wù)執(zhí)行完成之后創(chuàng)建的集群也會(huì)消失。
Per-job模式執(zhí)行結(jié)果,一個(gè)job對(duì)應(yīng)一個(gè)Application
4.3Application Mode
Application Mode會(huì)在Yarn上啟動(dòng)集群, 應(yīng)用jar包的main函數(shù)(用戶類的main函數(shù))將會(huì)在JobManager上執(zhí)行. 只要應(yīng)用程序執(zhí)行結(jié)束, Flink集群會(huì)馬上被關(guān)閉. 也可以手動(dòng)停止集群.
與Per-Job-Cluster的區(qū)別:就是Application Mode下, 用戶的main函數(shù)式在集群中執(zhí)行的,并且當(dāng)一個(gè)application中有多個(gè)job的話,per-job模式則是一個(gè)job對(duì)應(yīng)一個(gè)yarn中的application,而Application Mode則這個(gè)application中對(duì)應(yīng)多個(gè)job。
Application Mode模式執(zhí)行結(jié)果,多個(gè)job對(duì)應(yīng)一個(gè)Application
反思&擴(kuò)展
官方建議:
出于生產(chǎn)的需求, 我們建議使用Per-job or Application Mode,因?yàn)樗麄兘o應(yīng)用提供了更好的隔離!
ci.apache.org/projects/fl…
喵嗚面試助手:一站式解決面試問題,你可以搜索微信小程序 [喵嗚面試助手]?或關(guān)注 [喵嗚刷題] -> 面試助手?免費(fèi)刷題。如有好的面試知識(shí)或技巧期待您的共享!