hadoop with cygwin:hadoop-daemon.sh:未找到

时间:2012-03-16 20:15:45

标签: ssh hadoop cygwin localhost

我在cygwin上安装hadoop。我有一台Windows 7 64位机器,我一直关注这里的指导:http://alans.se/blog/2010/hadoop-hbase-cygwin-windows-7-x64/#software。我在cygwin中安装了无密码SSH,并安装了hadoop 0.20.2。

当我发出bin / start-dfs.sh时,我得到以下内容:

starting namenode, logging to /usr/local/hadoop-0.20.2/bin/../logs/hadoop-T3S-namenode-t3s780mon.out
localhost: /usr/local/hadoop-0.20.2/bin/hadoop-daemon.sh: /usr/local/hadoop-0.20.2/bin/hadoop-daemon.sh: not found
localhost: /usr/local/hadoop-0.20.2/bin/hadoop-daemon.sh: /usr/local/hadoop-0.20.2/bin/hadoop-daemon.sh: not found

该文件存在于该确切位置。权限似乎很好(它由“管理员”拥有,我作为具有“管理员”权限的用户运行。无论如何,它在找到并执行其他脚本之前到达这一点。此输出发生在bin中的这一行/slaves.sh脚本

for slave in `cat "$HOSTLIST"|sed  "s/#.*$//;/^$/d"`; do
 ssh $HADOOP_SSH_OPTS $slave $"${@// /\\ }" \
   2>&1 | sed "s/^/$slave: /" &
 if [ "$HADOOP_SLAVE_SLEEP" != "" ]; then
   echo "@@@ slave.sh is SLEEPING"
   sleep $HADOOP_SLAVE_SLEEP
 fi
done

特别是在“ssh ...”行。基本上,那是什么调用(当所有脚本变量都被解析时):

ssh localhost cd /usr/local/hadoop-0.20.2/bin/.. ; /usr/local/hadoop-0.20.2/bin/hadoop-daemon.sh --config /usr/local/hadoop-0.20.2/bin/../conf start datanode

当我手动运行(即将其粘贴到cygwin控制台)时,不会返回任何此类错误。

那么是什么导致此脚本在此时使用此特定消息失败?我认为这与我如何设置ssh有关,但不能解决它,因为我觉得我已经以标准方式完成所有工作......

感谢任何帮助/想法/线索。

1 个答案:

答案 0 :(得分:0)

检查/ etc / passwd中的用户。它必须具有/ etc / shells中定义的有效主目录和shell。在slave ssh命令行中,将-l $ {USER}添加到ssh调用。

更好的是,请按照本教程:http://en.wikisource.org/wiki/User:Fkorning/Code/Hadoop-on-Cygwin