本文隶属于专栏《董工的1000个大数据技术体系》摘要,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!
目录
十四、Flink的Slot和parallelism有什么区别?
前言
作为大数据领域炙手可热的大数据组件,Flink作为大数据行业跳槽必问的组件,整理一些Flink相关的面试题供大家参考,有些题言简意赅即可,大多数的博客冗余一堆的知识点,看完要好久,我想帮大家提炼总结出核心的点,以帮助大家临阵磨枪,短时间掌握,当你把知识提炼出来,你会发现你的知识进步了,当你把简单提炼的知识再用自己的语言详细的说出来,那你就成为很厉害的人了,希望帮助大家收获到自己满意的offer。
一、SparkStreaming和Flink的区别是什么?
1、Flink 是实时处理引擎,基于事件驱动。而 Spark Streaming 是微批(Micro-Batch)的模型。(根本区别,一定要说出来)
2、时间机制:Spark Streaming只支持处理时间。 Flink支持处理时间、事件时间、注入时间。同时也支持watermark来处理滞后数据。
3、容错机制:Spark Streaming 通过checkpoint实现数据不丢失,但无法做到恰好一次处理语义。Flink 则使用两阶段提交协议和checkpoint实现精准一次处理,容错性好
区别相对比较多,具体不一一介绍,只要说出来其代表性的即可
二、Flink的编程模型?
- Source数据源输入
- Tranformation数据转换
- Sink数据输出
三、Flink中集群有哪些角色?各个角色有什么作用?
jobmanager: 管理集群master的角色,负责资源调度和资源管理,管理taskManager,协调checkpoint,故障恢复
taskManager: 实际执行计算,与TaskManager状态传递
client(客户端): 负责与jobManager进行交互把任务提交到集群
四、Flink如何设置并行度
系统层面(flink客户端的配置yml文件中设置)
客户端层面(提交flink run -p的时候设置)
执行环境层面(构建Flink环境时getExecutionEnvironment.setParallelism(1)设置)
算子层面(算子.setParallelism(3),实际算子时设置)
优先级设置: 算子层面>执行环境层面>客户端层面>系统层面
(实际业务中通常设置和kafka分区数一样或者kafka分区倍数的并行度)
五、Flink中有没有重启策略?
故障延迟重启策略
故障率重启策略
没有重启策略
Fallback重启策略
如果没有启用 checkpointing,则使用无重启 (no restart) 策略。如果启用了 checkpointing,但没有配置重启策略,则使用固定间隔 (fixed-delay) 策略
重启策略可以在flink-conf.yaml中配置&