33.Flink重启策略

[TOC]前言​ Flink支持不同的重启策略,这些重启策略控制着job失败后如何重启。集群可以通过默认的重启策略来重启,这个默认的重启策略通常在未指定重启策略的情况下使用,而如果Job提交的时候指定了重启策略,这个重启策略就会覆盖掉集群的默认重启策略。一、概述Flink默认重启策略可以通过配置文件flink-conf.yaml来进行配置,通过配置参数restart-strategy来指定相应的重启策略。如果未启用检查点,则使用“无重启”策略。如果激活了检查点但未配置重启策略,则使用“固定延迟策略”:restart-strategy.fixed-delay.attempts...

大数据 2022-02-14 AM 1260℃ 2条

32.Flink Checkpoint配置

前言​ Flink 中的每个方法或算子都能够是有状态的。状态化的方法在处理单个元素/事件的时候存储数据,让状态成为使各个类型的算子更加精细的重要部分。为了让状态容错,Flink 需要为状态添加 checkpoint(检查点)。Checkpoint 使得 Flink 能够恢复状态和在流中的位置,从而向应用提供和无故障执行时一样的语义。一、开启与配置 Checkpoint默认情况下 checkpoint 是禁用的。通过调用 StreamExecutionEnvironment 的 enableCheckpointing(n) 来启用 checkpoint,里面的 n 是进行 c...

大数据 2022-02-13 PM 2157℃ 0条

31.Flink容错机制介绍

[TOC]前言​ 作为分布式系统,尤其是对延迟敏感的实时计算引擎,Apache Flink 需要有强大的容错机制,以确保在出现机器故障或网络分区等不可预知的问题时可以快速自动恢复并依旧能产生准确的计算结果。​ 事实上,Flink 有一套先进的快照机制来持久化作业状态,确保中间数据不会丢失,这通常需要和错误恢复机制配合使用。​ 在遇到错误时,Flink 作业会根据重启策略自动重启并从最近一个成功的快照(checkpoint)恢复状态。一、容错机制​ 容错机制对分布式流式数据持续性的产生快照(snapshot)并存储。对于持有小型数据状...

大数据 2022-02-13 PM 957℃ 0条

30.Flink状态一致性

[TOC]前言当在分布式系统中引入状态时,自然也引入了一致性问题。状态一致性的本质就是成功处理故障并恢复前后的结果的正确性级别。也就是说在成功处理故障并恢复之后得到的结果,与没有发生任何故障时得到的结果相比,前者到底有多正确?举例来说,假设要对最近一小时登录的用户计数。在系统经历故障之后,计数结果是多少?如果有偏差,是有漏掉的计数(最多一次)还是重复计数(最少一次)?一、一致性级别在流处理中,一致性可以分为三个级别:at-most-once(最多一次):当任务故障时,最简单的做法是什么都不干,既不恢复丢失的状态,也不重播丢失的数据。At-most-once语义的含义是最多处理一次事件。a...

大数据 2022-02-13 PM 870℃ 0条

29.Flink状态后端(State Backends)

[TOC]一、概念每传入一条数据,有状态的算子任务都会读取和更新状态;由于有效的状态访问对于处理数据的低延迟至关重要,因此每个并行任务都会在本地维护其状态,以确保快速的状态访问;状态的存储、访问以及维护,由一个可插入的组件决定,这个组件就叫做状态后端(state backend);状态后端主要负责两件事:本地的状态管理,以及将检查点(checkpoint)状态写入远程存储。总结:State Backends 的作用就是用来维护State的。二、功能2.1 本地状态管理(Local State Management)State Management的主要任务是确保状态的更新和访问。类似于关...

大数据 2022-02-12 PM 1226℃ 0条

28.Flink ProcessFunction应用示例

[TOC]前言版本:Flink 1.10.1Scala 1.12数据准备:sensor_1,1547718199,35.8 sensor_6,1547718201,15.4 sensor_7,1547718202,6.7 sensor_10,1547718205,38.1 sensor_1,1547718206,32 sensor_1,1547718208,36.2 sensor_1,1547718210,29.7 sensor_1,1547718213,30.9 sensor_1,1547718215,32.9 sensor_1,1547718218,33.6 sensor_1,154...

大数据 2022-01-30 AM 903℃ 0条

27.【转载】Flink ProcessFunction API全解析及实战

[TOC]一、Process Function我们之前学习的转换算子是无法访问事件的时间戳信息和水位线信息的,例如MapFunction这样的map转换算子就无法访问时间戳或者当前事件的事件时间。而这在一些应用场景下,极为重要。基于此,DataStream API提供了一系列的Low-Level转换算子,可以访问时间戳、watermark以及注册定时事件。还可以输出特定的一些事件,例如超时事件等。Process Function用来构建事件驱动的应用以及实现自定义的业务逻辑,Flink提供了8个ProcessFunction:ProcessFunctionKeyedProcessFunc...

大数据 2022-01-29 PM 1408℃ 0条

26.Flink状态编程操作示例

[TOC]一、键控状态的使用import java.util import com.lilinchao.flink.window.SensorReading import org.apache.flink.api.common.functions.{ReduceFunction, RichReduceFunction} import org.apache.flink.api.common.state._ import org.apache.flink.configuration.Configuration import org.apache.flink.streaming.api.sc...

大数据 2022-01-27 PM 994℃ 0条

25.Flink状态管理介绍

[TOC]前言​ 在传统的批处理中,数据是划分为块分片去完成的,然后每一个Task去处理一个分片。当分片执行完成后,把输出聚合起来就是最终的结果。在这个过程当中,对于state的需求还是比较小的。 对于流计算而言,对State有非常高的要求,因为在流系统中输入是一个无限制的流,会运行很长一段时间,甚至运行几天或者几个月都不会停机。在这个过程当中,就需要将状态数据很好的管理起来。 一、无状态流和有状态流区别流式计算分为无状态和有状态两种情况:无状态无状态的计算观察每个独立事件,并根据最后一个事件输出结果。例如,流处理应用程序从传感器接收温度读数,并在温度超过90度时发...

大数据 2022-01-26 PM 1017℃ 0条

24.EvnetTime在window中的使用

前言版本:Flink 1.10.1示例数据0001,1550116440000 0001,1550116441000 0001,1550116442000 0001,1550116443000 0001,1550116444000 0001,1550116445000 0001,1550116446000 0001,1550116450000 0001,1550116451000 0001,1550116452000 0001,1550116453000 0001,1550116456000 0001,1550116460000 0001,1550116461000 0001,15501...

大数据 2022-01-25 PM 763℃ 0条