flink架构体系及部署分类

一:Flink的架构体系

1.基础概念

  • JobManager 主节点,老大节点用于管理 Flink 集群,容错机制,状态管理,心跳机制的管理等
  • TaskManager 从节点,干活节点,用于具体任务执行
  • Slot 任务槽:静态的概念,具备的能力,包含CPU(一个线程)和内存,任务task就是在 Slot 中执行,每个Slot中最多只能执行一个 task。内存分配是静态的,将可执行的内存大小平均的分配给 n 份,slot中内存之间是隔离的,cpu core不隔离的。
  • 并行度 parallelism : 动态的概念,表示当前 task 并行执行的个数。
    • 设置并行度的四种方式:
      1. 在配置文件中设置 flink-conf.yaml ,优先级最低
      2. 在提交client客户端任务时候,设置 flink run -p 2
      3. 全局的流执行环境设置并行度 env.setParallelism(2) ,全局并行度设置
      4. 算子级别的并行度设置,优先级别最高,sink,sink.setParallelism(2)
  • Task : 每个 Flink任务划分出来的多个任务
  • subTask : 将每个 Task 根据并行度划分的子任务,有多少个并行度就有多少个子任务

2.Flink作业执行过程

  • JobClient代表分布式系统的面向用户的客户端组件。它用于与JobManager进行通信,因此它负责提交Flink作业,查询已提交作业的状态并接收当前正在运行的作业的状态消息。
  • JobManager是中央控制单元,负责执行Flink作业。因此,它控制着资源分配,任务调度和状态报告、容错。
  • TaskManager是具体的程序执行
  • 总结
    1. 主从
    2. Client - > 老大 JobManager -> 小弟 TaskManager

二:部署方式分类

1.Local 本地部署

  • 应用场景:开发环境
  • 部署步骤:
  1. 设置 JDK运行环境
  2. 配置 SSH 免密登录
  3. 下载并解压缩 Flink-1.13.1 到 /export/server
  4. 修改配置文件 flink-conf.yaml , value 前面有个空格
jobmanager.rpc.address: node1
  1. 开启flink环境查看web UI监控
# 开启集群
[root@node1 bin]# start-cluster.sh
# 访问监控页面 webUI 
http://node1:8081

2.Standalone

使用Flink自带的资源调度平台进行任务的部署

  • 应用场景:开发、测试使用
  • 安装部署:

1. flink/conf/flink-conf.yaml 基础配置

# jobManager 的IP地址
jobmanager.rpc.address: node1
# JobManager 的端口号
jobmanager.rpc.port: 6123
# JobManager JVM heap 内存大小
jobmanager.memory.process.size: 1600m
# TaskManager JVM heap 内存大小
taskmanager.memory.process.size: 1728m
# 每个 TaskManager 提供的任务 slots 数量大小
taskmanager.numberOfTaskSlots: 2
#是否进行预分配内存,默认不进行预分配,这样在我们不使用flink集群时候不会占用集群资源
taskmanager.memory.preallocate: false
# 程序默认并行计算的个数
parallelism.default: 1
#JobManager的Web界面的端口(默认:8081)
jobmanager.web.port: 8081

2.配置 worker文件

  • 将每个从节点 hostname 保存,一行一个
  • 将flink的程序及配置拷贝到其他的节点

3.scp flink 复制到其他节点

scp /export/server/flink root@node2:/export/server
scp /export/server/flink root@node3:/export/server

4.配置环境变量

vim /etc/profile
FLINK_HOME=/export/server/flink
PATH=$PATH:$FLINK_HOME/bin
# 立即生效
source /etc/profile

5.开启Flink集群

start-cluster.sh

6.查看当前的 Flink集群的状态,webUI

node1:8081

3.Standalone-HA高可用的部署方式

使用场景:开发、测试使用

部署步骤:和 Standalone 部署方式几乎一样,区别:

需要将每一台节点的 flink-conf.yaml 中 HA 高可用的zookeeper设置并将zookeeper集群地址设置好

1.配置 flink-conf.yaml

  • node1
#===============&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值