flink工作原理

一.flink运行时的组件

1.Dispatcher(分发器)

一个可有可无的组件,提供了一个webUI,可以用webUI提交任务,也可以选择命令行提交

2.JobManager主节点(作业管理器)

接收要执行的应用程序(application),对job任务做整体的资源调度,划分很多个task任务,分布给TaskManager执行

3.ResourceManager(资源管理器)

根据不同情况进行分配slot(资源),对JobManager提供的slot请求,根据现有的slot情况进行分配slot,如果资源不够用,需要等待其它任务结束释放资源或者申请其它资源

4.TaskManager从节点(任务管理器)

执行具体task任务的一个结点(进程),每个TaskManager都会提供相应的slot的执行单元,它会与ResourceManager时刻保持心跳机制

二.任务提交流程

1.将写好的代码application,提交给分发器(Dispacher)

2.分发器(Dispacher)把job任务提交给作业管理器(JobManager),分发器可有可无,如果没有分发器(Dispacher),可以通过命令行进行提交job任务给作业管理器(JobManager)

3.作业管理器(JobManager)接收任务,并对任务做划分,得到执行图,可以知道当前job任务主slot来执行

4.作业管理器(JobManager)向资

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flink(Apache Flink)是一个开源的流式处理引擎,它可以在大规模数据集上进行实时和批量处理。Flink的核心思想是将数据处理与状态管理紧密结合在一起,以实现高效的流处理。 Flink工作原理和机制可以概括为以下几个方面: 1.数据流和数据集 Flink中的数据流是指一系列经过处理的数据记录,数据流可以是无限的(例如来自传感器的数据)或有限的(例如从文件中读取的数据)。Flink中的数据集是指一组有限的数据记录,这些数据记录可以在内存或磁盘上进行处理。 2.流处理和批处理 Flink支持流式处理和批处理,其中流处理是指实时处理无限数据流,而批处理是指在有限数据集上进行的离线处理。Flink中的流处理和批处理可以共享相同的API和运行时环境,这使得在处理大数据时更加灵活。 3.状态管理 Flink中的状态是指在数据流或数据集处理过程中存储的中间结果,例如聚合结果或窗口状态。Flink提供了多种状态管理机制,例如内存状态、RocksDB状态和分布式状态,以便在处理大规模数据时管理状态。 4.数据源和数据接收器 Flink支持从各种数据源(例如Kafka、HDFS和本地文件系统)读取数据,并将处理后的数据写入各种数据接收器(例如Kafka、HDFS和数据库)。Flink还支持自定义数据源和数据接收器,以便与各种数据存储和处理系统集成。 5.任务调度和执行 Flink使用分布式任务调度器将作业分配给集群中的各个计算节点,并在这些节点上执行作业。Flink的任务调度器可以动态调整作业的并行度和资源分配,以实现更高的性能和资源利用率。 总之,Flink工作原理和机制是通过结合流处理和批处理、状态管理、数据源和数据接收器以及任务调度和执行等多个方面来实现的,这使得Flink成为一个高效、灵活和可扩展的流处理引擎。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值