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 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 2021-08-30 大数据flink框架 -> 正文阅读

[大数据]2021-08-30 大数据flink框架

flink架构设计

架构设计图
flink架构设计图
官方给出的为三层结构,其中Deploy层负责解决flink的部署问题,runtime层是flink的核心实现层,api和libraries面向编程人员。

flink运行模式

本地运行模式(local)
脱机运行模式(standalone)
集群运行模式(flink on yarn/mesos/kubernetes等资源管理平台)
其中集群运行模式又分为三种
??会话模式(session)
??工作模式(per-job)
??应用模式(application)

本地运行模式主要用于代码测试,一个机器启动一个进程的多线程来模拟分布
脱机运行模式主要用于纯Flink纯计算的场景,商用场景极少。
集群运行模式是重点
??会话模式,提前开启一个 工作管理者(job manager),多个 任务(task)都由一个 任务管理者(task manager)管理,而所有的 任务管理者 都向 工作管理者 汇报消息
????优点:可以节省大量申请资源和启动 任务管理者 的时间,当 任务 持续时间较短并且需要频繁的创建时适合使用
????缺点:没有很好的资源隔离性,即当 工作管理者 发生错误时,会导致集群中所有运行着的 任务 失败,当 任务管理者 发生错误时,会导致所有由该 任务管理者 管理的 任务 失败。
????工作流程示意图

会话模式示意图

??工作模式,每当有一个 任务 被提交时,会启动一个 flink工作集群 并将这个任务提交给 分发器(dispatcher),根据 任务 的资源请求去分配 任务管理者 ,当 任务 完成时,将会拆掉 flink工作集群
????优点:当 工作管理者 发生错误时,只会影响到 flink工作集群 中运行的一个 任务
????缺点:每一个 任务 都需要申请资源,浪费时间,以至于实时性不是很好
????工作流程示意图
工作模式示意图
??应用模式,算是前面两种模式的折中,将程序和依赖打包成一个可执行的 任务jar包 ,入口机的客户端把该jar包和需要的资源提交到hdfs中,由 工作管理者 拉取所有资源,如果 工作管理者 设置了 高可用性 (HA),会同时启动多个 工作管理者 并选出一个性能最好的,保障能顺利执行,通过main方法提取 工作图(job graph)来和集群交互。
????优缺点:资源隔离性比会话模式强比工作模式弱,实时性上比工作模式强比会话模式弱(ps:为什么实时性比工作模式强,因为工作模式相当于在入口机就执行代码,而入口机是可以被多个人访问,并且入口机计算效率没有集群高,毕竟双拳难敌四手,集群可是多台机器组合而成)
????应用场景:实时性要求不太高、安全性有一定要求均可以使用,普遍适用性最强

flink工作流程

核心角色:工作管理者(job manager)、任务管理者(task manager)
工作流程图
工作流程图
客户端(client) 不是运行时和程序执行的一部分,而是用于准备数据流并将其发送给 工作管理者 (job manager),提交任务完成之后 客户端 可以选择分离模式关闭,或者是附加模式,用于保持连接接收 任务 进程报告

扮演者系统(actor system) 是各个角色或组件之间相互通信的、消息传递的系统中间件, 扮演者(actor) 是一种并发编程模型,所有的线程或进程通过消息传递的方式进行合作和通信,这些线程或进程称为 扮演者 ,该系统以简单、高效著称,唯一的缺点是不能实现真正意义上的并行, 而是通过并发实现的并行效果,会存在一定的不确定性

工作管理者(job manager) 具有许多与协调flink应用程序的分布式执行有关的职责:它决定何时调度下一个 任务 或一组 任务 ,并对完成或者执行失败的 任务 做出反应、协调 检查点(checkpoint) ,并且协调从失败中恢复等,这个进程由三个不同的组件组成,分别是 资源管理者(resource manager) 、 分发器(dispatcher) 、 工头(job master)

资源管理者(resource manager) 负责flink集群中的资源提供、回收、分配,管理 任务插槽(task slots) ,是flink集群中资源调度的最小单位。flink为不同的环境和资源提供者(如 YARN、Mesos、Kubernetes 和 standalone 部署)实现了对应的 资源管理者 。在 脱机(standalone) 设置中, 资源管理者 只能分配可用 任务管理者(task manager) 的 插槽(slots),而不能自行启动新的 任务管理者

分发器(dispatcher) 提供了一个 REST 接口,用来提交flink应用程序执行,并为每个提交的作业启动一个新的 工头 ,运行 Flink WebUI 用来提供作业执行信息

工头(job master) 负责管理单个 工作图(job graph) 的执行。 flink 集群中可以同时运行多个作业,每个作业都有自己的 工头

任务管理者(task manager) 执行作业流的 任务(task) ,并缓存和交换数据流,必须始终至少有一个 任务管理者 。在 任务管理者 中资源调度的最小单位是 任务插槽(task slot) 。 任务管理者 中 任务插槽 的数量表示并发处理 任务 的数量,一个 任务插槽 中可以执行多个算子。

附加,yarn提交任务的工作流程图
yarn提交任务工作流程图

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-31 15:30:56  更:2021-08-31 15:31:59 
 
开发: 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 17:09:12-

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