您好,登錄后才能下訂單哦!
本篇文章為大家展示了flink中怎么部署集群,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
這種模式我們一般是在用IDE調試程序的時候用到,當我們在本地用IDE開發程序的時候,執行main方法,flink會在本地啟動一個包含jobmanager和taskmanager的進程的minicluster,程序運行完成之后,這個cluster進程退出。
這種模式就是直接在物理機上啟動flink集群。我們可以通過{FLINK_HOME}/conf/flink-conf.yaml.
此外,我們可以用 ${FLINK_HOME}/bin/taskmanager.sh start 再啟動一個taskmanager。
這時我們通過jps命令查看一下啟動的進程
76085 StandaloneSessionClusterEntrypoint
76331 TaskManagerRunner
76846 TaskManagerRunner
我們看到這時候啟動了兩個taskmanager
這種部署模式對flink集群的資源管理是flink自己維護的,在生產環境下用的不多,所以我們也不做過多描述.
啟動集群的命令如下:
${FLINK_HOME}/bin/yarn-session.sh
這個命令有很多的參數,可以在后面加 -h 看下,我這里著重介紹一下 -d參數。
加上-d之后,指的是隔離模式,也就是啟動之后和客戶端就斷了聯系,如果要停止集群,需要通過yarn application -kill {applicationId} 來停止集群.
如果沒指定-d,這種情況集群會和客戶端一直保持著連接,客戶端退出之后,集群也會退出。
提交任務
往yarn session集群提交任務,只需要在相應的客戶端機器上,通過${FLINK_HOME}/bin/flink run -d user.jar 這樣的命令就可以提交到session集群.
此外我們還可以通過web ui最后一項來提交任務
這種session模式一般適用于批任務,也就是執行一段時間以后可以終止的任務,因為對于這種短時間執行的任務,可以避免在申請資源方面浪費過多時間。
集群啟動之后,是沒有給flink集群分配資源的,當提交任務之后,yarn集群會根據請求再給任務分配資源,任務執行完成之后,系統隔一段時間會釋放相應的資源.(這個時間是可配置的,為了防止馬上有任務又來了,重新申請資源)
我們上面講了session模式部署集群,這種模式可以在一個集群里跑很多的任務,這些任務共享了flink集群的資源,隔離性做的不是很好,所以flink還提供了另外一種執行模式:yarn per job模式。
這種模式會在yarn上為每個flink任務都建立一個單獨的集群,優勢就是每個任務單獨的進行資源管理,和其他任務資源隔離。這種模式適用于對啟動時間不太敏感,需要長時間運行的流任務。
啟動命令
${FLINK_HOME}/bin/flink run -d -p 4 -ys 2 -m yarn-cluster -c com.example.Test userjar.jar arg1 arg2
提交成功之后,我們會在yarn的管理頁面看到一個類似的任務
這個啟動命令也有很多的參數,我就不一一講解了,我用大白話講講我認為最核心的幾個參數。
第二,通過命令行來停止:
${FLINK_HOME}/bin/flink stop -m yarn-cluster -yid application_1592386606716_0005 c8ee546129e8480809ee62a4ce7dd91d
這個時候需要指定yarn applicationId和flink job id
第三,通過程序來停止
https://blog.csdn.net/zhangjun5965/article/details/106820591
如果我們做了一個實時平臺這樣的系統,就不能手工通過命令行來停止了,可以調用相應的api來停止任務.
這種模式是在flink 1.11 版本中提供的,flink的yarn per job模式啟動的時候會把本地的flink的jar和用戶的jar都上傳到hdfs,這個過程非常的消耗網絡的帶寬,如果同時有多個人提交任務的話,那么對網絡的影響就更大,此外,每次提交任務的時候flink的jar包是一樣的,也不用每次都拷來拷去的,所以flink提供了一種新的application模式,可以把flink的jar和用戶的jar都預先放到hdfs上,這樣就能省去yarn per job模式提交任務的jar包拷貝工作,節省了帶寬,加快了提交任務的速度.
具體的命令如下:
./bin/flink run-application -p 1 -d -t yarn-application \
-yD yarn.provided.lib.dirs="hdfs://localhost/data/flink/libs/" \
hdfs://localhost/data/flink/user-lib/TopSpeedWindowing.jar
上述內容就是flink中怎么部署集群,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。