Incorrect GLIBC Version
Question
When State Backend is set to RocksDB for a Flink task, the following error message is displayed:
Caused by: java.lang.UnsatisfiedLinkError: /srv/BigData/hadoop/data1/nm/usercache/***/appcache/application_****/rocksdb-lib-****/librocksdbjni-linux64.so: /lib64/libpthread.so.0: version `GLIBC_2.12` not found (required by /srv/BigData/hadoop/***/librocksdbjni-linux64.so) at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1965) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1890) at java.lang.Runtime.load0(Runtime.java:795) at java.lang.System.load(System.java:1062) at org.rocksdb.NativeLibraryLoader.loadLibraryFromJar(NativeLibraryLoader.java:78) at org.rocksdb.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:56) at org.apache.flink.contrib.streaming.state.RocksDBStateBackend.ensureRocksDBIsLoaded(RocksDBStateBackend.java:734) ... 11 more
Possible Causes
The version of the system where the task runs and the version of the system where the compilation environment locates are different, resulting in the incompatibility of GLIBC versions.
Troubleshooting Method
Run the strings /lib64/libpthread.so.0 | grep GLIBC command to check whether the GLIBC version is earlier than 2.12.
Procedure
If the version of the GLIBC is too early, use the file of later version (2.12) to replace libpthread-*.so. (This is a link file. You need to replace only the file that is linked to this link file.)
References
None
Did this article solve your problem?
Thank you for your score!Your feedback would help us improve the website.