Flink入门之核心概念(三)

任务槽

  • TaskSlots: 任务槽,是TaskManager提供的用于执行Task的资源(CPU + 内存)

  • TaskManager提供的TaskSlots的个数:主要由Taskmanager所在机器的CPU核心数来决定,不能超过CPU的最大核心数

    • 1.可以在flink/conf/flink-conf.yaml文件中的numberOfTaskSlot配置
    • 2.在yarn集群中运行flink时,任务槽的个数受到yarn中container的最大CPU数 vcores
  • 一个作业的Task数量如何确定?

    • 1.主要由算子数、算子链数、并行度共同来决定的
    • 2.如果禁用算子链合并,task的数量 = 算子数 * 并行度(并行度相同)
    • 3.如果存在算子链合并,task的数量 = 合并后的算子链数(包含不合并的算子)* 并行度(并行度相同)
  • Slot共享:flink允许将上下游的task共享给同一个slot。但是注意,同一个Task的并行子任务不允许共享

  • 为什么要Slot共享?

    • 1.当我们将资源密集型和非密集型的任务同时放到一个slot中,他们就可以自行分配对资源占用的比例,保证最重的活平均分配给所有的Taskmanager
    • 2.Slot共享另一个好处就是在一个Slot中可以保存完整的作业管道
  • 能不能不共享?

    • 通过设置共享组(算子.slotSharingGroup("共享组名"))来实现共享或者不共享,默认的共享组为default,从source端往后传递,如果下游的算子没有具体设置共享组
  • 一个作业的并行度如何确定?

    • 作业的并行度由当前作业中并行度最大的算子的并行度决定
    • 一个作业需要多少个TaskSlot如何确定?
    • 作业需要多少个taskSlot由作业的并行度决定(前提是slot共享)

Yarn应用模式作业提交流程

  1. 客户端提交任务,Yarn的ResourceManager启动AM
  2. AM中的Actor通信系统
    • 启动资源管理器
    • 启动分发器
      • 分发器启动JobMaster
  3. JobMaster
    • 生成逻辑流图
    • 生成作业流图
    • 生成执行流图
    • 向资源管理器 注册请求Slot
  4. 资源管理器向Yarn的Resource manager申请资源
  5. Resource Manager启动TaskManager
  6. TaskManager向AM中的资源管理器注册需要的Slot
  7. AM的资源管理器分配slot给TaskManager
  8. JobMaster获取目前TaskManager现有的Slot个数
  9. JobMaster分配任务给各个TaskManager,各个TaskManager生成相应的物理流图并执行。
相关推荐
Tob管理笔记38 分钟前
建筑业如何精准开拓优质客户?技术驱动下的方法论与实践
大数据·云计算·数据库开发
MM_MS40 分钟前
Halcon控制语句
java·大数据·前端·数据库·人工智能·算法·视觉检测
JZC_xiaozhong1 小时前
主数据同步失效引发的业务风险与集成架构治理
大数据·架构·数据一致性·mdm·主数据管理·数据孤岛解决方案·数据集成与应用集成
T06205142 小时前
【数据集】全国各地区教育139个相关指标数据集(2000-2024年)
大数据
故乡de云2 小时前
Vertex AI 企业账号体系,Google Cloud 才能完整支撑
大数据·人工智能
汽车仪器仪表相关领域2 小时前
AI赋能智能检测,引领灯光检测新高度——NHD-6109智能全自动远近光检测仪项目实战分享
大数据·人工智能·功能测试·机器学习·汽车·可用性测试·安全性测试
木头程序员2 小时前
大模型边缘部署突破:动态推理技术与精度-延迟-能耗帕累托优化
大数据·人工智能·计算机视觉·自然语言处理·智能手机·数据挖掘
DX_水位流量监测2 小时前
无人机测流之雷达流速仪监测技术分析
大数据·网络·人工智能·数据分析·自动化·无人机
鹿衔`2 小时前
Hadoop HDFS 核心机制与设计理念浅析文档
大数据·hadoop·hdfs
萤丰信息3 小时前
开启园区“生命体”时代——智慧园区系统,定义未来的办公与生活
java·大数据·运维·数据库·人工智能·生活·智慧园区