1

我正在尝试使用 crontab 安排一个 cronjob 来执行一个 shell 脚本,该脚本按顺序执行一系列 hadoop 命令,但是当我查看 hadoop 文件夹时,这些文件夹不会被创建或删除。我们集群上的 hadoop 连接非常慢。因此,由于重试次数,这些 hadoop 命令可能需要一些时间才能执行。

cron 表达式

*/5 * * * * sh /test1/a/bin/ice.sh >> /test1/a/run.log 

外壳脚本

#!/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 ..."
4

1 回答 1

0

由于没有捕获到可用于调试输出的输出,我只能推测。

但根据我过去的经验,hadoop 作业通过脚本生成时失败的常见原因之一是执行这些命令时 HADOOP_HOME 不可用。

直接从终端工作时,通常情况并非如此。尝试将以下内容添加到“.bashrc”和“.bash_profile”或“.profile”:

export HADOOP_HOME=/usr/lib/hadoop

您可能必须根据您的特定安装更改路径。

是的,正如评论所说,不仅重定向标准输出,而且在文件中也出现错误。

于 2012-06-28T20:09:20.813 回答