此部署基于Flink1.12
首先要理解Flink的两种部署的方式有哪些区别:
总共两种发布模式:
1.job模式
2.session模式
Job模式:
部署环境使用,一个Flink独占一个session
./bin/flink run -m yarn-cluster -yn 2 -yjm 1024 -ytm 1024 ./opt/modules/x1.jar ...
Session模式:
除了部署环境都可以用
#1启动一个一直运行的flink集群
./bin/yarn-session.sh -n 2 -jm 1024 -tm 1024 -d
#2 附着到一个已存在的flink yarn session
./bin/yarn-session.sh -id application_1463870264508_0029
总结:
job模式是让一个job单独使用一个Flink集群,而Session模式是让多个job使用同一个Flink集群
以下举例Session方式:
1.正常部署Yarn和Flink
2.配置如下的环境变量:
#下面两个配置是为了Flink使用Yarn集群
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HADOOP_CLASSPATH=`hadoop classpath`
3.如此,Flink就集成了yarn,但是启动的时候要让Flink去Yarn上去注册一个session,因为我用的是session的方式启动的:
#yarn-session.sh 实在Flink的目录下
./yarn-session.sh -n 2 -jm 100mb -tm 300mb
4.到此我们可以在Yarn的web界面看到如下的结果:
这样Flink就在Yarn上申请了一份资源。
通过Yarn界面跳转到Flink的web界面,剩下的就是正常的操作。
FAQ:
这样Flink就在Yarn上申请了一份资源,这份资源的大小时固定的,我们可以在Yarn的页面跳转到Flink的web界面,剩下的就是正常提交Flink程序即可。