hadoop с cygwin: hadoop-daemon.sh: не найдено - PullRequest
2 голосов
/ 17 марта 2012

Я устанавливаю hadoop на cygwin.У меня есть Windows 7 64-битная машина, и я следую инструкции здесь: http://alans.se/blog/2010/hadoop-hbase-cygwin-windows-7-x64/#software. Я установил SSH без пароля в cygwin и установил 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

Файл существует именно в этом месте.Разрешения кажутся нормальными (они принадлежат «Администраторам», и я работаю от имени пользователя, обладающего привилегиями «Администраторы». И в любом случае, он находит и выполняет другие сценарии, прежде чем перейти к этой точке. Этот вывод происходит в этой строке в корзине/slaves.sh script

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 голосов
/ 06 мая 2012

проверьте пользователя в / etc / passwd.он должен иметь действительный домашний каталог и оболочку, как определено в / etc / shells.затем в командной строке подчиненного ssh добавьте -l $ {USER} к вызовам ssh.

еще лучше, следуйте этому руководству: http://en.wikisource.org/wiki/User:Fkorning/Code/Hadoop-on-Cygwin

...