大数据高级开发面试题总结及答案汇总之[Flink系列](持续更新中)

目录

2.flink于spark streaming对比

3.flink并行度了解吗?flink的并行度是怎样的?

4.说一下flink 提交流程、组件通信、调度机制、任务执行、内存模型、JobManager的作用

5.flink的编程模型是什么?

6.flink的keyby怎么实现的分区?分区、分组的区别是什么?

7.Flink的key By和Spark 的 group by有什么区别?

7.flink的join实现原理?join不上的怎么办?

8.flink双流join的解决方案和优化方案

9.flink怎么处理乱序数据的?

10.watermark是数据吗?怎么生成的?怎么传递的?怎么触发计算的?

11.watermark生成方式

12.说说Flink中的窗口(分类、生命周期、触发、划分)

13.一个窗口,现在只取第一帧和最后一帧,怎么做?

14.说一下Flink的状态编程

15.Flink是如何管理kafka的offset,使用什么类型的状态保存offset?

16.如何使用托管的Keyed State

17.Flink状态后端有哪些?如何选择状态后端存储?

18.Flink Checkpoint和Savepoint的区别及其配置使用

19.flink分布式快照原理

20.Exactly-once的保证

21.checkpoint参数怎么设置

22.Flink checkpoint的超时问题如何解决?

23.作业挂掉了,恢复上一个Checkpoint,用什么命令?

24.什么是Flink的非barrier对齐,如何实现?

25.介绍一下Flink的CEP机制

26.Flink CEP适用场景

27.Flink CEP编程中当状态没有到达的时候会将数据保存在哪里?

28.Flink 计算资源的调度是如何实现的?

29.Flink Slot和Parallelism

30.Operator Chain了解吗?

31.Flink的运行必须依赖Hadoop吗?

32.Flink SQL的工作机制?

33.Flink开窗函数有哪些?

34.Flink SQL 怎么对SQL语句进行优化?

35.Flink调优(资源配置、反压处理、数据倾斜、flink sql调优)

36.Flink的监控怎么做?监控的是什么?如何有效处理数据积压

37.Flink里异步IO的代码具体是怎么写的?


flink是以数据流为核心基础,构建出的高性能、高吞吐、低延迟、高可用的流批一体的分布式大数据计算引擎。Flink能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。

2.flink于spark streaming对比

1.设计理念不同,flink的设计思想是以流为核心,批是流的特例,是以事件驱动的。Spark Streaming是将源源不断的流式数据当成一组微批集合,以批为核心

2.架构不同Spark Streaming在运行时的主要角色包括:Master

3.flink并行度了解吗?flink的并行度是怎样的?

4.说一下flink 提交流程、组件通信、调度机制、任务执行、内存模型、JobManager的作用

5.flink的编程模型是什么?

6.flink的keyby怎么实现的分区?分区、分组的区别是什么?

7.Flink的key By和Spark 的 group by有什么区别?

7.flink的join实现原理?join不上的怎么办?

8.flink双流join的解决方案和优化方案

9.flink怎么处理乱序数据的?

10.watermark是数据吗?怎么生成的?怎么传递的?怎么触发计算的?

11.watermark生成方式

12.说说Flink中的窗口(分类、生命周期、触发、划分)

13.一个窗口,现在只取第一帧和最后一帧,怎么做?

14.说一下Flink的状态编程

1.首先先说一下无状态计算和有状态计算。

对于流计算而言,事件持续不断地产生,如果每次计算都是相互独立的就是五状态计算。

如果计算需要依赖之前或者后续的事件,则是有状态计算。

2.在计算层面

就是Flink Job的Task在运行过程中,产生的一些状态数据,这些状态数据辅助Task执行某些有状态计算。所以保存和管理每个Task的状态是非常重要的一种机制

3,如果要做到比较好的State管理,需要考虑的问题有:

  • 状态数据的存储和访问
  • 状态数据的备份和恢复
  • 状态数据的划分和动态扩容
  • 状态数据的清理

4. State是实现有状态计算下的Exactly-Once的基础

15.Flink是如何管理kafka的offset,使用什么类型的状态保存offset?

16.如何使用托管的Keyed State

17.Flink状态后端有哪些?如何选择状态后端存储?

State按照是否有Key划分为KeyedState和OperatorState两种

KeyedState

  • ValueState
  • ListState
  • MapState
  • ReducingState
  • AggregationState
  • FoldingState

OperatorState

  • ListState

Keyed State是和具体的Key相绑定的,只能在KeyedStream上的函数和算子中使用,KeyedStream流上每个Key对应一个State对象。

Operator State跟特定算子的一个实例绑定,整个算子只对应一个State,例如Kafka Connector中,每一个并行的Kafka Consumer都在Operator State中维护当前Consumer订阅的partition和offset。

按照由Flink管理还是用户自行管理,状态可以分为原始状态(Raw State)和托管状态(Managed State),一般情况下,在实现自定义算子时才会使用到原始状态

运行时,在RichFunction和ProcessFunction中,通过RuntimeContext上下文对象,使用StateDescriptor从状态后端(StatebBackend)中获取实际的State实例。

18.Flink Checkpoint和Savepoint的区别及其配置使用

19.flink分布式快照原理

20.Exactly-once的保证

21.checkpoint参数怎么设置

22.Flink checkpoint的超时问题如何解决?

23.作业挂掉了,恢复上一个Checkpoint,用什么命令?

24.什么是Flink的非barrier对齐,如何实现?

25.介绍一下Flink的CEP机制

26.Flink CEP适用场景

27.Flink CEP编程中当状态没有到达的时候会将数据保存在哪里?

28.Flink 计算资源的调度是如何实现的?

29.Flink Slot和Parallelism

30.Operator Chain了解吗?

31.Flink的运行必须依赖Hadoop吗?

32.Flink SQL的工作机制?

33.Flink开窗函数有哪些?

34.Flink SQL 怎么对SQL语句进行优化?

35.Flink调优(资源配置、反压处理、数据倾斜、flink sql调优)

36.Flink的监控怎么做?监控的是什么?如何有效处理数据积压

37.Flink里异步IO的代码具体是怎么写的?

38.Flink task故障失败恢复

39.Flink yarn-session和per-job的区别

40.Flink TaskManager

41.Flink Task

Task是Flink作业的子任务,由TaskManager直接负责管理调度,为StreamTask执行业务逻辑的提供基础的组件,如内存管理器(MemoryManager)、IO管理器(IOManager)、输入网关、文件缓存等。

StreamTask的构建: 在最开始一个job提交到Flink 集群运行的时候,在client构建StreamGraph(顶点是StreamNode,边是StreamEdge)的时候,会根据用户调用的算子生成的Trasnformation为StreamGraph生成StreamNode,在生成StreamNode的时候,会通过OperatorFactory执行判断,如果该StreamOperator是StreamSource的话,就会指定该StreamTask的invokableClass为SourceStreamTask,否则为OneInputStreamTask,TwoInputStreamTask等。

StreamTask的类型与算子的类型一一对应

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值