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

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上,理解更多请点我头像或到我的主页去取得,谢谢**