flink on yarn

在flink on yarn模式中

flink yarn-session的兩種提交方式

1.公用一個yarn-session

在yarn中初始化一個flink集羣,開闢指定的資源,以後提交任務都向這裏提交。這個flink集羣會常駐在yarn集羣中,除非手工停止。

2.每個job提供一個yarn-session

每次提交都會創建一個新的flink集羣,任務之間互相獨立,互不影響,方便管理。任務執行完成之後創建的集羣也會消失。

第一種方式

1.首先啓動yarn session,並且會啓動Flink的兩個必要服務:JobManager和TaskManagers,然後你可以向集羣提交作業。同一個Session中可以提交多個Flink作業。

線上腳本: bin/yarn-session.sh -n 7 -s 8 -jm 3072 -tm 32768 -qu root.*.*-nm *-* -d

 

其中申請7個taskManager 每個8核 每個taskmanager有32768M內存 

這樣我們就啓動了一個yarn-session 就可以提交flink任務了。

2.我們可以使用./bin/flink腳本提交作業

線上腳本: bin/flink run -c **** jars/**** test

-c 是全類名

3.啓動之後如何停止運行的程序

關閉jobmanager

線上腳本:bin/flink cancel -yid application_1535964220442_0034

通過cancel命令進行停止

或者通過yarn application -kill applicationId 直接將yarn-session停止掉

或者通過 flink list 獲得 jobId , bin/flink cancel  jobId 

第二種方式

 

nohup bin/flink run -m yarn-cluster -yn 7 -s hdfs:///flink/savepoints/savepoint-* -c *.* jars/**** test > Flink-RealtimeDAU.log 2>&1 &

其中的-yn是指TaskManager的個數,必須指定。

 

總結

Flink提供在Yarn上兩種運行模式:第一種方式 Session-Cluster的資源在啓動集羣時就定義完成,後續所有作業的提交都共享該資源,作業可能會互相影響,因此比較適合小規模短時間運行的作業,對於第二種方式而言,所有作業的提交都是單獨的集羣,作業之間的運行不受影響(可能會共享CPU計算資源),因此比較適合大規模長時間運行的作業。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章