1

我无法从 Crontab 执行 hadoop/hive 命令。基本上我已经在 crontab 中安排了一个 perl 脚本,其中包含在我的操作之前设置 PATH 的系统命令。

我知道,从 cron 运行的环境可能与您的常规 shell 不同。这就是我设置如下路径的原因。有没有其他方法可以让它工作?

system("./home/ciber/.bash_profile");

system("导出 JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64");

system("export HADOOP_INSTALL=~/poc/install/hadoop-1.0.3");

system("导出路径=$PATH:$HADOOP_INSTALL/bin");

system("导出 HADOOP_HOME=$HADOOP_INSTALL");

system("export HIVE_INSTALL=~/poc/install/hive-0.9.0");

system("导出路径=$PATH:$HIVE_INSTALL/bin");

@Jingguo Yao:你有什么想法吗?

4

2 回答 2

0

您可以在 crontab 中使用命令的绝对路径。此外,您可以简单地在 crontab 中声明 env 变量。例如 foo=bar

于 2013-05-15T08:27:51.573 回答
0

如果它从终端而不是在 crontab 中正确执行,则在脚本中加载用户 bash 配置文件应该可以完成工作,如下所示

. ~/.bash_profile

或者

. /home/<user>/.bash_profile

通常#!/bin/bash包含在其中,bash_profile并且还将具有用户特定的配置。

于 2018-03-27T18:31:44.843 回答