|NO.Z.00006|——————————|Deployment|——|Hadoop&Flink计算领域锋利的武器.v06|——|Flink.v03|Yarn模式部署|yarn session方式启动|
一、Flink.Yarn模式部署
### --- 启动一个YARN session(Start a long-running Flink cluster on YARN);
~~~ 方式一:yarn session启动
~~~ 方式二:per job方式启动

二、YARN Session方式:Flink.yarn环境部署
### --- 配置环境变量修改/etc/profile
[root@hadoop01 ~]# vim /etc/profile
#FLINK
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_CLASSPATH=`hadoop classpath`
~~~ # 使环境变量生效
[root@hadoop01 ~]# source /etc/profile
### --- 配置文件 yarn-site.xml
~~~ # yarn-site的修改需要在集群的每一台机器上执行
[root@hadoop01 ~]# vim $HADOOP_HOME/etc/hadoop/yarn-site.xml
<!-- Flink.yarn模式 -->
<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>hadoop01:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>hadoop01:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>hadoop01:8031</value>
</property>
~~~ # 发送到其它节点
[root@hadoop01 ~]# rsync-script $HADOOP_HOME/etc/hadoop/yarn-site.xml
### --- 启动hdfs、yarn服务
[root@hadoop01 ~]# start-dfs.sh
[root@hadoop01 ~]# start-yarn.sh
三、session yarn模式Flink测试
### --- 启动yarn session
### --- 查看yarn-UI启动的session:http://hadoop01:8088/cluster
~~~ 进入ApplicationMaster
~~~ # 启动yarn session
[root@hadoop01 ~]# cd /opt/yanqi/servers/flink-1.11.1/bin/
[root@hadoop01 bin]# ./yarn-session.sh -s 1 -jm 1024 -tm 1024m
~~~ 查看启动的job
[] - Submitting application master application_1635420648486_0001
[] - Submitted application application_1635420648486_0001
[] - Waiting for the cluster to be allocated
[] - Deploying cluster, current state ACCEPTED
[] - YARN application has been deployed successfully.
[] - Found Web Interface hadoop01:35662 of application 'application_1635420648486_0001'.


### --- 启动一个job
~~~ # 启动nc写入数据流
[root@hadoop01 ~]# nc -lp 7777
yarn session
yarn session集群模式
### --- 启动应用jobs
~~~ # 通过web-UI查看启动的Applications及jobs
[root@hadoop01 ~]# cd /opt/yanqi/servers/flink-1.11.1/bin/
[root@hadoop01 bin]# ./flink run -c WordCountScalaStream \
-yid application_1636634954945_0001 /root/myjars/FirstFlink-1.0-SNAPSHOT.jar



四、启动参数说明
### --- yarn-session.sh启动参数说明
~~~ -n 表示申请2个容器,这里指的就是多少个taskmanager
~~~ -s 表示每个TaskManager的slots数量
~~~ -tm 表示每个TaskManager的内存大小
~~~ -d 表示以后台程序方式运行
~~~ # 配置文件地址:
[root@hadoop01 ~]# /export/servers/flink/bin/yarn-session.sh -n 2 -tm 800 -s 1 -d
~~~ # 启动示例:申请2个CPU、1600M内存:
[root@hadoop01 ~]# bin/yarn-session.sh -n 2 -tm 800 -s 1 -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提交给集群,然后关闭它自己yarn-session.sh(开辟资源) + flink run(提交任务)
~~~ - 使用Flink中的yarn-session(yarn客户端),会启动两个必要服务JobManager和TaskManager
~~~ - 客户端通过flink run提交作业
~~~ - yarn-session会一直启动,不停地接收客户端提交的作业
~~~ - 这种方式创建的Flink集群会独占资源。
~~~ - 如果有大量的小作业/任务比较小,或者工作时间短,适合使用这种方式,减少资源创建的时间.
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
dov004-flink
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」