|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



        yarn.nodemanager.pmem-check-enabled
        false


        yarn.nodemanager.vmem-check-enabled
        false


        yarn.resourcemanager.address
        hadoop01:8032


        yarn.resourcemanager.scheduler.address
        hadoop01:8030


        yarn.resourcemanager.resource-tracker.address
        hadoop01:8031
~~~     # 发送到其它节点

[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
 

相关