chankyeong won
01/13/2023, 9:19 AMjava.lang.NoSuchFieldError: NONE
at org.apache.flink.contrib.streaming.state.RocksDBConfigurableOptions.<clinit>(RocksDBConfigurableOptions.java:138)
at org.apache.flink.contrib.streaming.state.PredefinedOptions$1.<init>(PredefinedOptions.java:84)
at org.apache.flink.contrib.streaming.state.PredefinedOptions.<clinit>(PredefinedOptions.java:79)
at org.apache.flink.contrib.streaming.state.RocksDBOptions.<clinit>(RocksDBOptions.java:80)
at org.apache.flink.contrib.streaming.state.EmbeddedRocksDBStateBackend.<init>(EmbeddedRocksDBStateBackend.java:223)
...
Because my project’s flink-statebackend-rocksdb:1.16.0 points the other packages. (Hudi and Spark also have rocksdb dependencies..)
I notice Hudi & Spark rocksdb dependency is org.rocksdb:rocksdbjni:6.20.3, but flink-statebackend-rocksdb:1.16.0 has com.ververica:frocksdbjni:6.20.3-ververica-1.0 under that.
And there is no enum field “NONE” in org.rocksdb:rocksdbjni:6.20.3!
How can i fix it?Zsombor Chikán
01/13/2023, 4:53 PMorg.rocksdb:rocksdbjni library (which is used by Hudi and Spark) and the com.ververica:frocksdbjni library (which is used by the Flink RocksDB state backend).Zsombor Chikán
01/13/2023, 4:53 PMorg.rocksdb:rocksdbjni library being used in your project does not have an enum field called "NONE", which is causing the errorZsombor Chikán
01/13/2023, 4:54 PMorg.rocksdb:rocksdbjni library from the dependencies of Hudi and Spark, and instead using the com.ververica:frocksdbjni library that is provided by the Flink RocksDB state backend.
You can do this by excluding the library in the Hudi and Spark dependency in your maven or gradle.Zsombor Chikán
01/13/2023, 4:54 PMZsombor Chikán
01/13/2023, 4:54 PMchankyeong won
01/14/2023, 5:47 AM