- 1.Flink 的并行度了解吗?Flink 的并行度设置是怎样的?
- 2.Flink 的 Slot 和 parallelism 有什么区别
- 3.link 有没有重启策略?说说有哪几种?
- 4.用过 Flink 中的分布式缓存吗?如何使用?
- 5.说说 Flink 中的广播变量,使用时需要注意什么
- 6.Flink 中的窗口
- 7.说说 Flink 中的状态存储
- 8.Flink 中的时间
- 9.watermark
Flink 中的任务被分为多个并行任务来执行,其中每个并行的实例处理一部分数据。这些并行实例的数量被称为并行度。我们在实际生产环境中可以从四个不同层面设置并行度:
*** 作算子层面(Operator Level)
执行环境层面(Execution Environment Level)
客户端层面(Client Level)
系统层面(System Level)
需要注意的优先级:算子层面>环境层面>客户端层面>系统层面。
slot 是指 taskmanager 的并发执行能力,假设我们将 taskmanager.numberOfTaskSlots 配置为 3 那么每一个 taskmanager 中分配 3 个 TaskSlot, 3 个 taskmanager 一共有 9 个TaskSlot。
parallelism 是指 taskmanager 实际使用的并发能力。假设我们把 parallelism.default 设置为 1,那么 9 个 TaskSlot 只能用 1 个,有 8 个空闲。
3.link 有没有重启策略?说说有哪几种?固定延迟重启策略(Fixed Delay Restart Strategy)
故障率重启策略(Failure Rate Restart Strategy)
没有重启策略(No Restart Strategy)
Fallback 重启策略(Fallback Restart Strategy
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()5.说说 Flink 中的广播变量,使用时需要注意什么
我们知道 Flink 是并行的,计算过程可能不在一个 Slot 中进行,那么有一种情况即:
当我们需要访问同一份数据。那么 Flink 中的广播变量就是为了解决这种情况。我们可以把广播变量理解为是一个公共的共享变量,我们可以把一个 dataset 数据集广播出去,然后不同的 task 在节点上都能够获取到,这个数据在每个节点上只会存在一份。
6.Flink 中的窗口
Flink 支持两种划分窗口的方式,按照 time 和 count。
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)
1.时间窗口
滚动,滑动,会话
2.计数窗口
滑动,滚动
Flink 提供了三种状态存储方式:MemoryStateBackend、FsStateBackend、RocksDBStateBackend。择的状态存储策略不同,会影响状态持久化如何和 checkpoint 交互。
8.Flink 中的时间时间语义:
事件时间,摄入时间,处理时间
Event Time, Ingestion Time, Processing Time
时间语义更关心事件创建时间Event Time可以从日志数据的时间戳中获取
水印
是一种衡量EventTime进展的机制,可以设置延迟触发。用来解决乱序情况,和window一起使用。
本质是一个时间戳,用来和window一起处理乱序事件的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)