Flink面试题

1.flink处理迟到数据

(1)watermark

AssignerWithPeriodicWatermarks

当flink基于eventtime的时间窗口处理数据时,必须确定所有该时间窗口内的数据全都进入之后,才会开始处理数据,由于数据可能是乱序的,在watermark里面有个时间戳,flink会使用watermark标记所有小于该时间戳的消息都已流入,当操作符处理到WaterMark时,它对所有小于该WaterMark时间戳的时间窗口的数据进行处理并发送到下一个操作符节点,然后也将WaterMark发送到下一个操作符节点

(2)允许窗口处理迟到数据

对于窗口计算,如果水位线已经到了窗口结束时间,默认窗口就会关闭,那么迟到数据就要被丢弃,因此可以设置延迟时间,允许继续处理迟到数据的。默认情况下延迟时间为0,若设置延迟时间后,watermark超过窗口结束时间戳,但未超过 延迟后的时间戳,迟到数据仍然可添加到窗口中,触发计算。
中间过程可视为,在水位线到达窗口结束时间时,先快速地输出一个近似正确的计算结果;然后保持窗口继续等到延迟数据,每来一条数据,窗口就会再次计算,并将更新后的结果输出。逐步修正计算结果,最终得到准确的统计值。

(3)将迟到数据放入侧输出流

窗口后关闭,仍然有迟到数据,则用侧输出流来收集关窗后的迟到数据,保证数据不丢失。因为窗口已经真正关闭,只能将之前的窗口计算结果保存下来,然后获取侧输出流中的迟到数据,判断数据所属的窗口,手动对结果进行合并更新

2.Task subtask 区别

在flink web ui 上,点开webui,会有很多的块,块和块之间是箭头相连的,这一个块就是一个task,这个块里面包含了多个操作算子,比如map,filter,task会把这多个操作算子连成一个chain,前提并行度相同并且没有重分区

而subtask就是点开task后里面的并行度,比如有3个并行度,就有3个subtask,每个subtask会以一个独立的线程去运行

3.webui

flink webui上有哪些东西

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值