天天看点

Flink 状态与容错 ( state 和 Fault Tolerance)Flink 状态与容错

Flink 状态与容错

状态性的函数和操作通过处理单个(元素/事件)存储数据,使任何类型的state构建更复杂的操作。

例如:

  • 当应用程序针对特定事件模式进行搜索的时候,state将会存储到目前为止的一些列事件。
  • 当每 分钟/小时/天 聚合事件的时候,state会持有所有等待聚合的数据。
  • 当在一连串的数据流上训练机器学习模型时,state持有当前版本的模型参数。
  • 当历史数据需要管理的时候,state允许高效的访问过去的数据

flink可以使用checkpoints对statue进行容错管理,并且允许对流应用程序执行savepoint。

了解到应用程序的state可以重新调节,意味着flink负责重新分配并行实例的状态。

Flink的queryable state允许你在flink运行时从外部接收state数据。

在工作的时候使用state,建议阅读Flink's state backends。flink提供了不同的state backends 来指定如何存储和把state数据存储在哪。State可以存在于java堆中。依赖于你的state backends,flink还可以管理应用程序的状态,意味着flink可以通过内存管理(必要时可以溢出到磁盘)来运行应用保存非常大的state。state backends 可以在不改变应用程序的逻辑的情况下进行配置。

后面会有对应的专题文章解释下面的内容

  • working with state:在flink应用中展示了如何使用state,并解释了不同类型的状态
  • checkpointing:描述了如何启动和配置容错的检查点
  • queryable state:解释如何在运行时访问flink以外的state
  • custom serialization for managed state:讨论了state的自定义序列化逻辑和它的升级
Flink 状态与容错 ( state 和 Fault Tolerance)Flink 状态与容错

继续阅读