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

29次阅读

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

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

1. 用过 Flink 中的分布式缓存吗?如何应用?**

Flink 实现的分布式缓存和 Hadoop 有殊途同归之妙。目标是在本地读取文件,并把他放在 taskmanager 节点中,避免 task 反复拉取。

val env = ExecutionEnvironment.getExecutionEnvironment

// register a file from HDFS

env.registerCachedFile(“hdfs:///path/to/your/file”, “hdfsFile”)

// register a local executable file (script, executable, …)

env.registerCachedFile(“file:///path/to/exec/file”, “localExecFile”, true)

// define your program and execute

… val input: DataSet[String] = … val result: DataSet[Integer] = input.map(new MyMapper())

… env.execute()

2. 说说 Flink 中的播送变量,应用时须要留神什么?**

咱们晓得 Flink 是并行的,计算过程可能不在一个 Slot 中进行,那么有一种状况即:当咱们须要拜访同一份数据。

那么 Flink 中的播送变量就是为了解决这种状况。咱们能够把播送变量了解为是一个公共的共享变量,咱们能够把一个 dataset 数据集播送进来,而后不同的 task 在节点上都可能获取到,这个数据在每个节点上只会存在一份。

3. 说说 Flink 中的窗口?

Flink 反对两种划分窗口的形式,依照 time 和 count。如果依据工夫划分窗口,那么它就是一个 time-window 如果依据数据划分窗口,那么它就是一个 count-window。flink 反对窗口的两个重要属性(size 和 interval)如果 size=interval, 那么就会造成 tumbling-window(无重叠数据) 如果 size>interval, 那么就会造成 sliding-window(有重

叠数据 ) 如果 size< interval, 那么这种窗口将会失落数据。比方每 5 秒钟,统计过来 3 秒的通过路口汽车的数据,将会漏掉 2 秒钟的数据。通过组合能够得出四种根本窗口:

time-tumbling-window 无重叠数据的工夫窗口,设置形式举例:timeWindow(Time.seconds(5))

time-sliding-window 有重叠数据的工夫窗口,设置形式举例:timeWindow(Time.seconds(5), Time.seconds(3))

count-tumbling-window 无重叠数据的数量窗口,设置形式举例:countWindow(5)

count-sliding-window 有重叠数据的数量窗口,设置形式举例:countWindow(5,3)

4. 说说 Flink 中的状态存储?**

Flink 在做计算的过程中常常须要存储中间状态,来防止数据失落和状态复原。抉择的状态存储策略不同,会影响状态长久化如何和 checkpoint 交互。Flink 提供了三种状态存储形式:MemoryStateBackend、FsStateBackend、RocksDBStateBackend。

5.Flink 中的工夫有哪几类 **

Flink 中的工夫和其余流式计算零碎的工夫一样分为三类:事件工夫,摄入工夫,解决工夫三种。

如果以 EventTime 为基准来定义工夫窗口将造成 EventTimeWindow, 要求音讯自身就应该携带 EventTime。

如果以 IngesingtTime 为基准来定义工夫窗口将造成 IngestingTimeWindow, 以 source 的 systemTime 为准。

如果以 ProcessingTime 基准来定义工夫窗口将造成 ProcessingTimeWindow,以 operator 的 systemTime 为准。

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

正文完
 0