After building Hadoop 3.3.4 from source on Ubuntu 22.04, `hadoop checknative` reports
$ hadoop checknative
2022-12-21 22:12:02,106 INFO bzip2.Bzip2Factory: Successfully loaded & initialized native-bzip2 library system-native
2022-12-21 22:12:02,107 INFO zlib.ZlibFactory: Successfully loaded & initialized native-zlib library
2022-12-21 22:12:02,130 INFO nativeio.NativeIO: The native code was built without PMDK support.
Native library checking:
hadoop: true /hadoop/lib/native/libhadoop.so.1.0.0
zlib: true /lib/x86_64-linux-gnu/libz.so.1
zstd : true /lib/x86_64-linux-gnu/libzstd.so.1
bzip2: true /lib/x86_64-linux-gnu/libbz2.so.1
openssl: false EVP_CIPHER_CTX_block_size
ISA-L: true /lib/x86_64-linux-gnu/libisal.so.2
PMDK: false The native code was built without PMDK support.
The issue seems to be at least two symbols that were removed from ABI in OpenSSL 3.x releases:
- EVP_CIPHER_CTX_block_size (new name: EVP_CIPHER_CTX_get_block_size)
- EVP_CIPHER_CTX_encrypting (new name: EVP_CIPHER_CTX_is_encrypting)
The attached patch 100-hadoop-3.3.4-openssl-3.patch works around the issue.