Flink部署、使用、原理简介(下)

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: Flink部署、使用、原理简介(下)

image.png


image.png


任务执行细节详见


流处理开源框架Flink原理简介和使用


简单使用了flink之后,接下来咱刨析下flink运行的原理


原理介绍


Flink运行组件


image.png


Flink是通过Java和Scala实现的 所以所有组件都运行在Java虚拟机上


  • 作业管理器(JobManager)


  • 控制一个应用程序执行的主进程 每个应用程序都会被一个不同的JobManager所控制执行


  • JobManager会先接受到要执行的应用程序 这个应用程序会包括作业图(JobGraph)、逻辑数据流图(logical dataflow graph)和打包了所有类、库和其他资源的jar包


  • JobManager会把JobGraph转换成一个物理层面的数据流图 这个图叫做执行图(ExecutionGraph) 包含了所有可以并发执行的任务


  • JobManager 会向资源器 (ResourceManager)请求执行任务必要的资源 也就是任务管理器(TaskManager)上的插槽(slot) 一旦它获取到了足够的资源 就会将执行图分发到真正运行它们的TaskManager上。而在执行的过程中


  • JobManager会负责所有需要中央协调的操作 比如检查点(CheckPoints)的协调


  • 任务管理器(TaskManager)


  • Flink中的工作进程 通过在Flink中会有多个TaskManager运行 每一个TaskManager会包含一定数量的slot插槽。插槽的数量限制了TaskManager能够执行的任务数量


  • 在执行过程中 一个TaskManager可以和其他运行在同一应用程序的TaskManager交换数据


  • 资源管理器(ResouceManager)


  • 主要负责管理任务管理器(TaskManager)的插槽(slot)   TaskManager插槽是Flink中定义的处理资源单元


  • Flink为不同的环境和不同的资源管理工具提供了不同的资源管理器 比如 Yarn、Mesos、K8s、standalone部署


  • 当JobManager申请插槽资源时 ResourceManager会将有空闲插槽的TaskManager分配给JobManager 如果ResourceManager没有足够的插槽来满足JobManager请求 还可以向资源提供平台发起会话 以提供启动TaskManager进程的容器 。ResourceManager还负责终止空闲的TaskManager 释放计算资源


  • 分发器(Dispatcher)


  • 可以跨作业运行 它为应用提交提供了Rest接口


  • 当一个任务被提交时 分发器就会启动并将应用移交给一个JobManager


  • Dispatcher也会启动一个Web UI 用来方便展示和监控作业执行信息


  • Dispatcher在架构中可能不是必须的 取决于应用提交运行的方式


任务提交流程


image.png


  • Flink 任务提交后


  • Client 向 HDFS 上传 Flink 的 Jar 包和配置


  • 之后向 Yarn ResourceManager 提交任务


  • ResourceManager 分配 Container 资源并通知对应的 NodeManager 启动 ApplicationMaster


  • ApplicationMaster 启动后加载 Flink 的 Jar 包和配置构建环境


  • 然后启动 JobManager


  • 之后 ApplicationMaster 向 ResourceManager 申 请 资 源 启 动 TaskManager


  • ResourceManager 分 配 Container 资 源 后


  • 由 ApplicationMaster 通 知 资 源 所 在 节 点 的 NodeManager 启 动 TaskManager


  • NodeManager 加载 Flink 的 Jar 包和配置构建环境并启动 TaskManager


  • TaskManager 启动后向 JobManager 发送心跳包,并等待 JobManager 向其分配任务


相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
4天前
|
Kubernetes 流计算 Perl
在Rancher K8s上部署Flink时,TaskManager连接不上并不断重启可能是由多种原因导致的
在Rancher K8s上部署Flink时,TaskManager连接不上并不断重启可能是由多种原因导致的
43 7
|
1天前
|
SQL 消息中间件 NoSQL
实时计算 Flink版操作报错合集之部署war包的时候,错误提示 "No ExecutorFactory found to execute the application." 如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
17 2
|
2天前
|
SQL 分布式计算 关系型数据库
实时计算 Flink版产品使用合集之MySQL CDC Connector是否需要在Flink服务器上单独部署
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
11 0
|
2天前
|
SQL Prometheus Kubernetes
实时计算 Flink版产品使用合集之时间戳读取的原理是什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
9 0
|
2天前
|
消息中间件 资源调度 分布式计算
实时计算 Flink版产品使用合集之1.13版本上部署一个flink1.17为什么任务启动一直accepted状态yarn的,有什么排查方向吗资源什么的都是充足的
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
15 1
|
4天前
|
存储 NoSQL 分布式数据库
【Flink】Flink分布式快照的原理是什么?
【4月更文挑战第21天】【Flink】Flink分布式快照的原理是什么?
|
4天前
|
运维 监控 Java
面经:Storm实时计算框架原理与应用场景
【4月更文挑战第11天】本文是关于Apache Storm实时流处理框架的面试攻略和核心原理解析。文章分享了面试常见主题,包括Storm的架构与核心概念(如Spout、Bolt、Topology、Tuple和Ack机制),编程模型与API,部署与运维,以及应用场景与最佳实践。通过代码示例展示了如何构建一个简单的WordCountTopology,强调理解和运用Storm的关键知识点对于面试和实际工作的重要性。
40 4
面经:Storm实时计算框架原理与应用场景
|
4天前
|
机器学习/深度学习 分布式计算 BI
Flink实时流处理框架原理与应用:面试经验与必备知识点解析
【4月更文挑战第9天】本文详尽探讨了Flink实时流处理框架的原理,包括运行时架构、数据流模型、状态管理和容错机制、资源调度与优化以及与外部系统的集成。此外,还介绍了Flink在实时数据管道、分析、数仓与BI、机器学习等领域的应用实践。同时,文章提供了面试经验与常见问题解析,如Flink与其他系统的对比、实际项目挑战及解决方案,并展望了Flink的未来发展趋势。附带Java DataStream API代码样例,为学习和面试准备提供了实用素材。
92 0
|
4天前
|
SQL 缓存 分布式计算
flink1.18 SqlGateway 的使用和原理分析
# 了解flink1.18 sqlGateway 的安装和使用步骤 # 启动sqlgateway 流程,了解核心的结构 # sql提交流程,了解sql 的流转逻辑 # select 查询的ResultSet的对接流程,了解数据的返回和获取逻辑
|
4天前
|
资源调度 Kubernetes Apache
部署Flink集群后没有资源可能有以下几个原因
【2月更文挑战第23天】 部署Flink集群后没有资源可能有以下几个原因
20 2
http://www.vxiaotou.com