简单的wordcount程序,当设置了 env.setStateBackend(new RocksDBStateBackend(checkpointPath, true)); 就会报 Caused by: java.lang.IllegalArgumentException: The fraction of memory to allocate should not be 0. Please make sure that all types of managed memory consumers contained in the job are configured with a non-negative weight via taskmanager.memory.managed.consumer-weights
. 查看源码是在 StreamConfig的 getManagedMemoryFractionOperatorUseCaseOfSlot 方法内,得到的是0.0 因为getAllManagedMemoryUseCases 返回的是0导致的。 因为config不存在一个key : managedMemFraction.STATE_BACKEND 当我手动添加这个key就可以正常执行了。 执行代码如下: https://paste.ubuntu.com/p/9WrBz3Xrc6/*来自志愿者整理的flink邮件归档
1.12设置 env.setStateBackend(new RocksDBStateBackend(checkpointPath, true))之后会报错 : Caused by: java.lang.IllegalArgumentException: The fraction of memory to allocate should not be 0. Please make sure that all types of managed memory consumers contained in the job are configured with a non-negative weight via taskmanager.memory.managed.consumer-weights
.
但查看源码这个参数是默认值。 最终找到原因是 Streamconfig下getManagedMemoryFractionOperatorUseCaseOfSlot中 config缺少key : managedMemFraction.STATE_BACKEND 当设置 config.setDouble("managedMemFraction.STATE_BACKEND", 0.7) 后,程序正常。 代码如下 https://paste.ubuntu.com/p/9WrBz3Xrc6/*来自志愿者整理的FLINK邮件归档
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。