演示利用的Flink版本是1.15.4,官方文档地址:https://nightlies.apache.org/flink/flink-docs-release-1.15/zh/docs/try-flink/local_installation/。

1、前置准备

1.1、由于后面要搭建集群,以是须要准备3台linux做事器,集群做事器节点提前安装JDK 8以上版本。

1.2、给集群的每台做事器分配好角色。
类似下图:

jsp如何实现免密自动登录10分钟入门Flink安装 Java

1.3、集群的做事器之间配置好ssh免密登录,避免后续搭建涌现麻烦,这一步一定要做。
大略步骤如下:

在master机器实行ssh-keygen -t rsa在master机器实行命令,将密钥拷贝到别的做事器ssh-copy-id -i /root/.ssh/id_rsa.pub 目标做事器IP2、Flink本地模式搭建

搭建本地模式只须要一台做事器。
下面以master做事器为例。

2.1、下载安装包

安装包下载地址https://flink.apache.org/zh/downloads/#apache-flink-2、https://archive.apache.org/dist/flink/flink-1.15.4。

解压安装包:

tar -xzf flink-1.15.4-bin-scala_2.12.tgz2.2、启动集群

进入到解压目录下,实行以下脚本:

./bin/start-cluster.sh

通过jps查询干系进程:

17409 TaskManagerRunner13597 StandaloneSessionClusterEntrypoint

若涌现上述进程,则代表启动成功。
StandaloneSessionClusterEntrypoint为Flink主进程,即JobManager;TaskManagerRunner为Flink从进程,即TaskManager。

2.3、查看WebUI

在浏览器中访问做事器8081端口即可查看Flink的WebUI,比如http://10.20.0.93:8081/,从WebUI中可以看出,当前本地模式的Task Slot数量和TaskManager数量。
访问结果如下图所示:

如果涌现访问不通的情形,利用如下办法办理:

正常启动集群后,只能通过http://localhost:8081访问Flink Web UI,如果通过IP地址访问,则涌现连接被谢绝的情形。
此时须要修正Flink配置文件flink-conf.yaml,将localhost改成0.0.0.0,修正之后重启做事就可以利用IP地址访问。
修正部分见下图:

2.4、停滞集群

./bin/stop-cluster.sh3、Flink Standalone搭建

搭建Flink Standalone模式,须要3台做事器。
角色安排见下图:

3.1、下载安装包

安装包下载地址https://flink.apache.org/zh/downloads/#apache-flink-2、https://archive.apache.org/dist/flink/flink-1.15.4。

在JobManager做事器下载安装包,解压安装包:

tar -xzf flink-1.15.4-bin-scala_2.12.tgz -C /data/software/3.2、修正flink-conf.yaml配置文件

Flink的配置文件都存放于安装目录下的conf目录。
在JobManager做事器,进入该目录,实行以下操作。

vim conf/flink-conf.yaml

将文件中jobmanager.rpc.address属性的值改为JobManager机器的ip地址,如下:

jobmanager.rpc.address: 10.20.0.93jobmanager.bind-host: 0.0.0.03.3、修正workers文件

workers文件必须包含所有须要启动的TaskManager节点的主机名,且每个主机名占一行。
在JobManager做事器,实行以下操作

vim conf/workers

修正为别的两台TaskManager的ip地址:

10.20.0.9210.20.0.903.4、复制Flink安装文件到其他做事器

在JobManager做事器实行命令,将安装文件复制到别的TaskManager做事器,命令如下:

scp -r /data/software/flink-15.4/ 10.20.0.92:/data/software/flink-15.4/scp -r /data/software/flink-15.4/ 10.20.0.90:/data/software/flink-15.4/3.5、启动集群

在JobManager节点上进入Flink安装目录,实行以下命令启动Flink集群:

bin/start-cluster.sh

启动完毕后,在集群各做事器上通过jsp命令查看Java进程。
若各节点存在以下进程,则解释集群启动成功:

JobManager节点:StandaloneSessionClusterEntrypointTaskManager1节点:TaskManagerRunnerTaskManager2节点:TaskManagerRunner

考试测验提交一个大略任务,如果任务正常实行完毕,则集群统统正常。
提交Flink自带的大略任务如下:

./bin/flink run examples/streaming/WordCount.jar3.6、查看WebUI

通过JobManager节点访问WebUI,可以看到此时是1个JobManager,2个TaskManager,也能以上实行完毕的任务,如下图:

4、Flink Standalone HA搭建4.1、HA模式先容

在Flink Standalone模式下,实现HA的办法可以利用ZooKeeper在所有正在运行的JobManager实例之间进行分布式折衷,实现多个JobManager无缝切换。
Flink Standalone模式的HA架构如图:

