1. 下载
本次的flink1.17.0 版本的下载链接为:点我下载
Flink的历史版本:https://archive.apache.org/dist/flink/
2. 解压安装
tar -zxvf flink-1.17.0-bin-scala_2.12.tgz -C /opt/module/
flink的目录结构为:
flink-1.17.0/
├── bin # 可执行文件夹
├── conf # 配置文件夹
├── examples # 自带的案例jar包
├── lib # 依赖
├── LICENSE
├── licenses
├── log # 日志
├── NOTICE
├── opt
├── plugins # 插件
└── README.txt
3. 部署
3.1. 部署方案
本次采用3台机器部署,关于机器的节点角色为,T代表是的意思
Jobmanager | Taskmanager | |
---|---|---|
hadoop102 | T | T |
hadoop103 | T | |
hadoop104 | T |
3.2. 修改配置文件
根据以上需要,需要修改的配置有
flink-config.yaml flink的配置信息
master Jobmanager的信息
workers Taskmanager的信息
flink-config.yaml 需要修改几个地方,将以下信息改为自己主机的信息
# rpc通信地址
jobmanager.rpc.address: hadoop102
# 绑定地址,0.0.0.0代表都可以访问
jobmanager.bind-host: 0.0.0.0
# taskmanager 绑定地址
taskmanager.bind-host: 0.0.0.0
#
taskmanager.host: hadoop102
rest.address: hadoop102
rest.bind-address: 0.0.0.0
master 需要修改几个地方,将以下信息改为自己主机的信息
hadoop102:8081
workers 需要修改几个地方,将以下信息改为自己主机的信息
hadoop102
hadoop103
hadoop104
改完配置分发 flink
cd /opt/module/
xsync flink-1.17.0/
关于分发脚本 xsync,提供参考
#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
do
echo ==================== $host ====================
#3. 遍历所有目录,挨个发送
for file in $@
do
#4. 判断文件是否存在
if [ -e $file ]
then
#5. 获取父目录
pdir=$(cd -P $(dirname $file); pwd)
#6. 获取当前文件的名称
fname=$(basename $file)
ssh $host "mkdir -p $pdir"
rsync -av $pdir/$fname $host:$pdir
else
echo $file does not exists!
fi
done
done
分发完成之后,需要在 hadoop103,hadoop103节点把 flink-conf.yaml 下的 taskmanager.host 改为相应的主机地址
hadoop103
ssh hadoop103
cd /opt/module/flink-1.17.0/conf/ && sed -i 's/taskmanager.host: .*/taskmanager.host: hadoop103/' flink-conf.yaml
hadoop104
ssh hadoop104
cd /opt/module/flink-1.17.0/conf/ && sed -i 's/taskmanager.host: .*/taskmanager.host: hadoop104/' flink-conf.yaml
4. 启动集群
在 hadoop102 节点服务器执行 start-cluster.sh 启动集群
bin/start-cluster.sh
查看所有节点进程信息
jpsall
输出内容如下
=============== hadoop102 ===============
115200 TaskManagerRunner
114802 StandaloneSessionClusterEntrypoint
115330 Jps
=============== hadoop103 ===============
2352 TaskManagerRunner
2386 Jps
=============== hadoop104 ===============
2498 Jps
2468 TaskManagerRunner
关于对 脚本 jpsall 的参考编写
#!/bin/bash
for host in hadoop102 hadoop103 hadoop104
do
echo =============== $host ===============
ssh $host jps $*
done
5. 访问webui
hadoop102:8081
本篇到此结束