我无法从Crontab执行hadoop / hive命令。基本上我已经在crontab中安排了一个perl脚本,其中包含在我的操作之前设置PATH的系统命令。
我知道,从cron运行的env可能与你的常规shell不同。这就是我设置如下路径的原因。有没有其他方法可以使它工作?
system(“。/ home / ciber / .bash_profile”);
system(“export JAVA_HOME = / usr / lib / jvm / java-6-openjdk-amd64”);
system(“export HADOOP_INSTALL =〜/ poc / install / hadoop-1.0.3”);
system(“export PATH = $ PATH:$ HADOOP_INSTALL / bin”);
system(“export HADOOP_HOME = $ HADOOP_INSTALL”);
system(“export HIVE_INSTALL =〜/ poc / install / hive-0.9.0”);
system(“export PATH = $ PATH:$ HIVE_INSTALL / bin”);
答案 0 :(得分:0)
您可以在crontab中使用命令的绝对路径。此外,您可以简单地在crontab中声明env变量。例如 富=酒吧
答案 1 :(得分:0)
如果从终端而不是在crontab中正确执行,则在脚本中加载用户bash配置文件应该可以正常工作,如下所示
. ~/.bash_profile
或
. /home/<user>/.bash_profile
#!/bin/bash
通常包含bash_profile
,它也会有用户特定的配置。