![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Flink面试
文章平均质量分 65
Flink相关面试题
我是方小磊
这个作者很懒,什么都没留下…
展开
-
Flink 如何处理乱序数据(watermark + allowLateNess + sideOutPut )
问题背景flink是分布式的流数据处理框架,针对流数据的处理特点,往往是来一条处理一条,但是这种处理方式就比较低效,因此就提出了窗口的概念。在实际的应用过程中,往往需要对过去的一分钟(几分钟)发生的数据做一个聚合处理。窗口的作用为了周期性的获取数据。就是把传入的原始数据流切分成多个buckets,所有计算都在单一的buckets中进行。窗口(window)就是从 Streaming 到 Batch 的一个桥梁。但是聚合类处理带来了新的问题,比如乱序/延迟。即数据并不是按照标准顺序到达的,可能有数据会延原创 2021-05-31 14:25:58 · 846 阅读 · 0 评论 -
Flink 相比传统的 Spark Streaming 有什么区别
主要区别这个问题是一个非常宏观的问题,因为两个框架的不同点非常之多。但是在面试时有非 常重要的一点一定要回答出来:Flink 是标准的实时处理引擎,基于事件驱动。而 Spark Streaming 是微批( Micro-Batch )的模型。下面我们就分几个方面介绍两个框架的主要区别:架构模型:Spark Streaming 在运行时的主要角色包括:Master、Worker、Driver、Executor, Flink 在运行时主要包:Jobmanager、Taskmanager 和 Slot。转载 2021-05-29 15:18:35 · 453 阅读 · 0 评论 -
Flink 集群的角色及其作用
Flink 集群的角色及其作用flink集群一共有三个角色:TaskManager,JobManager,Client1.JobManager 扮演着集群中的管理者 Master 的角色,它是整个集群的协调者,主要作用有如下几点:负责接收 Flink Job,调度job协调checkpointFailover 故障恢复管理 Flink 集群中从节点 TaskManager,与TaskManager通信2.TaskManager 是实际负责执行计算的 Worker,在其上执行 Flink J原创 2021-05-28 10:28:46 · 896 阅读 · 0 评论 -
flink 实现端到端的exactly-once语义
文章目录1. 三种语义介绍2. Exactly-Once实现的三个地方3. 具体实现过程3.1 source阶段3.2 operator阶段3.3 sink阶段4. 两段式提交的具体实现1. 三种语义介绍通常情况下,流式计算系统都会为用户提供数据处理的可靠模式功能,用来表明在实际生产运行中会对数据处理做哪些保障。一般来说,流处理引擎通常为用户的应用程序提供三种数据处理语义:最多一次,至少一次和精确一次。最多一次(At-most-Once):这种语义理解起来很简单,用户的数据只会被处理一次,不管成功还转载 2021-05-26 17:22:07 · 652 阅读 · 0 评论 -
Flink的三种状态后端存储方式
文章目录1. MemoryStateBackend1.1 概念1.2 特点及使用场景2. FsStateBackend2.1 概念2.2 特点及应用场景3. RocksDBStateBackend3.1 概念3.2 特点及应用场景在Flink中提供了StateBackend(状态后端)来存储和管理Checkpoint过程中的状态数据。StateBackend分为三种。1. MemoryStateBackend1.1 概念1.2 特点及使用场景MemoryStateBackend存储有如下特点:原创 2021-05-24 17:58:46 · 3606 阅读 · 0 评论 -
Flink Checkpoint和Savepoints
Checkpoint的概念和作用概念:Checkpoint是Flink实现容错机制最核心的功能,它能够根据配置周期性地基于Stream中各个Operator的状态来生成Snapshot(数据快照),从而将这些状态数据定期持久化存储下来,作用:当Flink程序一旦意外崩溃时,重新运行程序时可以有选择地从这些Snapshot进行恢复,从而修正因为故障带来的程序数据状态中断。总的来说,就是在流数据处理的过程中,定期的去保存某个阶段的数据(称为数据快照),当后续阶段的程序意外崩溃时,可以从之前保存的数据快转载 2021-05-23 15:58:25 · 211 阅读 · 0 评论 -
Flink三种时间语义及应用场景
Flink三种时间语义(1)Event Time:事件发生的时间。(2)Processing Time:事件处理的事件,没有事件时间的情况下,或者对实时性要求超高的情况下。(3)Ingestion Time:事件进入Flink的时间,存在多个 Source Operator 的情况下,每个 Source Operator可以使用自己本地系统时钟指派 Ingestion Time。后续基于时间相关的各种操作,都会使用数据记录中的 Ingestion Time。Event Time事件发生的时间,这是转载 2021-05-22 11:52:35 · 3172 阅读 · 0 评论 -
Flink作业转换-ExecutionGraph(四层执行图)
概述Flink 中的执行图可以分成四层:StreamGraph -> JobGraph -> ExecutionGraph -> 物理执行图。StreamGraph:即根据用户编写的Stream API而生成的最初的作业拓扑图,表示程序的拓扑结构。JobGraph:StreamGraph会经过作业链优化生成JobGraph,提交给 JobManager 的数据结构。主要的优化为,将并行度相同且流传输模式为one-to-one的节点 chain 在一起作为一个节点,这样可以减少数据在转载 2021-05-21 12:35:17 · 1384 阅读 · 0 评论 -
Flink solt和并行执行过程
看这一篇的之前需要了解一下Task和subTask的概念和划分:https://blog.csdn.net/weixin_44844089/article/details/1170350391. slotFlink 中每一个TaskManager都是一个 JVM 进程,JVM允许它可能会在独立的线程上执行一个或多个 subtask(一个task由多个subtask组成)。为了控制一个 worker 能接收多少个 task,worker 通过 task slot 来进行控制(一个 worker 至少有一原创 2021-05-21 11:32:11 · 184 阅读 · 0 评论 -
Flink Task划分策略(任务链优化技术)
https://blog.csdn.net/weixin_43303297/article/details/104963306原创 2021-05-19 16:36:00 · 1711 阅读 · 3 评论 -
Flink架构
Flink架构架构图如下:当 Flink 集群启动后,首先会启动一个 JobManger 和一个或多个的 TaskManager。由 Client 提交任务给 JobManager,JobManager 再调度任务到各个 TaskManager 去执行,然后 TaskManager 将心跳和统计信息汇报给 JobManager。TaskManager 之间以流的形式进行数据的传输。上述三者均为独立的 JVM 进程。Client 为提交 Job 的客户端,可以是运行在任何机器上(与 JobMana转载 2021-05-19 16:34:30 · 123 阅读 · 0 评论