我在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有关,但不能解决它,因为我觉得我已经以标准方式完成所有工作......
感谢任何帮助/想法/线索。
答案 0 :(得分:0)
检查/ etc / passwd中的用户。它必须具有/ etc / shells中定义的有效主目录和shell。在slave ssh命令行中,将-l $ {USER}添加到ssh调用。
更好的是,请按照本教程:http://en.wikisource.org/wiki/User:Fkorning/Code/Hadoop-on-Cygwin