当前位置: 首页 > news >正文

01、flink的原理和安装部署

flink中主要有两个进程,分别是JobMManager和TaskManager,当然了根据flink的部署和运行环境不同,会有一些不同,但是主要的功能是类似的,下面我会讲下聊下,公司用的多的部署方式,基于yarn集群的部署

01. JobManager

  • job任务的拆解
  • 资源的调度
  • checkpoints的生成

02. TaskManager

  • 根据JobManager给的具体task任务启动线程去执行

03. Flink中相关概念的含义

flink中任务跑起来之后会有这些名字需要弄清楚,并行度,分区,算子链,taskslot,task,subTask

  • Task: 相当于Spark中的Stage,一个job中根据是否发生分区的变化(主要是指产生shuffle的操作:上游分区的数据会分成若干份,被拉去到下游的不同分区)把job切分成不同的Task

  • 算子链: 算子链由若干个能划分成一个Task的算子组成

  • TaskSlot: TaskSlot代表可以运行Task的一组资源槽,分布在各个TaskManager进程中

  • 并行度,分区,SubTask: 并行度,分区和SubTask在flink中都表示相近的意思,都代表当下task的并发程度,也可以看作是一个运行线程

    其中需要的几点如下,其中一点是,Flink任务TaskSlot的数量要大于等于这个job中各算子并行度最大的那个算子的并行度,否则任务跑不起来,还有一点是各个Task需要运行在一个TaskSlot比如一个job有3个Task,那这三个Task就应该被分配到同一个slot中运行,这样做的目的是为了减少各个Task之间数据交换的成本,如下图所示
    在这里插入图片描述

04. Flink on yarn的运行原理

flink on yanr是大多数公司选择的一种运行方式,它的优势主要是借助yarn的资源管理能力,通过yarn能更灵活把控flink job进行资源利用,同时也大大的减轻了公司大数据组件的维护压力,如下是on yarn的运行流程

  • 任务提交之后,yanr会把我们提交的jar包已经运行的所需的jar包都放到hdfs的中
  • 同时client会和ResourceManager通信,RM会在对应的NodeManager中启动一个ApplicationMaster进程来运行我们提交的主jar包上的main方法,构建任务的运行环境
  • 上步骤中的APPMaster其实就是JobManager的功能,它会吧job的task分割好,然后再回到RM中申请对应的资源运行Task
  • RM接收到请求之后然后根据配置会启动对应的TaskManager,在每个TaskManager中启动相应的TaskSlot
  • 对应的资源都准备好之后,TaskManager会去下载对应Task运行时需要的jar包来构建运行环境
  • 环境构建之后,每个slot就运行分配给自己的任务,在这期间会和JobManager进行通信,共同完成job的任务
    在这里插入图片描述
http://www.lryc.cn/news/521952.html

相关文章:

  • 美图脱掉“复古外衣”,在AI浪潮中蜕变
  • sqlalchemy The transaction is active - has not been committed or rolled back.
  • 47.数据绑定的PropertyChanged C#例子 WPF例子
  • 网络安全 | Web安全常见漏洞和防护经验策略
  • Agent一键安装,快速上手Zabbix监控!
  • Edge Scdn是什么,它如何提升网站安全性与访问速度?
  • ubuntu20.04 docker安装
  • 初始C#.
  • js高亮文本
  • 解决SpringBoot 健康检测接口 actuator/health 访问一直卡着,但 actuator/info等其他接口能正常访问的问题
  • KVM创建ubuntu20.04虚机,部署K8S,再克隆出二份,做为Worker节点加入集群,通过Helm创建2个Pod,让它们之间通过域名互访
  • GaussDB中的Vacuum和Analyze
  • IvorySQL 4.2 发布
  • 浅谈云计算20 | OpenStack管理模块(下)
  • 去年社融增量超32万亿 货币信贷平稳增长-乐享数科
  • STM32 HAL库函数入门指南:从原理到实践
  • React封装倒计时按钮
  • 深入探究Linux树状目录结构
  • Realsense相机驱动安装及其ROS通讯配置——机器人抓取系统基础系列(四)
  • linux安装nvm
  • 图论1-问题 C: 算法7-6:图的遍历——广度优先搜索
  • 基于 STM32 的多功能时间管理器项目
  • Java工程结构:二方库依赖规约
  • Django自带admin管理系统使用
  • Jmeter 简单使用、生成测试报告(一)
  • 手摸手实战前端项目CI CD
  • 【Elasticsearch】搜索类型介绍,以及使用SpringBoot实现,并展现给前端
  • K8S中的Pod调度之亲和性调度
  • 高等数学学习笔记 ☞ 不定积分的积分法
  • 【HTTP】详解