Flink集群搭建
本文系统化介绍了如何在 CentOS 7 环境下搭建 Apache Flink 集群,从环境准备到集群验证,详细覆盖了每个操作步骤与配置细节。首先,列出了安装前的环境准备要求,包括关闭防火墙、配置免密登录、安装 JDK8 和同步脚本,以及确保 Hadoop 集群已配备高可用特性,为 Flink 的运行奠定基础。
接着,规划了三台服务器的角色分工:master
节点负责 JobManager 和 TaskManager,node1
和node2
节点作为 TaskManager。明确了资源包上传与解压路径,并进行了必要的配置文件修改,如 flink-conf.yaml
文件和集群节点的 workers
与 masters
文件。配置中包含内存分配、任务槽数及并行度等核心参数,确保分布式计算的高效性。
本文还详细说明了如何通过 xsync
工具分发 Flink 安装目录到其他节点,并启动集群。集群验证部分通过 jps
命令检查每个节点的相关进程及状态,并提供 Web UI 访问方式,确保集群稳定运行。
最后,介绍了集群的关闭方法,为全流程的操作提供了完整参考。这篇博文是 Flink 初学者和分布式系统运维人员的重要指南,内容详尽而易懂。
环境准备
需要有三台 Centos7 服务器,并都需要完成下面的配置要求:
- 关闭防火墙
- 新建普通用户
me
- 阿里云时钟同步服务器
- 配置免密登陆
- 关闭
selinux
- 配置
xsync
、xcall
同步脚本 - 配置
jdk8
环境 - 确保端口
8081,8082
端口没有被占用 hadoop
高可用集群安装配置完毕
环境准备可以参考我下面的博文:
集群规划
说明:
- 除特别说明外,本文的所有操作均在master节点、使用me这个非root用户执行
- 命令中出现的IP,均需要替换为自己集群中的IP【必须】
- 命令中出现的
/home/lbs/software
路径,可选择替换为自定义路径【可选】
hostname | IP | 角色 |
---|---|---|
master | master | JobManager + TaskManager |
node1 | node1 | TaskManager |
node2 | node2 | TaskManager |
正式安装
下载资源包flink-1.14.2-bin-scala_2.12.tgz
1
https://pan.baidu.com/s/17s6WdDoxAf0gMVcYiIuIjw?pwd=49kv
上传资源包到
master
节点,并解压到指定路径1
2tar -zxvf flink-1.14.2-bin-scala_2.12.tgz -C /home/lbs/software
mv /home/lbs/software/flink-1.14.2 /home/lbs/software/flink配置
HADOOP_CLASSPATH
环境变量1
2
3sudo vim /etc/profile
内容最后,追加下面内容
export HADOOP_CLASSPATH=`hadoop classpath`修改
flink-conf.yaml
文件1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19vim /home/lbs/software/flink/conf/flink-conf.yaml
jobmanager地址
jobmanager.rpc.address: master
......
jobmanager 内存(可选)
jobmanager.memory.process.size: 2048m
taskmanager 内存(可选,要小于物理内存)
taskmanager.memory.process.size: 16384m
槽、并行度
taskmanager.numberOfTaskSlots: 3
parallelism.default: 1
......
类加载机制
classloader.resolve-order: parent-first
classloader.check-leaked-classloader: false
......
开启火焰图(新增)
rest.flamegraph.enabled: true配置
workers
文件1
2
3echo 'master
node1
node2' > /home/lbs/software/flink/conf/workers配置
masters
文件1
echo 'master:8081' > /home/lbs/software/flink/conf/masters
分发
/home/lbs/software/flink
目录到集群中的其他两台机器1
xsync /home/lbs/software/flink
启动集群
1 | /home/lbs/software/flink/bin/start-cluster.sh |
验证集群
jps查询三台服务器的进程情况如下:
1
2
3
4
5
6
7
8
9
10
11
12=============== master ===============
4453 StandaloneSessionClusterEntrypoint
4458 TaskManagerRunner
4533 Jps
=============== node1 ===============
2872 TaskManagerRunner
2941 Jps
=============== node2 ===============
2948 Jps
2876 TaskManagerRunner访问
flink
的Web UI
页面http://master:8081
.
关闭集群
1 | /home/lbs/software/flink/bin/stop-cluster.sh |