其他
【大数据面试题】Flink企业级面试题60连击
1、Flink如何保证精确一次性消费
2、flink和spark区别
3、Flink的状态可以用来做什么?
checkpoint的数据恢复
逻辑计算
4、Flink的waterMark机制,Flink watermark传递机制
5、Flink的时间语义
6、Flink window join
7、flink窗口函数有哪些
8、keyedProcessFunction 是如何工作的。假如是event time的话
9、flink是怎么处理离线数据的例如和离线数据的关联?
10、flink支持的数据类型
11、Flink出现数据倾斜怎么办
12、flink 维表关联怎么做的
13、Flink checkpoint的超时问题 如何解决。
14、flinkTopN与离线的TopN的区别
15、sparkstreaming 和flink 里checkpoint的区别
16、简单介绍一下cep状态编程
17、 Flink cep连续事件的可选项有什么
18、如何通过flink的CEP来实现支付延迟提醒
19、Flink cep 你用过哪些业务场景
20、cep底层如何工作
21、cep怎么老化
22、cep性能调优
23、Flink的背压,介绍一下Flink的反压,你们是如何监控和发现的呢。
24、Flink的CBO,逻辑执行计划和物理执行计划
25、Flink中数据聚合,不使用窗口怎么实现聚合
valueState 用于保存单个值
ListState 用于保存list元素
MapState 用于保存一组键值对
ReducingState 提供了和ListState相同的方法,返回一个ReducingFunction聚合后的值。
AggregatingState和 ReducingState类似,返回一个AggregatingState内部聚合后的值
26、Flink中state有哪几种存储方式
27、Flink 异常数据怎么处理
28、Flink 监控你们怎么做的
29、Flink 有数据丢失的可能吗
At Most Once 最多消费一次 发生故障有可能丢失
At Least Once 最少一次 发生故障有可能重复
Exactly-Once 精确一次 如果产生故障,也能保证数据不丢失不重复。
30、Flink interval join 你能简单的写一写吗
DataStream<T> keyed2 = ds2.keyBy(o -> o.getString("key"))
//右边时间戳-5s<=左边流时间戳<=右边时间戳-1s
keyed1.intervalJoin(keyed2).between(Time.milliseconds(-5), Time.milliseconds(5))
31、Flink 提交的时候 并行度如何制定,以及资源如何配置
32、Flink的boardcast join 的原理是什么
33、flink的source端断了,比如kafka出故障,没有数据发过来,怎么处理?
34、flink有什么常用的流的API?
35、flink的水位线,你了解吗,能简单介绍一下吗
36、Flink怎么维护Checkpoint?在HDFS上存储的话会有小文件吗
37、Spark和Flink的序列化,有什么区别吗?
38、Flink是怎么处理迟到数据的?但是实际开发中不能有数据迟到,怎么做?
39、画出flink执行时的流程图。
40、Flink分区分配策略
41、Flink关闭后状态端数据恢复得慢怎么办?
42、了解flink的savepoint吗?讲一下savepoint和checkpoint的不同和各有什么优势
43、flink的状态后端机制
44、flink中滑动窗口和滚动窗口的区别,实际应用的窗口是哪种?用的是窗口长度和滑动步长是多少?
45、用flink能替代spark的批处理功能吗
46、flink计算的UV你们是如何设置状态后端保存数据
47、sparkstreaming和flink在执行任务上有啥区别,不是简单的流处理和微批,sparkstreaming提交任务是分解成stage,flink是转换graph,有啥区别?
48、flink把streamgraph转化成jobGraph是在哪个阶段?
49、Flink中的watermark除了处理乱序数据还有其他作用吗?
50、flink你一般设置水位线设置多少
52、Flink任务提交流程
53、Flink技术架构图
54、flink如何实现在指定时间进行计算。
55、手写Flink topN
57、Flink的Join算子有哪些
58、Flink1.10 有什么新特性吗?
流和批处理内存占用的配置模型不同
流处理中的 RocksDB state backend 需要依赖用户进行复杂的配置
写入静态分区
INSERT { INTO | OVERWRITE } TABLE tablename1 [PARTITION (partcol1=val1, partcol2=val2 ...)] select_statement1 FROM from_statement;
写入动态分区
INSERT { INTO | OVERWRITE } TABLE tablename1 select_statement1 FROM from_statement;
对分区表的全面支持,使得用户在读取数据时能够受益于分区剪枝,减少了需要扫描的数据量,从而大幅提升了这些操作的性能。
投影下推:Flink 采用了投影下推技术,通过在扫描表时忽略不必要的域,最小化 Flink 和 Hive 表之间的数据传输量。这一优化在表的列数较多时尤为有效。
LIMIT 下推:对于包含 LIMIT 语句的查询,Flink 在所有可能的地方限制返回的数据条数,以降低通过网络传输的数据量。
读取数据时的 ORC 向量化:为了提高读取 ORC 文件的性能,对于 Hive 2.0.0 及以上版本以及非复合数据类型的列,Flink 现在默认使用原生的 ORC 向量化读取器。
59、Flink的重启策略
60、Flink什么时候用aggregate()或者process()
61、Flink优化 你了解多少
62、Flink内存溢出怎么办
63、说说Flink中的keyState包含哪些数据结构
64、Flink shardGroup的概念
欢迎点赞+收藏+转发朋友圈素质三连
文章不错?点个【在看】吧! 👇