1.延迟数据(allowedLateness)
答案:延长窗口销毁
窗口watermark和allowedLateness之后依然迟到的流数据,也是通过.sideOutputLateData(outputTag)和result.getSideOutput(outputTag)的侧输出流方式输出的,拿到这一部分数据后用户可以自己处理。
2.什么是barrier不对齐?
答案:当还有其他输入流的barrier还没有到达时,会把已到达的barrier之后的数据1、2、3搁置在缓冲区,等待其他流的barrier到达后才能处理。
barrier不对齐就是指当还有其他流的barrier还没到达时,为了不影响性能,也不用理会,直接处理barrier之后的数据。等到所有流的barrier的都到达后,就可以对该Operator做CheckPoint了。
3.为什么要进行barrier对齐?不对齐到底行不行?
答案:Exactly Once时必须barrier对齐,如果barrier不对齐就变成了At Least Once;
CheckPoint的目的就是为了保存快照,如果不对齐,那么在第n次快照之前,已经处理了一些n快照之后对应的offset之后的数据,当程序从n次恢复任务时,n次快照对应的offset之后的数据还会被处理一次,所以就出现了重复消费。如果听不懂没关系,后面有案例让您懂。
4.相关参数配置
答案:
5.Flink是如何保证Exactly-once语义的?
答案:
1)事务写(有延迟):两阶段提交(Two-Phase-Commit,2PC),预写日志(Write-Ahead-Log,WAL)
两阶段提交:如果外部系统自身就支持事务(比如Kafka),可以使用2PC方式,提供百分百端到端的Exactly-Once。
WAL:WAL方式通用性更强,适合几乎所有外部系统,但也不能提供百分百端到端的Exactly-Once;
2)幂等性
多次写入相同数据,结果是一致的的(redis,hbase等)
更多关于大数据培训的问题,欢迎咨询千锋教育在线名师,如果想要了解我们的师资、课程、项目实操的话可以点击咨询课程顾问,获取试听资格来试听我们的课程,在线零距离接触千锋教育大咖名师,让你轻松从入门到精通。