zoukankan      html  css  js  c++  java
  • 理解Flink中的Task和SUBTASK

    1、概念

    Task(任务):Task是一个阶段多个功能相同的subTask 的集合,类似于Spark中的TaskSet。

    subTask(子任务):subTask是Flink中任务最小执行单元,是一个Java类的实例,这个Java类中有属性和方法,完成具体的计算逻辑。

    Operator Chains(算子链):没有shuffle的多个算子合并在一个subTask中,类似于Spark 中的Pipeline。

    Slot(插槽):Flink 中计算资源进行隔离的单元,一个Slot中可以运行多个subTask,但是这些subTask必须是来自同一个application的不同阶段的subTask。

    State(状态):Flink在运行过程中计算的中间结果。

    2、DATAFLOWS数据流介绍

    Flink程序的基本构建是 流(stream)和转换(Transform)

    从概念上讲,流是对当前数据流向的记录(流也可能是永无止境的),而 转换是将一个或多个流作为输入,根据需要求转换成我们要的格式的流的过程。

    2.2.1、如何划分TASK的依据

    1、并行度发生变化时

    2、keyBy()/window()/apply() 等发生Rebalance重新分配

    3、调用startNewChain()方法,开启一个新的算子链

    4、调用diableChaining()方法,即:告诉当前算子操作不使用算子链操作。

    3、OPERATOR CHAINS介绍

    Flink将多个subTask 合并成一个Task(任务),这个过程叫做 Operator Chains,每个任务由一个线程执行。使用Operator Chains(算子链)可以将多个分开的subTask拼接成

    一个任务。

    Operator Chains 是一个有用的优化,它减少了线程到线程的切换和缓冲的开销,并在降低延迟的同时提高了总体吞吐量。

  • 相关阅读:
    POJ 3356 水LCS
    POJ 2250 (LCS,经典输出LCS序列 dfs)
    POJ 1080( LCS变形)
    整数划分问题之最大乘积
    进程调度之FCFS算法(先来先运行算法)
    c模拟银行家资源分配算法
    c模拟内存分配算法(首次适应算法,最佳适应算法,最坏适应算法)
    HDU 2602 Bone Collector(经典01背包问题)
    NYOJ 44 字串和 (最大字串和 线性dp)
    匈牙利游戏(codevs 1269)
  • 原文地址:https://www.cnblogs.com/ssqq5200936/p/13909669.html
Copyright © 2011-2022 走看看