2013-09-22 215 views
0

试图运行一个简单的shell脚本,其中包含我经常执行的一组命令来设置我的Hadoop环境。首先,我通过'ssh localhost'连接,然后手动执行这些命令,我​​想自动执行此过程,我正在执行以下操作,这会导致下面列出的错误。请注意我可以通过命令提示符手动执行这些命令。请帮助我。运行简单shell脚本时出错

我做什么

$sudo chmod 777 hadoop-startup-script.sh 
$ssh localhost 
$./hadoop-startup-script.sh 

这将导致以下错误

(~($))sh hadoop-startup-script.sh 
hadoop-startup-script.sh: 2: cd: can't cd to /home/hadoop/hadoop-0.20.204.0 
hadoop-startup-script.sh: 3: hadoop-startup.sh: bin/hadoop: not found 
hadoop-startup-script.sh: 4: hadoop-startup.sh: bin/start-all.sh: not found 
hadoop-startup-script.sh: 5: hadoop-startup.sh: bin/hadoop: not found 
hadoop-startup-script.sh: 6: hadoop-startup.sh: bin/hadoop: not found 
hadoop-startup-script.sh: 7: hadoop-startup.sh: bin/hadoop: not found 
hadoop-startup-script.sh: 8: hadoop-startup.sh: bin/hadoop: not found 
hadoop-startup-script.sh: 9: hadoop-startup.sh: bin/hadoop: not found 
hadoop-startup-script.sh: 10: hadoop-startup.sh: bin/hadoop: not found 

的hadoop-startup-script.sh

#! /bin/bash 
cd ~/hadoop-0.20.204.0 
bin/hadoop namenode -format 
bin/start-all.sh 
bin/hadoop fs -mkdir input 
bin/hadoop fs -mkdir input/oreilly 
bin/hadoop fs -put /home/hadoop/Dropbox/hadoop/hadoop-inputs/oreilly-programmingPig/*.* /user/hadoop/input/oreilly/ 
bin/hadoop fs -put /home/hadoop/Dropbox/hadoop/hadoop-inputs/oreilly-programmingPig/NYSE_dividends /user/hadoop/input/oreilly/ 
bin/hadoop fs -put /home/hadoop/Dropbox/hadoop/hadoop-inputs/oreilly-programmingPig/baseball /user/hadoop/input/oreilly/ 
bin/hadoop fs -put /home/hadoop/Dropbox/hadoop/hadoop-inputs/oreilly-programmingPig/NYSE_daily /user/hadoop/input/oreilly/ 
+0

那么你的问题是什么? – Gumbo

+1

第一个错误是重要的错误,其他所有错误都是从其中获得的,因为您从未到达其他命令可以工作的文件夹。也许检查该文件夹的权限? – wilks

+1

是否存在'〜/ hadoop-0.20.204.0'?运行'ls -l〜/ hadoop-0.20.204.0'。 – Ross

回答

2

的错误是目录告诉你,罗阳离子~/hadoop-0.20.204.0,bin/hadoopbin/start-all.sh不存在。

Did you mean ~/bin/bin or ~/hadoop-0.20.204.0/bin?如果您的意思是~/hadoop-0.20.204.0/bin,那么第一个失败的cd将解释以下错误。仔细检查文件夹的名称和权限。

+0

OOps我的CD命令错误触发了一系列的错误。对不起,这样愚蠢的问题纠缠,纠正hadoop文件夹名称在'cd ..'命令做了诀窍。 – Vikram