Flink面试题(1-5)

1、什么是Apache Flink?
2、Flink与Hadoop和Spark有何不同?
3、Flink的核心概念是什么?
4、Flink中的数据流(DataStream)和数据集(DataSet)有什么区别?
5、Flink的任务调度器是什么?

1、Apache Flink是一个开源的分布式流处理框架,可以进行流式数据处理、批处理和图处理,支持高吞吐、低延迟的实时数据流处理。

2、与Hadoop和Spark不同,Flink是一个专注于流处理的框架,而Hadoop和Spark更侧重于批处理和数据仓库。

3、Flink的核心概念包括:

流(Stream):流是指在连续时间上到达的数据记录,可以是无限的。
窗口(Window):窗口是将无限流分成有限的数据集,可以基于时间或者数据数量等条件来定义。
事件时间(Event time):事件时间是事件真正发生的时间,而不是事件到达处理系统的时间。
状态(State):状态是指处理数据过程中需要保持的信息,如累计计数器等。
操作符(Operator):操作符是对数据流的转换操作,包括map、filter、join等。
检查点(Checkpoint):检查点是Flink的一种容错机制,可以将当前系统的状态保存下来,以便出现故障时可以恢复。
4、Flink中的数据流(DataStream)是指一个包含无限元素的数据流,数据是按照一定的顺序产生的,而数据集(DataSet)则是一组有限的元素的集合,数据集可以在有限时间内完成处理。

5、Flink的任务调度器是JobManager,它是整个Flink集群的控制中心,负责任务的提交、调度和执行,同时也负责协调所有TaskManager之间的通信。TaskManager是执行任务的工作节点,负责具体的任务执行和数据处理。