HA的核心便是:可以在集群中启动多个JobManager,并使它们都向ZooKeeper进行注册,ZooKeeper利用自身的选举机制担保同一韶光只有一个JobManager是活动状态(Active)的,其他的都是备用状态(Standby)。
当活动状态的JobManager涌现故障时,ZooKeeper会从其他备用状态的JobManager选出一个成为活动JobManager。
流程见下图:

此外,活动状态的JobManager在事情时会将其元数据(JobGraph、运用程序JAR文件等)写入一个远程持久化存储系统(例如HDFS)中,还会将元数据存储的位置和路径信息写入ZooKeeper存储,以便能够进行故障规复,如图下图所示:

4.2、角色分配

下面仍旧采取前面的的3个节点,在前面已经搭建好的Flink Standalone集群上进行操作。
集群角色分配如下图:

搭建步骤如下:

4.3、修正masters文件

Flink的masters文件用于配置所有须要启动的JobManager节点以及每个JobManager的WebUI绑定的端口。

进入centos01节点的Flink安装目录,修正conf/masters文件,修正内容如下:

centos01:8081centos02:8082

上述配置表示在集群centos01和centos02节点上启动JobManager,并且每个JobManager的WebUI访问端口分别为8081。

4.4、修正flink-conf.yaml文件设置高可用模式

进入centos01节点的Flink安装主目录,修正conf/flink-conf.yaml文件,添加以下内容:

# 将高可用模式设置为ZooKeeper,默认集群不会开启高可用状态high-availability: zookeeper# ZooKeeper集群主机名(或IP)与端口列表,多个以逗号分隔high-availability.zookeeper.quorum: centos01:2181,centos02:2181,centos03:2181# 用于持久化JobManager元数据(JobGraph、运用程序JAR文件等)的HDFS地址,以便进行故障规复,ZooKeeper上存储的只是元数据所在的位置路径信息high-availability.storageDir: /data/software/flink-15.4/ha# 获取storageDir也可用hdfs,如果利用hdfs的话,则须要单独安装hdfs,本文暂不该用#high-availability.storageDir: hdfs://centos01:9000/flink/recovery4.5、修正zoo.cfg文件

Flink内置了ZooKeeper做事和干系脚本文件,如果你的集群中没有安装ZooKeeper,则可以通过修正zoo.cfg文件配置Flink内置的ZooKeeper。
生产环境建议利用独立的外部ZooKeeper。

进入centos01节点的Flink安装主目录,修正conf/zoo.cfg文件,添加以下内容,配置ZooKeeper启动节点与选举干系端口:

server.1=centos01:2888:3888server.2=centos02:2888:3888server.3=centos03:2888:388

上述配置表示在centos01、centos02和centos03节点上启动ZooKeeper做事,个中1、2、3表示每个ZooKeeper做事器的唯一ID。

4.6、复制Flink安装文件到其他节点

连续采取scp命令,复制centos01的文件到其他节点,scp命令会把相同文件覆盖。

scp -r /data/software/flink-15.4/ centos02:/data/software/flink-15.4/scp -r /data/software/flink-15.4/ centos03:/data/software/flink-15.4/4.7、启动ZooKeeper集群

如果利用Flink内置的ZooKeeper,在centos01节点实行以下命令,即可启动全体ZooKeeper集群:

./bin/start-zookeeper-quorum.sh

启动过程见下图:

启动成功后,在每个Flink节点上都会产生一个名为FlinkZooKeeperQuorumPeer的进程,该进程是ZooKeeper做事的守护进程。
利用jsp可以查看到如下进程:

4.8、启动Flink Standalone HA集群

在centos01节点上实行以下命令,启动Flink Standalone HA集群:

bin/start-cluster.sh

启动过程类似下图:

单独查看centos01的进程,如下图:

单独查看centos02的进程,如下图:

单独查看centos03的进程,如下图:

在查看/tmp目录,可以看到干系元数据信息:

4.9、访问WebUI

之前的防止,只有centos01可以访问dashboard,现在centos01、centos02都可以访问。

在提交一个测试,如果能正常实行,解释全体集群正常。

./bin/flink run examples/streaming/WordCount.jar4.10、停滞集群

若要停滞Flink Standalone HA集群,在centos01节点上首先实行以下命令停滞全体Flink集群:

bin/stop-cluster.sh

然后实行以下命令,停滞ZooKeeper集群:

bin/stop-zookeeper-quorum.sh

以上是Flink的安装步骤!
下一篇先容Flink DataStream的观点和利用案例。

原文链接:http://www.mangod.top/articles/2023/07/26/1690349392449.html、https://mp.weixin.qq.com/s/XICBfneJWFe4quwf3kRQXQ

感谢你的阅读,码字不易,欢迎点赞 关注 收藏!