文章目录
Flink1.12 standalone集群模式搭建
一、集群搭建准备
(1)服务器资源
本示例准备了三台服务器,服务器版本均为 Centos7.6
,我们要在我们的服务器资源中选择一个机器作为Master
节点
192.168.31.120、192.168.31.139、192.168.31.186
(2)JAVA 执行环境
因为flink执行依赖于jvm,因为我们需要在每台服务器上安装JDK (1.8及以上)
(3)flink安装包
本示例选择的flnk版本为1.12.2
已提前解压至我服务器上的/opt/soft-ware
目录下
解压命令
tar -zxvf flink-1.12.2-bin-scala_2.12.tgz
赋予root权限
/opt/soft-ware/flink-1.12.2 是flink目录所在的绝对路径,需要根据自己情况更改
chown -R root:root /opt/soft-ware/flink-1.12.2
(4)服务间需要配置免密登录
① 执行生成SSH KEY 命令
首先,在某一台服务器上执行生成SSH KEY 命令
ssh-keygen -t rsa
此时,我们在我们的家目录~
下已经生成了一个.ssh
的文件夹
② 将公钥发送给需要免密的机器上
ssh-copy-id -i ~/.ssh/id_rsa.pub 需要免密的机器IP
示例:
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.31.120
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.31.139
当然,此时操作仅是单项的 即 186>>120 186>>139不需要密码即可进行登录,但139>> 186 139>>120仍需要登录密码
因此我们将Flink所有服务器节点之间互相访问均开放免密登录
操作手法:每个服务器都执行生成SSH KEY命令,然后将公钥发送给Flink所有机器节点(含自己)
# 生成SSH KEY
120、139、186 机器均执行ssh-keygen -t rsa,然后执行下边发送命令,将自己的公钥发送给所有节点,如此所有节点间便可无密码访问
# 发送公钥至所有节点
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.31.120
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.31.139
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.31.186
二、Flink配置
(1)配置修改
我们选择一台服务器作为Master
进入flink解压目录下的 config目录
cd /opt/soft-ware/flink-1.12.2/conf/
这里需要修改三个文件中的内容
flink-conf.yaml
、masters
、workers
① 指明Master节点
首先修改flink-conf.yaml
配置 指明jobManger
vim flink-conf.yaml
下边可根据机器配置来设置每个TaskManger Slot
数量
例如,我这里设置了每个TaskManger Slot
数量为3个
修改完后,保存退出
② 指明Master(JobManger 访问地址)
然后修改masters文件
配置,指明访问IP(我们后续可通过此IP:Port 查看flink-Web-UI
vim masters
③ 指明工作节点
修改workers文件
配置
vim workers
使用Ctrl+E 键进入编辑模式
如此,便配置完了
(2)将已改好配置的Flink目录分发至其他节点
需要保证所有节点的Flink目录一致
# 发送至120
scp -r /opt/soft-ware/flink-1.12.2 root@192.168.31.120:/opt/soft-ware/flink-1.12.2
# 发送至139
scp -r /opt/soft-ware/flink-1.12.2 root@192.168.31.139:/opt/soft-ware/flink-1.12.2
(3)Master节点操作Flink Standlone集群
集群操作,需要在Master节点所在服务器上
集群功能测试
基于Standlone集群提交JOB
WEB-UI查看