flink yarn模式HA部署


該文章基於上一篇: Flink的local和standalone HA安裝部署

1、yarn cluster 模式部署介紹

mr和spark都可以基於yarn模式部署,flink也不例外,生產中很多也基於yarn模式部署。

flink的yarn模式部署也分爲兩種方式,一種是yarn-session,一種是yarn-per-job。大致如下圖:

在這裏插入圖片描述

2、flink session HA模式

需要先啓動集羣,然後在提交作業,接着會向yarn申請一塊資源空間後,資源永遠保持不變。如果資源滿了,下一個作業就無法提交,只能等到yarn中的其中一個作業執行完成後,釋放了資源,那下一個作業纔會正常提交。

適合場景:

當作業很少並且都較小,能快速執行完成時,可以使用。否則一般不會使用該模式。

這種模式,不需要做任何配置,直接將任務提價到yarn集羣上面去,我們需要提前啓動hdfs以及yarn集羣即可。

兩個進程:

運行yarn-session的主機上會運行FlinkYarnSessionCli和YarnSessionClusterEntrypoint兩個進程。

在yarn-session提交的主機上必然運行FlinkYarnSessionCli,這個進場代表本節點可以命令方式提交job,而且可以不用指定-m參數。

YarnSessionClusterEntrypoint進場代表yarn-session集羣入口,實際就是jobmanager節點,也是yarn的ApplicationMaster節點。

這兩個進程可能會出現在同一節點上,也可能在不同的節點上。

1、配置

[root@hadoop01 flink-1.9.1]# vi ./conf/flink-conf.yaml

追加如下內容:
# flink yarn HA settings
high-availability: zookeeper
high-availability.zookeeper.quorum: hadoop01:2181,hadoop02:2181,hadoop03:2181
high-availability.zookeeper.path.root: /flink_yarn
high-availability.cluster-id: /cluster_flink_yarn
high-availability.storageDir: hdfs://hadoop01:9000/flink_yarn/recovery

hadoop02 和 hadoop03分別做如上的配置。

2、啓動flink session

先確保zookeeper、hdfs、yarn是啓動okay。

[root@hadoop01 flink-1.9.1]# yarn-session.sh -n 3 -jm 1024 -tm 1024
...................................
2020-04-14 11:52:59,248 INFO  org.apache.flink.shaded.curator.org.apache.curator.framework.state.ConnectionStateManager  - State change: CONNECTED
2020-04-14 11:52:59,753 INFO  org.apache.flink.runtime.rest.RestClient                      - Rest client endpoint started.
Flink JobManager is now running on hadoop02:41674 with leader id 04caacdd-23c6-4e79-acd5-6db3b1014be0.
JobManager Web Interface: http://hadoop02:8081   ##代表jobmanager啓動到hadoop02

報錯1:

Diagnostics: Container [pid=9528,containerID=container_1586835850522_0001_03_000001] is running beyond virtual memory limits. Current usage: 316.1 MB of 1 GB physical memory used; 2.3 GB of 2.1 GB virtual memory used. Killing container.

解決方法:
在hadoop01、hadoop02、hadoop03中的yarn-site.xml中配置如下:
<!--關閉nm的虛擬內存檢測-->
<property>
         <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
</property>

3、環境檢測

根據啓動的信息可知,flink啓動到咯hadoop02,則使用jps測試一下:

jps檢測進程:

[root@hadoop02 flink-1.9.1]# jps
8992 DataNode
9985 YarnSessionClusterEntrypoint

web頁面查看:http://hadoop02:8081

在這裏插入圖片描述

查看yarn的web控制檯:http://hadoop01:8088
在這裏插入圖片描述

4、提交作業測試:

提交作業和standalone一樣正常提交即可。

[root@hadoop02 flink-1.9.1]# flink run /usr/local/flink-1.9.1/examples/batch/WordCount.jar --input /home/words --output /home/out/fl01
Starting execution of program
Program execution finished
Job with JobID c3fd22587744bc54a6d69af6573a3183 has finished.
Job Runtime: 20642 ms

5、HA切換檢測

殺死YarnSessionClusterEntrypoint服務,,看看還能不能在集羣中找到該服務。

[root@hadoop02 flink-1.9.1]# jps
8992 DataNode
9985 YarnSessionClusterEntrypoint
8901 QuorumPeerMain
9096 SecondaryNameNode
9720 NodeManager
11210 Jps
#殺死進程造成異常退出
[root@hadoop02 flink-1.9.1]# kill -9 9985

當是HA時,,則一個掛掉後,則JM將會失敗轉移到另外的服務器上。如下是轉移到hadoop01上。

[root@hadoop01 flink-1.9.1]# jps
9408 NameNode
12017 YarnSessionClusterEntrypoint

再次測試job:
[root@hadoop02 flink-1.9.1]# flink run /usr/local/flink-1.9.1/examples/batch/WordCount.jar --input /home/words --output /home/out/fl03
Starting execution of program
Program execution finished
Job with JobID 779689f706af7a9cb05e771a80e89128 has finished.
Job Runtime: 11462 ms


yarn session提交的作業,,在yarn的web平臺中看不到。可以通過flink --list來查看。

6、如何停止運行的程序
通過cancel命令進行停止:

flink cancel -s hdfs:///flink/savepoints /savepoints-* -yid application_1586836326559_0002

或者通過 flink list 獲得 jobId

flink list
flink cancel -s hdfs:///flink/savepoints/savepoint-* jobId 

其中-s爲可選操作

7、關閉jobmanager

直接將yarn-session停止掉:

yarn application -kill applicationId 

3、flink-per-job模式

yarn session需要先啓動一個集羣,然後在提交作業。
但是Flink-per-job直接提交作業即可,不需要額外的去啓動一個flink-session集羣。直接提交作業,即可完成Flink作業。

適合場景:

作業多、且每個作業運行時長不定。生產推薦使用該模式運行作業。

1、直接使用flink run運行即可

[root@hadoop01 flink-1.9.1]# flink run -m yarn-cluster /usr/local/flink-1.9.1/examples/batch/WordCount.jar --input /home/words --output /home/out/fl05

在這裏插入圖片描述

查看yarn的web平臺:

在這裏插入圖片描述

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