Details
Description
In order to set the path for loading native libraries, MR relies on the default value of the mapreduce.admin.user.env configuration setting the LD_LIBRARY_PATH environment entry. There are two problems with this setting in Windows:
a) LD_LIBRARY_PATH doesn't mean anything in Windows.
b) It sets it using $HADOOP_COMMON_HOME, instead of %HADOOP_COMMON_HOME%.
The default value here should be platform-dependent (use the PATH variable in Windows instead of LD_LIBRARY_PATH), or we should rely on another mechanism. The net effect is that in Windows unless this configuration is over-ridden MR jobs fail with this error:
2013-05-29 13:51:41,049 FATAL [main] org.apache.hadoop.mapred.YarnChild: Error running child : java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
at org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Native Method)
at org.apache.hadoop.io.nativeio.NativeIO$Windows.access(NativeIO.java:393)
at org.apache.hadoop.fs.FileUtil.canRead(FileUtil.java:928)
at org.apache.hadoop.util.DiskChecker.checkAccessByFileMethods(DiskChecker.java:177)
at org.apache.hadoop.util.DiskChecker.checkDirAccess(DiskChecker.java:164)
at org.apache.hadoop.util.DiskChecker.checkDir(DiskChecker.java:98)
at org.apache.hadoop.fs.LocalDirAllocator$AllocatorPerContext.confChanged(LocalDirAllocator.java:288)
at org.apache.hadoop.fs.LocalDirAllocator$AllocatorPerContext.getLocalPathToRead(LocalDirAllocator.java:431)
at org.apache.hadoop.fs.LocalDirAllocator.getLocalPathToRead(LocalDirAllocator.java:164)
at org.apache.hadoop.mapred.YarnChild.configureLocalDirs(YarnChild.java:235)
at org.apache.hadoop.mapred.YarnChild.configureTask(YarnChild.java:294)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:143)
Attachments
Attachments
Issue Links
- breaks
-
MAPREDUCE-5642 TestMiniMRChildTask fails on Windows
- Closed
- is part of
-
MAPREDUCE-4401 Enhancements to MapReduce for Windows Server and Windows Azure development and runtime environments
- Resolved
- is related to
-
HADOOP-11285 FileUtil operations don't check for native lib loaded on windows
- Open
-
YARN-1025 ResourceManager and NodeManager do not load native libraries on Windows.
- Closed
- relates to
-
MAPREDUCE-5442 $HADOOP_MAPRED_HOME/$HADOOP_CONF_DIR setting not working on Windows
- Closed