文章目录
Flink on yarn 集群部署
前言
为什么采用Flink on yarn 的集群部署模式
在实际开发中,使用Flink时,更多的使用方式是Flink On Yarn模式,原因如下:
-
Yarn的资源可以按需使用,提高集群的资源利用率
-
Yarn的任务有优先级,根据优先级运行作业
-
基于Yarn调度系统,能够自动化地处理各个角色的 Failover(容错)
○ JobManager 进程和 TaskManager 进程都由 Yarn NodeManager 监控
○ 如果 JobManager 进程异常退出,则 Yarn ResourceManager 会重新调度 JobManager 到其他机器
○ 如果 TaskManager 进程异常退出,JobManager 会收到消息并重新向 Yarn ResourceManager 申请资源,重新启动 TaskManager -
基于native方式,taskManager资源按需申请和启动,防止资源浪费
-
依托于yarn,部署集群与提交任务都非常简单、
但是,在采用部署模式的时候往往更需要考虑其缺点,看其缺点是否影响生产才是最重要的
flink on yarn正是依托于yarn,产品的相互分离便会导致一些劣势:
- 资源隔离问题,特别突出的是网络资源的隔离,在这方面,yarn还做的不够完善
- 离线和实时作业同时运行时,需要重视相互干扰的问题
- kerberos认证超期问题导致checkpoint无法持久化
好了,说了这么多,我们就先开始部署吧!
先安装好yarn集群,在我们这个环境中使用的是CDH6.3,也就是基于hadoop3.0的大数据生态环境
flink部署
1.包下载
链接:https://pan.baidu.com/s/1YrErLZ3RzD_m2KRIw0h56w
提取码:7788
2.将所下载的包放置/opt/flink下进行解压安装
tar -zxvf flink-1.11.1-bin-scala_2.12.tgz -C /opt/flink/
安装包解压至 /opt/flink目录下
3.切换到相关目录
cd /opt/flink/flink-1.11.1
4.配置hadoop相关路径
vim /etc/profile
#conf配置
export HADOOP_CONF_DIR=/etc/hadoop/conf
#lib包配置
export HADOOP_CLASSPATH=/opt/cloudera/parcels/CDH/lib/hadoop:/opt/cloudera/parcels/CDH/lib/hadoop-hdfs:/opt/cloudera/parcels/CDH/lib/hadoop-yarn:/opt/cloudera/parcels/CDH/lib/hadoop-mapreduce
source /etc/profile
5.如果第四步采用后仍然报错找不到相关包,则切换到lib包中并将相关hadoop包放置lib目录下
cd lib
flink-shaded-hadoop-3-3.1.1.7.0.3.0-79-7.0.jar、commons-cli-1.4.jar
将以上jar包放置/opt/flink/flink-1.11.1/lib目录下
6.确保你的环境有足够的内存能够启动集群后,开始进行启动
./bin/yarn-session.sh -jm 1024m -tm 1024m
jm:JobManager容器的内存(默认值:MB);
tm:每个TaskManager容器的内存(默认值:MB);
7.启动成功后,会提供客户端网址,输入浏览器可进行查看,成功代表集群已经启动
2021-10-28 10:54:33,470 INFO org.apache.flink.yarn.YarnClusterDescriptor [] - Found Web Interface hadoop104:44565 of application ‘application_1635386832867_0004’.
JobManager Web Interface: http://hadoop104:44565
输入浏览器访问即可