IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Flink Streaming Dataflow -> 正文阅读

[大数据]Flink Streaming Dataflow

Flink Streaming Dataflow

概念解释

在这里插入图片描述

  • Dataflow:Flink 程序在执行的时候会被映射成一个数据流模型
  • Operator: 数 据 流 模 型 中 的 每 一 个 操 作 被 称 作 Operator,Operator 分 为:Source/Transform/Sink
  • Partition:数据流模型是分布式的和并行的,执行中会形成 1~n 个分区 - Subtask:多个分区任务可以并行,每一个都是独立运行在一个线程中的,也 就是一个 Subtask 子任务
  • Parallelism:并行度,就是可以同时真正执行的子任务数/分区数

Operator 传递模式

数据在两个 operator(算子)之间传递的时候有两种模式:
1.One to One 模式:
两个 operator 用此模式传递的时候,会保持数据的分区数和数据的排序;如 上图中的 Source1 到 Map1,它就保留的 Source 的分区特性,以及分区元素处理 的有序性。类似于 Spark 中的窄依赖。
2.Redistributing 模式:
这种模式会改变数据的分区数;每个一个 operator subtask 会根据选择 transformation 把数据发送到不同的目标 subtasks,比如 keyBy()会通过 hashcode 重 新分区,broadcast()和 rebalance()方法会随机重新分区。类似于 Spark 中的宽依赖。

Operator Chain

在这里插入图片描述
客户端在提交任务的时候会对 Operator 进行优化操作,能进行合并的 Operator 会被合并为一个 Operator,合并后的 Operator 称为 Operator chain,实 际上就是一个执行链,每个执行链会在 TaskManager 上一个独立的线程中执行-- 就是 SubTask。

TaskSlot 和 Slot Sharing

1.任务槽(TaskSlot)
在这里插入图片描述

每个 TaskManager 是一个 JVM 的进程, 为了控制一个 TaskManager(worker) 能接收多少个 task,Flink 通过 Task Slot 来进行控制。TaskSlot 数量是用来限制一 个 TaskManager 工作进程中可以同时运行多少个工作线程,TaskSlot 是一个 TaskManager 中的最小资源分配单位,一个 TaskManager 中有多少个 TaskSlot 就意味着能支持多少并发的 Task 处理。 Flink 将进程的内存进行了划分到多个 slot 中,内存被划分到不同的 slot 之 后可以获得如下好处: TaskManager 最多能同时并发执行的子任务数是可以通过 TaskSolt 数量来控 制的;TaskSolt 有独占的内存空间,这样在一个 TaskManager 中可以运行多个不同 的作业,作业之间不受影响。
2.槽共享(Slot Sharing)
在这里插入图片描述
Flink 允许子任务共享插槽,即使它们是不同任务(阶段)的子任务(subTask), 只要它们来自同一个作业。 比如图左下角中的 map 和 keyBy 和 sink 在一个 TaskSlot 里执行以达到资源 共享的目的。 允许插槽共享有两个主要好处: 资源分配更加公平,如果有比较空闲的 slot 可以将更多的任务分配给它。 有了任务槽共享,可以提高资源的利用率。

注意:

  • slot 是静态的概念,是指 taskmanager 具有的并发执行能力
  • parallelism 是动态的概念,是指程序运行时实际使用的并发能力
  • slot 的总数量 >= parallelism
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-25 12:16:45  更:2021-08-25 12:19:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:26:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码