在Apache Flink流作业中还原大状态

时间:2018-12-05 17:11:41

标签: yarn apache-flink flink-streaming

我们有一个在AWS EMR上运行Hadoop和YARN的集群,其中有一个核心和一个主服务器,每个集群有4个vCore,32 GB内存,32 GB磁盘。我们只有一个长期运行的YARN应用程序,而在其中,只有一个或两个长期运行的Flink应用程序,每个应用程序的并行度为1。检查点的间隔为10分钟,间隔至少为5分钟。我们使用EventTime的窗口为10分钟,水印持续时间为15秒。状态通过启用了异步快照的FsStateBackend存储在S3中。也会启用一次精确检查点。

我们为所有运算符设置了UUID,但没有为YARN设置HA,也没有为运算符设置显式的最大并行性。

当前,从检查点(3GB)还原时,该处理将保持在窗口中,直到在下一个检查点期间引发org.apache.flink.util.FlinkException: The assigned slot <container_id> was removed错误为止。我已经看到,除了状态最大的运算符(在窗口之后直接是一个ProcessFunction)之外的所有运算符都完成检查点。

我知道强烈建议使用RocksDB进行生产,但是对于极有可能不会超过50GB的州来说,这是强制性的吗?

哪里是开始解决此问题的最佳位置?并行性?

0 个答案:

没有答案