美文网首页Flink
1.Flink基本概念

1.Flink基本概念

作者: 尼小摩 | 来源:发表于2018-04-29 02:30 被阅读0次

一. Flink分层架构

Flink分层架构图
  • Stateful Stream Processiing

    1. 位于最底层,是core API的底层实现
    2. process Function
    3. 利用低阶,构建一些新组件(比如:利用其定时做一定情况下的匹配和缓存)
    4. 灵活度高,但看法比较复杂
  • Core APIS

    1. DataStream 流式处理
    2. DataSet 批量处理
  • Table & SQL

    1. SQL构建在Table之上,都需要构建Table环境。
    2. 不同类型的Table构建不同的Table环境。
    3. Table可以与DataStream或者DataSet进行相互转换。
    4. Streaming SQL不同存储的SQL, 最终会转化为流式执行计划

Flink 构建的流程

  1. 构建计算环境(决定采用哪种计算执行方式)
  2. 创建Source(可以多个数据源)
  3. 对数据进行不同方式的转换(提供丰富的算子)
  4. 对结果的数据进行Sink(可以输出到多个地方)

Flink DataFlow

Flink DataFlow

二. Flink运行架构

  • Client
  • JobManager
  • TaskManager
  • 角色间的通信(Akka)
  • 数据的传输(Netty)
    调度图

TaskManager Slot

CoLocation Group

  • 保证所有的i-th的sub-tasks在同一个slots
  • 主要用于迭代流

SlotSharingGroup

  • 保证同一个group的i-th的sub-tasks共享同一个slots
  • 算子默认的group为default
  • 怎么确定一个算子的SlotSharingGroup(根据input的group和和自身是否设置group共同决定)
  • 适当设置可以减少每个slot运行的线程数,从而整体上减少机器负载。

TaskManager Slot

TaskManager Slot

Slots && parallelism


一个应用需要多少Slots
  • 不设置SlotSharingGroup(应用的最大并行度)
  • 设置SlotSharingGroup(所有SlotSharingGroup中最大的并行度之和)

OperatorChain && Task

OpertorChain组成条件

  • 没有禁用Chain
  • 上下游算子并行度一致
  • 下游算子的入度为1
  • 上下游算子在同一个slot group
  • 上下游算子之间没有数据shuffle

OperatorChain的优点

  • 减少线程切换
  • 减少序列化与反序列化
  • 减少延迟并且提高吞吐能力

运行架构小结

  • JobManager 用于任务调度和checkpoint协调
  • TaskManager worker节点task执行
  • TaskManager Slots 用于资源分割
  • Operator 算子操作
  • Task 任务执行
  • Parallelism 并行度

相关文章

网友评论

    本文标题:1.Flink基本概念

    本文链接:https://www.haomeiwen.com/subject/inanlftx.html