yarn模式部署,理解是只是将Flink集群交给yarn管理,因此Flink集群部署还是使用StandAlone模式部署,然后交给yarn管理即可
Flink:StandAlone模式部署
博客地址:https://blog.csdn.net/weixin_45427648/article/details/130070977
交给yarn管理需要先部署hadoop应用
yarn模式部署有两种方式:
(1)启动一个YARN session(Start a long-running Flink cluster on YARN);(这种方式会一直保持flink所需的内存空间)
(2)直接在YARN上提交运行Flink作业(Run a Flink job on YARN);(这种方式flink执行完任务会释放内存空间,企业常用这种方式)
1.对hadoop集群所有的conf下录配置文件 yarn-site.xml
// 关闭虚拟内存检查,因为虚拟内存检查会不断检查,
// 分配的内存是不是多了,多了会进行回收,造成一些问题
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>192.168.25.129:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>192.168.25.129:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>192.168.25.129:8031</value>
</property>
2.启动hadoop (hdfs-yarn)
# sbin目录
./start-dfs.sh
./start-yarn.sh
(1)启动一个YARN session(Start a long-running Flink cluster on YARN)
3.在flink-1.7.2-hadoop/bin/
./yarn-session.sh -n 2 -tm 800 -s 1 -d
# -n 表示申请2个容器,这里指的就是多少个taskmanager
# -s 表示每个TaskManager的slots数量
# -tm 表示每个TaskManager的内存大小
# -d 表示以后台程序方式运行
解释
上面的命令的意思是,同时向Yarn申请3个container
(即便只申请了两个,因为ApplicationMaster和Job Manager有一个额外的容器。一旦将Flink部署到YARN群集中,它就会显示Job Manager的连接详细信息)
2 个 Container 启动 TaskManager -n 2,每个 TaskManager 拥有1个 Task Slot -s 1,并且向每个 TaskManager 的 Container 申请 800M 的内存,以及一个ApplicationMaster--Job Manager。
如果不想让Flink YARN客户端始终运行,那么也可以启动分离的 YARN会话。该参数被称为-d或--detached。在这种情况下,Flink YARN客户端只会将Flink提交给集群,然后关闭它自己
4.检查是否正常
ip:8088/cluster
5.执行提交的任务(flink-1.7.2-hadoop/bin/)
./flink run -c com.wx.WordCountStream /home/wx/flinkdemo-1.0-SNAPSHOT.jar
6.检查任务执行情况
点击(来到熟悉的界面)
yarn-session.sh(开辟资源) + flink run(提交任务)
- 使用Flink中的yarn-session(yarn客户端),会启动两个必要服务JobManager和TaskManager
- 客户端通过flink run提交作业
- yarn-session会一直启动,不停地接收客户端提交的作业
- 如果有大量的小作业/任务比较小,或者工作时间短,适合使用这种方式,减少资源创建的时间.
(2)直接在YARN上提交运行Flink作业(Run a Flink job on YARN)
3.在flink-1.7.2-hadoop/bin/
bin/flink run -m yarn-cluster -yn 2 -yjm 1024 -ytm 1024 /export/servers/flink/examples/batch/WordCount.jar
# -m jobmanager的地址
# -yn 表示TaskManager的个数
停止yarn-cluster
yarn application -kill application_1527077715040_0003
rm -rf /tmp/.yarn-properties-root