我正在尝试使用crontab安排一个cronjob来执行一个shell脚本,该脚本将按顺序执行一系列hadoop命令,但是当我查看hadoop文件夹时,这些文件夹并没有被创建或删除。我们集群上的hadoop连接速度非常慢。因此,由于重试次数,这些hadoop命令可能需要一段时间才能执行。
Cron表达式
*/5 * * * * sh /test1/a/bin/ice.sh >> /test1/a/run.log shell脚本
#!/bin/sh
if [ $# == 1 ]
then
TODAY=$1
else
TODAY=`/bin/date +%m%d%Y%H%M%S`
fi
# define seed folder here
#filelist = "ls /test1/a/seeds/"
#for file in $filelist
for file in `/bin/ls /test1/a/seeds/`
do
echo $file
echo $TODAY
INBOUND="hadoop fs -put /test1/a/seeds/$file /apps/hdmi-set/inbound/$file.$TODAY/$file"
echo $INBOUND
$INBOUND
SEEDDONE="hadoop fs -put /test1/a/seedDone /apps/hdmi-set/inbound/$file.$TODAY/seedDone"
echo $SEEDDONE
$SEEDDONE
done
echo "hadoop Inbound folders created for job1 ..."发布于 2012-06-29 04:09:21
由于没有捕获到可用于调试输出的输出,因此我只能推测。
但根据我过去的经验,hadoop作业在通过脚本生成时失败的一个常见原因是,在执行这些命令时,HADOOP_HOME不可用。
当直接从终端工作时,通常情况并非如此。尝试将以下内容添加到".bashrc“和".bash_profile”或“.profile”中:
export HADOOP_HOME=/usr/lib/hadoop您可能需要根据您的特定安装更改路径。
是的,正如注释所说,不要只重定向标准输出,还要重定向文件中的错误。
https://stackoverflow.com/questions/11250978
复制相似问题