Flink1.20.0安装
1.前置条件
- 服务器:3台,1主2从,centos7IPhostname说明192.168.108.137centos137master192.168.108.138centos138node192.168.108.139centos139node三台服务之间能通过hostname访问
# hostname修改hostnamectl set-hostname centos137#三台修改hosts文件,添加以下命令192.168.108.137 centos137192.168.108.138 centos138192.168.108.139 centos139#重启reboot
2.解压安装包
安装路径(可选)
上传安装包至:/home/data/flink/
若没该路径,执行
mkdir -p /home/data/flink/
tar -zxvf flink-1.20.0-bin-scala_2.12.tgz
国内镜像地址:Index of /apache/flink/flink-1.20.0 (tsinghua.edu.cn)
配置文件变更说明:
从 Flink 1.19 开始,Flink 正式全面支持标准 YAML 1.2 语法。默认配置文件已改为 config.yaml ,放置在 conf/directory 中。如果用户想使用传统的配置文件 flink-conf.yaml ,只需将该文件复制到 conf/directory 中即可。一旦检测到传统配置文件 flink-conf.yml ,Flink 就会优先使用它作为配置文件。而在即将推出的 Flink 2.0 中, flink-conf.yaml 配置文件将不再起作用。
以上来至:官宣|Apache Flink 1.19 发布公告-阿里云开发者社区 (aliyun.com)
3.修改配置
vim /home/data/flink/flink-1.20.0/conf/config.yaml
以master为例,其他node同理。
注意node的jobmanager.rpc.address必须为master的hostname,否则master的jobmanager无法识别到Task Slots
如下:
jobmanager:bind-host: 0.0.0.0 # 改动点rpc:address: centos137 # 改动点,master服务器的hostnameport:6123memory:process:size: 1600m
execution:failover-strategy: region
taskmanager:bind-host: 0.0.0.0 # 改动点host: centos137 # 改动点,所在服务器的hostnamenumberOfTaskSlots:1memory:process:size: 1728m
其他配置修改参考(性能调优):
- jobmanager.memory.process.size:对JobManager进程可使用到的全部内存进行配置,包括JVM元空间和其他开销,默认为1600M,可以根据集群规模进行适当调整。
- taskmanager.memory.process.size:对TaskManager进程可使用到的全部内存进行配置,包括JVM元空间和其他开销,默认为1728M,可以根据集群规模进行适当调整。
- taskmanager.numberOfTaskSlots:对每个TaskManager能够分配的Slot数量进行配置,默认为1,可根据TaskManager所在的机器能够提供给Flink的CPU数量决定。所谓Slot就是TaskManager中具体运行一个任务所分配的计算资源。
parallelism.default:Flink任务执行的并行度,默认为1。优先级低于代码中进行的
检查8081端口是否被占用,若有,替换为合适的
nestat -apn|grep8081#或者lsof-i:8081
修改masters和workers(三台服务器)
[root@centos137 conf]# cat masters
centos137:8081
[root@centos137 conf]# cat workers
centos137
centos138
centos139
4.目录授权
将安装目录的权限赋予ssh免登录用户
参考:hadoop集群搭建-CSDN博客 的目录授权章节
chown-R hadoop:hadoop /export/
没有此步骤需要启动时需要输入服务器密码
5.集群启停
切换到免登录用户
su hadoop
启动:
[hadoop@centos137 bin]$ /home/data/flink/flink-1.20.0/bin/start-cluster.sh
Starting cluster.
Starting standalonesession daemon on host centos137.
Starting taskexecutor daemon on host centos137.
Starting taskexecutor daemon on host centos138.
Starting taskexecutor daemon on host centos139.
停止:
[hadoop@centos137 bin]$ /home/data/flink/flink-1.20.0/bin/stop-cluster.sh
Stopping taskexecutor daemon (pid: 12142) on host centos137.
Stopping taskexecutor daemon (pid: 14316) on host centos138.
Stopping taskexecutor daemon (pid: 16430) on host centos139.
Stopping standalonesession daemon (pid: 11536) on host centos137.
6.访问Web UI
正常情况,界面
Available Task Slots 显示3个(取决与taskmanager.numberOfTaskSlots的个数)
开发测试环境完成以上步骤即可,集群以Standalone模式运行
以下内容为生产环境应该使用的运行模式
7.YARN运行模式
YARN上部署的过程是:客户端把Flink应用提交给Yarn的ResourceManager,Yarn的ResourceManager会向Yarn的NodeManager申请容器。在这些容器上,Flink会部署JobManager和TaskManager的实例,从而启动集群。Flink会根据运行在JobManger上的作业所需要的Slot数量动态分配TaskManager资源。
1.前置条件
将Flink任务部署至YARN集群之前,需要确认集群是否安装有Hadoop,保证Hadoop版本至少在2.2以上,并且集群中安装有HDFS服务。
参考:hadoop集群搭建-CSDN博客
2.配置(所有节点)
配置环境变量
vim /etc/profile
增加环境变量配置如下:
# ---- hadoop ----exportHADOOP_HOME=/export/servers/hadoop-3.3.6
exportPATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
#Flink YARN运行模型需要exportHADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
exportHADOOP_CLASSPATH=`hadoop classpath`
配置生效
source /etc/profile
启动Hadoop集群,包括HDFS和YARN。
采用合适的模式允许应用:
3.会话模式部署(不推荐)
执行脚本命令向YARN集群申请资源,开启一个YARN会话,启动Flink集群。
容易出现资源竞争现象,导致任务失败
bin/yarn-session.sh -nmtest
可用参数解读:
l -d:分离模式,如果你不想让Flink YARN客户端一直前台运行,可以使用这个参数,即使关掉当前对话窗口,YARN session也可以后台运行。
l -jm(–jobManagerMemory):配置JobManager所需内存,默认单位MB。
l -nm(–name):配置在YARN UI界面上显示的任务名。
l -qu(–queue):指定YARN队列名。
-tm(–taskManager):配置每个TaskManager所使用内存。
4.单作业模式部署(开发过程使用)
- Flink的Standalone集群并不支持单作业模式部署。因为单作业模式需要借助一些资源管理平台。
- 在YARN环境中,由于有了外部平台做资源调度,所以我们也可以直接向YARN提交一个单独的作业,从而启动一个Flink集群。执行任务命令eg:
bin/flink run -d-t yarn-per-job -c com.demo.HelloWord HelloWord.jar
-c 后的参数:1.任务的完整类名称1. jar包名称
推荐使用 Flink Web UI页面进行监控
在命令行中查看或取消作业
bin/flink list -t yarn-per-job -Dyarn.application.id=application_XXXX_YY
bin/flink cancel -t yarn-per-job -Dyarn.application.id=application_XXXX_YY <jobId>
5.应用模式部署(推荐)
应用模式同样非常简单,与单作业模式类似,直接执行flink run-application命令即可
执行任务命令eg:
bin/flink run-application -t yarn-application -c com.demo.HelloWord HelloWord.jar
推荐使用 Flink Web UI页面进行监控
在命令行中查看或取消作业
bin/flink list -t yarn-application -Dyarn.application.id=application_XXXX_YY
bin/flink cancel -t yarn-application -Dyarn.application.id=application_XXXX_YY <jobId>
本文参考:Flink 1.19.1 standalone 集群模式部署及配置-CSDN博客
版权归原作者 admin_cx 所有, 如有侵权,请联系我们删除。