1.14.5
node1
,node2
,node3
,其中 jobmanager 是 node1
,3个节点都是 taskmanager 角色。/opt/flink-1.14.5
由于 Flink 所有节点配置都相同,所以先在集群中一个节点进行配置,然后再将安装文件同步到其他节点即可,现在 node1
上进行配置,首先解压安装包到安装目录:
tar -xvzf flink-1.14.5-scala_2.11.tar.gz -C /opt/
cd flink-1.14.5/
这样就将 Flink 安装到了既定的目录: /opt/flink-1.14.5/
下面。
然后在 node1
上编辑配置文件,修改或者增加以下配置,配置文件为 conf/flink-conf.yaml
:
# jobmanager 监听地址, 这里配置为 node1
jobmanager.rpc.address: node1
# jobmanager 监听端口号
jobmanager.rpc.port: 6123
# flink jobmanager 的实例 jvm 内存
jobmanager.memory.process.size: 4096m
# flink taskmanager 的实例 jvm 内存
taskmanager.memory.process.size: 16384m
# 每个 taskmanager 的 slosts 个数, 根据提交的任务量设置, 通常与逻辑 cpu 核数一致
taskmanager.numberOfTaskSlots: 32
# 默认情况下任务的并行度
parallelism.default: 4
# 修改 Flink 临时文件目录 正常放在数据盘中
io.tmp.dirs: /data/flink/tmp
由于 node1
作为 jobmanager,需要修改 conf/masters
文件填写进去:
node1
修改 conf/workers
文件,添加所有的 taskmanager 节点:
node1
node2
node3
然后可以配置使用 systemd 管理 Flink 服务,正常的 systemd 服务文件已经打包到安装包内,当前的位置为:/opt/flink-1.14.5/services/flink@.service
,默认内容如下:
[Unit]
Description=flink
After=network.target
[Service]
User=root
Group=root
Type=forking
ExecStart={{ flink_home }}/bin/systemd-manager.sh %i start
ExecStop={{ flink_home }}/bin/systemd-manager.sh %i stop
TimeoutSec=90s
RestartSec=10s
Restart=always
SuccessExitStatus=143
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
[Install]
WantedBy=multi-user.target
只需要替换 {{ flink_home }}
为实际的安装目录即可,当前修改后的内容如下:
[Unit]
Description=flink
After=network.target
[Service]
User=root
Group=root
Type=forking
ExecStart=/opt/flink-1.14.5/bin/systemd-manager.sh %i start
ExecStop=/opt/flink-1.14.5/bin/systemd-manager.sh %i stop
TimeoutSec=90s
RestartSec=10s
Restart=always
SuccessExitStatus=143
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
[Install]
WantedBy=multi-user.target
现在相关的配置已经在 node1
节点上完成配置,需要将 Flink 安装目录同步到其他所有节点:
scp -r /opt/flink-1.14.5 root@node2:/opt
scp -r /opt/flink-1.14.5 root@node3:/opt
在每个节点上执行复制安装 service 文件:
# 在所有节点上执行
cd /opt/flink-1.14.5
cp services/flink@.service /usr/lib/systemd/system/
# 重新加载 systemd 服务文件
systemctl daemon-reload
然后可以启动 Flink 集群,我们在 node1
上启动 jobmanager,使用如下命令:
# 在 node1 上启动 jobmanager
systemctl start flink@jobmanager
然后我们在 node2
, node2
,node3
上分别启动 taskmanager,使用如下命令:
# node1
systemctl start flink@taskmanager
# node2
systemctl start flink@taskmanager
# node3
systemctl start flink@taskmanager
查看某一服务的状态:
systemctl status flink@jobmanager
systemctl status flink@taskmanager
设置开机自动启动:
systemctl enable flink@jobmanager
systemctl enable flink@taskmanager
停止服务使用:
systemctl stop flink@jobmanager
systemctl stop flink@taskmanager
运行之后可以访问 node1
查看 Web UI 界面:http://node1:8081
,默认的端口号为 8081
能正常访问界面并且看到 taskmanager 则说明集群已经运行了。