flink流作业中的大状态恢复

5kgi1eie  于 2021-06-21  发布在  Flink
关注(0)|答案(0)|浏览(269)

我们有一个在aws emr上运行hadoop和yarn的集群,每个集群有一个核心和一个主节点,每个核心和主节点都有4个vcore、32 gb内存和32 gb磁盘。我们只有一个长时间运行的Yarn应用程序,其中只有一个或两个长时间运行的flink应用程序,每个应用程序的并行度为1。检查点的间隔为10分钟,间隔至少为5分钟。我们使用eventtime,窗口为10分钟,水印持续时间为15秒。状态通过fsstatebackend存储在s3中,并启用异步快照。也只启用了一次检查点。
我们为所有操作符设置了uuid,但没有为yarn设置ha,也没有为操作符设置显式的max parallelism。
当前,当从检查点(3gb)还原时,处理在窗口处保持,直到 org.apache.flink.util.FlinkException: The assigned slot <container_id> was removed 在下一个检查点期间抛出错误。我已经看到,除了具有最大状态的操作符(这是直接在窗口化之后的processfunction)之外,其他所有操作符都完成了检查点。
我知道有人强烈建议使用rocksdb进行生产,但对于一个很可能不会超过50gb的州来说,这是强制性的吗?
从哪里开始解决这个问题最好?平行度?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题