本示例准备了三台服务器,服务器版本均为 Centos7.6
,我们要在我们的服务器资源中选择一个机器作为Master
节点
192.168.31.120、192.168.31.139、192.168.31.186
因为flink执行依赖于jvm,因为我们需要在每台服务器上安装JDK (1.8及以上)
本示例选择的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
首先,在某一台服务器上执行生成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
我们选择一台服务器作为Master
进入flink解压目录下的 config目录
cd /opt/soft-ware/flink-1.12.2/conf/
这里需要修改三个文件中的内容
flink-conf.yaml
、masters
、workers
首先修改flink-conf.yaml
配置 指明jobManger
vim flink-conf.yaml
下边可根据机器配置来设置每个TaskManger Slot
数量
例如,我这里设置了每个TaskManger Slot
数量为3个
修改完后,保存退出
然后修改masters文件
配置,指明访问IP(我们后续可通过此IP:Port 查看flink-Web-UI
vim masters
修改workers文件
配置
vim workers
使用Ctrl+E 键进入编辑模式
如此,便配置完了
需要保证所有节点的Flink目录一致
# 发送至120
scp -r /opt/soft-ware/flink-1.12.2 [email protected]:/opt/soft-ware/flink-1.12.2
# 发送至139
scp -r /opt/soft-ware/flink-1.12.2 [email protected]:/opt/soft-ware/flink-1.12.2
集群操作,需要在Master节点所在服务器上
集群功能测试
基于Standlone集群提交JOB
WEB-UI查看