目录
- 介绍
- 1、涉及安装包
- 2、节点
- 3、修改hostname
- 4、将flink安装包上传并解压
- 5、修改配置文件
- 6、修改masters和workers(所有节点)
- 7、集群启停
介绍
Flink 是一个分布式系统,需要有效分配和管理计算资源才能执行流应用程序。它集成了所有常见的集群资源管理器,例如Hadoop YARN,但也可以设置作为独立集群甚至库运行。
Flink 运行时由两种类型的进程组成:一个 JobManager 和一个或者多个 TaskManager。
Client 不是运行时和程序执行的一部分,而是用于准备数据流并将其发送给 JobManager。之后,客户端可以断开连接(分离模式),或保持连接来接收进程报告(附加模式)。客户端可以作为触发执行 Java/Scala 程序的一部分运行,也可以在命令行进程./bin/flink run …中运行。
可以通过多种方式启动 JobManager 和 TaskManager:直接在机器上作为standalone 集群启动、在容器中启动、或者通过YARN等资源框架管理并启动。TaskManager 连接到 JobManagers,宣布自己可用,并被分配工作。
JobManager
JobManager 具有许多与协调 Flink 应用程序的分布式执行有关的职责:它决定何时调度下一个 task(或一组 task)、对完成的 task 或执行失败做出反应、协调 checkpoint、并且协调从失败中恢复等等。这个进程由三个不同的组件组成:
- ResourceManager
ResourceManager 负责 Flink 集群中的资源提供、回收、分配 - 它管理 task slots,这是 Flink 集群中资源调度的单位(请参考TaskManagers)。Flink 为不同的环境和资源提供者(例如 YARN、Kubernetes 和 standalone 部署)实现了对应的 ResourceManager。在 standalone 设置中,ResourceManager 只能分配可用 TaskManager 的 slots,而不能自行启动新的 TaskManager。
- Dispatcher
Dispatcher 提供了一个 REST 接口,用来提交 Flink 应用程序执行,并为每个提交的作业启动一个新的 JobMaster。它还运行 Flink WebUI 用来提供作业执行信息。
- JobMaster
JobMaster 负责管理单个JobGraph的执行。Flink 集群中可以同时运行多个作业,每个作业都有自己的 JobMaster。始终至少有一个 JobManager。高可用(HA)设置中可能有多个 JobManager,其中一个始终是 leader,其他的则是 standby(请参考 高可用(HA))。
TaskManagers
TaskManager(也称为 worker)执行作业流的 task,并且缓存和交换数据流。必须始终至少有一个 TaskManager。在 TaskManager 中资源调度的最小单位是 task slot。TaskManager 中 task slot 的数量表示并发处理 task 的数量。请注意一个 task slot 中可以执行多个算子
1、涉及安装包
- flink-1.20.0-bin-scala_2.12.tgz
2、节点
IP | 主机名 | 备注 |
---|---|---|
192.168.15.130 | cnode1 | master |
192.168.15.131 | cnode2 | worker |
192.168.15.132 | cnode3 | worker |
3、修改hostname
vim /etc/hosts
输入以下内容
192.168.15.130 cnode1
192.168.15.131 cnode2
192.168.15.132 cnode3
4、将flink安装包上传并解压
tar -zxvf /home/data/flink/flink-1.20.0-bin-scala_2.12.tgz
5、修改配置文件
vim /home/data/flink/flink-1.20.0/conf/config.yaml
jobmanager:bind-host: 0.0.0.0 # 改动点rpc:address: cnode1# 改动点,master服务器的hostnameport: 6123memory:process:size: 1600mexecution:failover-strategy: region
taskmanager:bind-host: 0.0.0.0 # 改动点host: cnode1# 改动点,所在服务器的hostname,其他节点改为cnode2、cnode3numberOfTaskSlots: 1memory:process:size: 1728m
rest:address: cnode1 #改动点,master服务器的hostnamebind-address: 0.0.0.0 #改动点,监听在0.0.0.0,确保其他服务器可以访问
6、修改masters和workers(所有节点)
vim /home/data/flink/flink-1.20.0/conf/masters
输入以下内容
cnode1:8081
vim /home/data/flink/flink-1.20.0/conf/workers
输入以下内容
cnode1
cnode2
cnode3
7、集群启停
启动
/home/data/flink/flink-1.20.0/bin/start-cluster.sh
停止
/home/data/flink/flink-1.20.0/bin/stop-cluster.sh
kill -SIGKILL 2385 #未停止时使用
查看是否启动
jps
访问http://192.168.15.130:8081