1 Standalone模式

1.1 安装

解压缩 flink-1.10.0-bin-scala2.11.tgz,进入conf目录中。
_1)修改 flink/conf/flink-conf.yaml 文件:

image.png
2)修改 /conf/works文件:
image.png
3)分发给另外两台机子:
image.png
4)启动:
image.png
访问http://localhost:8081可以对flink集群和任务进行监控管理。
image.png

2 Yarn模式

以Yarn模式部署Flink任务时,要求Flink是有Hadoop支持的版本,Hadoop环境需要保证版本在2.2以上,并且集群中安装有HDFS服务。

2.1 Flink on Yarn

Flink提供了两种在yarn上运行的模式,分别为Session-Cluster和Per-Job-Cluster模式。
1) Session-cluster 模式:
image.png
Session-Cluster模式需要先启动集群,然后再提交作业,接着会向yarn申请一块空间后,资源永远保持不变。如果资源满了,下一个作业就无法提交,只能等到yarn中的其中一个作业执行完成后,释放了资源,下个作业才会正常提交。所有作业共享Dispatcher和ResourceManager;共享资源;适合规模小执行时间短的作业。
在yarn中初始化一个flink集群,开辟指定的资源,以后提交任务都向这里提交。这个flink集群会常驻在yarn集群中,除非手工停止。
2) Per-Job-Cluster 模式:
image.png
一个Job会对应一个集群,每提交一个作业会根据自身的情况,都会单独向yarn申请资源,直到作业执行完成,一个作业的失败与否并不会影响下一个作业的正常提交和运行。独享Dispatcher和ResourceManager,按需接受资源申请;适合规模大长时间运行的作业。
每次提交都会创建一个新的flink集群,任务之间互相独立,互不影响,方便管理。任务执行完成之后创建的集群也会消失。

2.2 Session Cluster

1) 启动hadoop集群(略)
2) 启动yarn-session

./yarn-session.sh -n 2 -s 2 -jm 1024 -tm 1024 -nm test -d

其中:
-n(—container):TaskManager的数量。
-s(—slots):每个TaskManager的slot数量,默认一个slot一个core,默认每个taskmanager的slot的个数为1,有时可以多一些taskmanager,做冗余。
-jm:JobManager的内存(单位MB)。
-tm:每个taskmanager的内存(单位MB)。
-nm:yarn 的appName(现在yarn的ui上的名字)。
-d:后台执行。
image.png
3) 执行任务

./flink run -c com.zcz.wc.StreamWordCount FlinkTutorial-1.0-SNAPSHOT-jar-with-dependencies.jar —host lcoalhost –port 7777

4) 去yarn控制台查看任务状态
image.png
5) 取消yarn-session
yarn application —kill application_1577588252906_0001

2.2 Per Job Cluster

1) 启动hadoop集群(略)
1) 不启动__yarn-session,直接执行job

  1. ./flink run m yarn-cluster -c com.zhang.wc.StreamWordCount FlinkTutorial-1.0-SNAPSHOT-jar-with-dependencies.jar --host lcoalhost port 7777