Closed
Description
Windows tries to load the native hadoop binaries which do not exist. It tries to load them from a wide range of folder because Windows returns Windows-<Version> from os.name. After changing this to use 'Windows' as the os.name for all Windows versions and the addition of the native libraries to /nativelib/Windows_amd64, HadoopNative correctly loads the libraries from the temp files that are created. Unfortunately, when loadAllCodecs runs it subsequently fails with the following error:
java.lang.RuntimeException: failed to load Hadoop native library
at com.facebook.presto.hadoop.HadoopNative.requireHadoopNative(HadoopNative.java:60)
at com.facebook.presto.hadoop.TestHadoopNative.testCodecRoundTrip(TestHadoopNative.java:51)
Caused by: java.lang.RuntimeException: native snappy library not available: SnappyCompressor has not been loaded.
at org.apache.hadoop.io.compress.SnappyCodec.checkNativeCodeLoaded(SnappyCodec.java:68)
at org.apache.hadoop.io.compress.SnappyCodec.getDecompressorType(SnappyCodec.java:189)
at com.facebook.presto.hadoop.HadoopNative.loadAllCodecs(HadoopNative.java:73)
at com.facebook.presto.hadoop.HadoopNative.requireHadoopNative(HadoopNative.java:55)
Changing HadoopNative.requireHadoopNative to create a temporary directory and making loadLibrary copy the embedded files with the original names into this directory allows the libraries to correctly loaded.
Metadata
Metadata
Assignees
Labels
No labels