关于后端:面试题百日百刷flink篇五

2次阅读

共计 1217 个字符,预计需要花费 4 分钟才能阅读完成。

锁屏面试题百日百刷,每个工作日保持更新面试题。 请看到最初就能获取你想要的, 接下来的是今日的面试题:

1.Flink 中水印是什么概念,起到什么作用?**

Watermark 是 Apache Flink 为了解决 EventTime 窗口计算提出的一种机制, 实质上是一种工夫戳。一般来讲 Watermark 常常和 Window 一起被用来解决乱序事件。

2.Flink Table & SQL 相熟吗?TableEnvironment 这个类有什么作用 **

TableEnvironment 是 Table API 和 SQL 集成的外围概念。这个类次要用来:

在外部 catalog 中注册表

注册内部 catalog

执行 SQL 查问

注册用户定义(标量,表或聚合)函数

将 DataStream 或 DataSet 转换为表

持有对 ExecutionEnvironment 或 StreamExecutionEnvironment 的援用

3.Flink 是如何反对批流一体的?**

本道面试题考查的其实就是一句话:Flink 的开发者认为批处理是流解决的一种非凡状况。批处理是无限的流解决。Flink 应用一个引擎反对了 DataSet API 和 DataStream API。

4.Flink 是如何做到高效的数据交换的?**

在一个 Flink Job 中,数据须要在不同的 task 中进行替换,整个数据交换是有 TaskManager 负责的,TaskManager 的网络组件首先从缓冲 buffer 中收集 records,而后再发送。Records 并不是一个一个被发送的,而是积攒一个批次再发送,batch 技术能够更加高效的利用网络资源。

5.Flink 是如何做容错的?**

Flink 实现容错次要靠弱小的 CheckPoint 机制和 State 机制。Checkpoint 负责定时制作分布式快照、对程序中的状态进行备份;State 用来存储计算过程中的中间状态。

6.Flink 分布式快照的原理是什么?

Flink 的分布式快照是依据 Chandy-Lamport 算法量身定做的。简略来说就是继续创立分布式数据流及其状态的统一快照。

核心思想是在 input source 端插入 barrier,管制 barrier 的同步来实现 snapshot 的备份和 exactly-once 语义。

7.Flink 是如何保障 Exactly-once 语义的?**

Flink 通过实现两阶段提交和状态保留来实现端到端的一致性语义。分为以下几个步骤:

开始事务(beginTransaction)创立一个长期文件夹,来写把数据写入到这个文件夹外面

预提交(preCommit)将内存中缓存的数据写入文件并敞开

正式提交(commit)将之前写完的临时文件放入目标目录下。这代表着最终的数据会有一些提早

停止(abort)如果回滚,删除临时文件

若失败产生在预提交胜利后,正式提交前。能够依据状态来提交预提交的数据,也可删除预提交的数据。

全部内容在 git 上, 理解更多请点我头像或到我的主页去取得,谢谢 **

正文完
 0