确实是 1.12.0 的 bug。 我们在所有用到 state 的地方都应该去声明 ManagedMemoryUseCase.STATE_BACKEND。有一个新添加的 ReduceTransformation 没有做这个声明,导致所有涉及到这个算子的作业使用 RocksDB 都会出问题。 我马上建 issue,这个可能要推动社区加急发一个 bugfix 版本了
Thank you~ Xintong Song On Thu, Dec 17, 2020 at 11:05 AM HunterXHunter <1356469...@qq.com> wrote: > 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/ > > > > > -- > Sent from: http://apache-flink.147419.n8.nabble.com/ >