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

image-20231118124204037

本篇到此结束