中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

flink中怎么部署集群

發布時間:2021-07-30 18:03:00 來源:億速云 閱讀:219 作者:Leah 欄目:大數據

本篇文章為大家展示了flink中怎么部署集群,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。


MiniCluster

這種模式我們一般是在用IDE調試程序的時候用到,當我們在本地用IDE開發程序的時候,執行main方法,flink會在本地啟動一個包含jobmanager和taskmanager的進程的minicluster,程序運行完成之后,這個cluster進程退出。

 

Standalone

這種模式就是直接在物理機上啟動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自己維護的,在生產環境下用的不多,所以我們也不做過多描述.

 

yarn

 

yarn session

  • 部署在yarn集群上的flink集群都是把資源的管理交給了yarn來管理。
  • yarn session的部署模式就是先預先在yarn集群上啟動一個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最后一項來提交任務flink中怎么部署集群

  • 這種session模式一般適用于批任務,也就是執行一段時間以后可以終止的任務,因為對于這種短時間執行的任務,可以避免在申請資源方面浪費過多時間。

  • 集群啟動之后,是沒有給flink集群分配資源的,當提交任務之后,yarn集群會根據請求再給任務分配資源,任務執行完成之后,系統隔一段時間會釋放相應的資源.(這個時間是可配置的,為了防止馬上有任務又來了,重新申請資源)

 

yarn per job

  • 我們上面講了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中怎么部署集群  

這個啟動命令也有很多的參數,我就不一一講解了,我用大白話講講我認為最核心的幾個參數。

  1. -d  采用分離模式
  2. -p  程序的并行度
  3. -ys 每個taskmanager有幾個slot,我們可以簡單的理解為flink會把taskmanager的內存分成幾份,在某些條件下,程序可以共用slot,提高效率,至于slot的概念,我們后續再講,今天就不多說了。用并行度除以這個值,然后就會得到flink會啟動幾個taskmanager     ,所以為了避免有多余的slot,我們最好設置并行度除以這個ys值能整除。
  4. -c 程序的入口類,我們可以在程序打包的時候指定入口類,如果沒有指定或者程序中有很多類,我們就需要通過這個-c參數來指定入口類了。
  5. 在命令行最后的參數是用戶jar包的參數.
  • 停止命令    
    第一,我們可以在flink的頁面上通過停止flink的任務來停止集群,在我們停止了flink任務之后,yarn會自動釋放相應的資源。
flink中怎么部署集群  

第二,通過命令行來停止:

${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的jar、相關的配置文件、用戶的jar都上傳到hdfs 的一個臨時目錄,默認是/user/{USER}/.flink/{applicationId}, 然后再構建flink集群的時候,再去找個目錄去獲取,程序部署成功之后,刪除相應的臨時目錄
 

application模式

這種模式是在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中怎么部署集群,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

丹东市| 揭东县| 汽车| 富顺县| 新乡市| 织金县| 恩平市| 彩票| 祁连县| 酒泉市| 汝城县| 宁晋县| 修文县| 利津县| 双江| 南安市| 若羌县| 星子县| 淮安市| 梧州市| 达孜县| 黔东| 左云县| 娄底市| 赫章县| 万山特区| 五台县| 威宁| 彭山县| 汕尾市| 南平市| 南召县| 太谷县| 张掖市| 湖南省| 康平县| 双峰县| 收藏| 双城市| 银川市| 阿鲁科尔沁旗|