栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Flink状态后端配置(设置State Backend)

Flink状态后端配置(设置State Backend)

Flink提供不同的状态后端(state backends)来区分状态的存储方式和存储位置。flink状态可以存储在java堆内存内或者内存之外。通过状态后端的设置,flink允许应用保持大容量的状态。开发者可以在不改变应用逻辑的情况下设置状态后端。

默认情况下,flink的状态会保存在taskmanager的内存中,而checkpoint会保存在jobManager的内存中。

flink提供三种开箱即用的State Backend:

  • MemoryStateBackend
  • FsStateBackend
  • RocksDBStateBackend

如果没有配置,则默认使用MemoryStateBackend。

   FsStateBackend通过配置文件系统路径(type, address, path)来进行设置,FsStateBackend将动态数据保存在taskmanger的内存中,通过checkpoint机制,将状态快照写入配置好的文件系统或目录中。最小元数据保存jobManager的内存中,另外FsStateBackend通过配置一个fileStateThreshold阈值,小于该值时state存储到metadata中而非文件中。

  FsStateBackend默认通过配置来使用异步快照(asynchronous snapshots)避免阻塞管道(blocking pipelines),当然也可以通过FsStateBackend的构造函数配置进行关闭。

但是当作业任务比较大的时候,默认使用JobManager保存会使任务失败,报错:state.backend.size is larger that......

意思就是状态后端的大小太大了,无法保存在JobManger中,这时我们可以更换为hdfs.

步骤如下:将flink-conf.yaml文件中加入以下两行:

state.backend: filesystem
state.backend.fs.checkpointdir: hdfs://master:9000/flink-checkpoints

其中master为你hadoop namenode的ip地址或者主机名。之后在所有节点同步flink-conf.yaml,并且启动Flink即可。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/652449.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号