我在centos系统上安装了hadoop。我有一个shell脚本,它将在某个特定的小时文件夹位置生成的所有hdfs小文件合并到hdfs的另一个位置的单个文件中。shell在被调用时工作得非常正常。
然后我将shell作为cron作业在每天凌晨1:30运行。
我打字 crontab -e
贴上这个:
30 1 * * * /home/hadoop/tmp/cron-merge-files.sh > /home/hadoop/tmp/cron-merge-files.txt
但是合并操作没有发生。我看到了 /var/log/cron
文件,在01:30上午这个条目来了,但我看不到这些文件合并在hdfs。当我简单地执行shell脚本时,它就可以很好地工作,并执行脚本中编写的上述操作。
Jul 8 01:30:01 ip-10-1-3-111 CROND[2265463]: (hadoopuser) CMD (/home/hadoop/tmp/cron-merge-files.sh > /home/hadoop/tmp/cron-merge-files.txt)
/home/hadoop/tmp/cron-merge-files.txt的内容是在循环中编写的一条echo语句。循环应该运行24次,然后打印24次。
我不知道发生了什么事。
1条答案
按热度按时间qaxu7uf21#
我从另一个论坛得到了这个问题的解决方案。当通过crontab运行同一个脚本时,环境变量出现了一些问题。刚刚导出。bashèu配置文件到我的脚本,它工作。