Han Hui Wen created HDFS-4198: ---------------------------------- Summary: the shell script error for Cygwin on windows7 Key: HDFS-4198 URL: https://issues.apache.org/jira/browse/HDFS-4198 Project: Hadoop HDFS Issue Type: Bug Components: scripts Affects Versions: 2.0.2-alpha Environment: windows7 ,cygwin. Reporter: Han Hui Wen Fix For: 2.0.3-alpha
run /usr/local/hadoop-2.0.2-alpha/sbin/start-all.sh or /usr/local/hadoop-2.0.2-alpha/sbin/start-dfs.sh . 1. $HADOOP_PREFIX/bin/hdfs getconf -namenodes --------------in hadoop-config HADOOP_SLAVE_NAMES: --------------in hadoop-config------------- ------in hadoop-condig.sh before cygpath HADOOP_PREFIX:/usr/local/hadoop-2.0.2-alpha HADOOP_LOG_DIR:/usr/local/hadoop-2.0.2-alpha/logs JAVA_LIBRARY_PATH: ------in hadoop-condig.sh before cygpath-------------- cygpath: can't convert empty path ------in hadoop-condig.sh after cygpath HADOOP_PREFIX:/usr/local/hadoop-2.0.2-alpha HADOOP_LOG_DIR:/usr/local/hadoop-2.0.2-alpha/logs JAVA_LIBRARY_PATH: ------in hadoop-condig.sh after cygpath-------------- JAVA_LIBRARY_PATH:/usr/local/hadoop-2.0.2-alpha/lib/native ------start to run it in hdfs localhost henry@IBM-RR0A746AMG4 ~ $ $HADOOP_PREFIX/bin/hdfs getconf -namenodes --------------in hadoop-config HADOOP_SLAVE_NAMES: --------------in hadoop-config------------- cygpath: can't convert empty path JAVA_LIBRARY_PATH:/usr/local/hadoop-2.0.2-alpha/lib/native ------start to run it in hdfs localhost ---> if we add log in hadoop-condig.sh . NAMENODES=$($HADOOP_PREFIX/bin/hdfs getconf -namenodes) in start-dfs.sh return strange value like above. The return is not reliable ,so it can be store in file or pass through command parameters. 2. some directory needs not translate to Cygwin. here is some related error: $ ./start-dfs.sh HADOOP_LIBEXEC_DIR:/usr/local/hadoop-2.0.2-alpha/sbin/../libexec after hdfs-config.sh which: no hdfs in (./C:\cygwin\usr\local\hadoop-2.0.2-alpha/bin) dirname: missing operand Try `dirname --help' for more information. which: no hdfs in (./C:\cygwin\usr\local\hadoop-2.0.2-alpha/bin) NAMENODES:localhost ]tarting namenodes on [localhost ---------------------will run /usr/local/hadoop-2.0.2-alpha/sbin/slaves.sh HADOOP_CONF_DIR:/usr/local/hadoop-2.0.2-alpha/etc/hadoop HADOOP_PREFIX:C:\cygwin\usr\local\hadoop-2.0.2-alpha NAMENODES: para:--script /usr/local/hadoop-2.0.2-alpha/sbin/hdfs start namenode ---------------------will run /usr/local/hadoop-2.0.2-alpha/sbin/slaves.sh----------------- --------------------in slaves.sh HADOOP_SLAVE_NAMES:localhost --------------------in slaves.sh------------- SLAVE_NAMES:localhost The slave:localhost HADOOP_SSH_OPTS: : hostname nor servname provided, or not known ---------------------will run /usr/local/hadoop-2.0.2-alpha/sbin/slaves.sh HADOOP_CONF_DIR:/usr/local/hadoop-2.0.2-alpha/etc/hadoop HADOOP_PREFIX:C:\cygwin\usr\local\hadoop-2.0.2-alpha NAMENODES: para:--script /usr/local/hadoop-2.0.2-alpha/sbin/hdfs start datanode ---------------------will run /usr/local/hadoop-2.0.2-alpha/sbin/slaves.sh----------------- --------------------in slaves.sh HADOOP_SLAVE_NAMES: --------------------in slaves.sh------------- SLAVE_FILE:/usr/local/hadoop-2.0.2-alpha/etc/hadoop/slaves SLAVE_NAMES:localhost The slave:localhost HADOOP_SSH_OPTS: localhost: bash: line 0: cd: C:cygwinusrlocalhadoop-2.0.2-alpha: No such file or directory localhost: ------------in hadoop-daemon.sh localhost: hadoopScript:/usr/local/hadoop-2.0.2-alpha/sbin/hdfs localhost: ------------in hadoop-daemon.sh-------------- localhost: datanode running as process 6432. Stop it first. ]tarting secondary namenodes [0.0.0.0 ---------------------will run /usr/local/hadoop-2.0.2-alpha/sbin/slaves.sh HADOOP_CONF_DIR:/usr/local/hadoop-2.0.2-alpha/etc/hadoop HADOOP_PREFIX:C:\cygwin\usr\local\hadoop-2.0.2-alpha NAMENODES: para:--script /usr/local/hadoop-2.0.2-alpha/sbin/hdfs start secondarynamenode ---------------------will run /usr/local/hadoop-2.0.2-alpha/sbin/slaves.sh----------------- --------------------in slaves.sh HADOOP_SLAVE_NAMES:0.0.0.0 --------------------in slaves.sh------------- SLAVE_NAMES:0.0.0.0 The slave:0.0.0.0 HADOOP_SSH_OPTS: : hostname nor servname provided, or not known which: no hdfs in (./C:\cygwin\usr\local\hadoop-2.0.2-alpha/bin) dirname: missing operand Try `dirname --help' for more information. which: no hdfs in (./C:\cygwin\usr\local\hadoop-2.0.2-alpha/bin) --------------> solution: Comment some translation in hadoop-config.sh. #if $cygwin; then #HADOOP_PREFIX=`cygpath -w "$HADOOP_PREFIX"` #HADOOP_LOG_DIR=`cygpath -w "$HADOOP_LOG_DIR"` #JAVA_LIBRARY_PATH=`cygpath -w "$JAVA_LIBRARY_PATH"` #fi The best way is that just translate path before Java command running. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira