[ 
https://issues.apache.org/jira/browse/HADOOP-7203?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Allen Wittenauer resolved HADOOP-7203.
--------------------------------------

    Resolution: Fixed

> Folder Paths
> ------------
>
>                 Key: HADOOP-7203
>                 URL: https://issues.apache.org/jira/browse/HADOOP-7203
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: build
>    Affects Versions: 0.21.0
>         Environment: Mac OS X (but the same effect in linux)
> $java -version
> java version "1.6.0_24"
> Java(TM) SE Runtime Environment (build 1.6.0_24-b07-334-10M3326)
> Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02-334, mixed mode)
>            Reporter: Anastasis Andronidis
>            Priority: Minor
>              Labels: build
>
> I tried to execute: ./bin/hadoop namenode -format in hadoop-0.21.0 inside a 
> folder with path: ~/Desktop/my test/hadoop-0.21.0/
> But i kept receiving the following error:
> Exception in thread "main" java.lang.NoClassDefFoundError: 
> test/hadoop-0/21/0/bin////logs
> Caused by: java.lang.ClassNotFoundException: me.hadoop-0.21.0.bin....logs
>       at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
>       at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
>       at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
>       at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
> Tried to change the language just to test what would happen. So I got a same 
> error with a folder name with spaces:
> Exception in thread "main" java.lang.NoClassDefFoundError: ??????
> Caused by: java.lang.ClassNotFoundException: ??????
>       at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
>       at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
>       at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
>       at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
> (You can notice the ???, might this be a java issue?)
> I was able to run it only in folder names that didn't include spaces. Both 
> english and greek.
> I tried to trace this issue and I found that the problem is in the 
> HADOOP_HOME/hdfs script. On the last line where: exec "$JAVA" $JAVA_HEAP_MAX 
> $HADOOP_OPTS $CLASS "$@" tries to be executed, variable HADOOP_OPTS has white 
> spaces which produce the above errors. 
> A solution to this problem could be to include double quotes to each path 
> when they are collected and call exec command with eval at the front.
> I found a workaround to this issue by adding:
> tmp=`echo ${HADOOP_OPTS// /\\\ }`
> eval exec "$JAVA" $JAVA_HEAP_MAX $(echo ${tmp//\\ \-/\ \-}) " " $CLASS "$@"
> This code basically it added backslashes in front of each space in a path.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to