java - 由 cron 调用时 Hadoop 作业失败

标签 java shell cron hadoop

我创建了以下用于调用 hadoop 作业的 shell 脚本:

#!/bin/bash
/opt/hadoop/bin/hadoop jar /path/to/job.jar com.do.something <param-1> ... <param-n> &
wait %1
STATUS=$?
if [ $STATUS -eq 0 ]
then    
    echo "SUCCESS" | mailx -s "Status: "$STATUS -r "mail@mysite.com" "mail@mysite.com"
    exit $STATUS
else
    echo "FAILED" | mailx -s "Status: "$STATUS -r "mail@mysite.com" "mail@mysite.com"
    exit $STATUS
fi

当我像这样手动运行上面的脚本时:

$ ./path/to/job.sh

Hadoop 作业成功执行并返回退出状态“0”。

现在,为了每天自动执行作业,我配置了一个 cron 作业来运行上面的脚本,如下所示:

0 22 * * * /path/to/job.sh

但是,现在作业没有提交到 Hadoop,我得到退出状态“1”。

这里有几点需要注意:

  • 配置cron作业的用户账号为UserA
  • UserA也是Hadoop系统用户
  • 集群专用于运行此作业
  • 脚本可执行

我想知道为什么当 cron 调用它时作业没有运行?

最佳答案

0 22 * * * /path/to/job.sh

我认为您在命令中丢失了 "."

0 22 * * * ./path/to/job.sh

有用吗?

关于java - 由 cron 调用时 Hadoop 作业失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3332917/

相关文章:

Java 参数传递遵循 GRASP

java - ANT_HOME 设置不正确或 ant 无法定位

linux - 显示 shell 脚本注释的简单命令

Windows 计划任务不适用于 PHP 脚本

linux - 对我的 Cron 工作感到困惑

Cron 表达式 (Quartz) 用于每午夜 12 点运行的程序

java - 当我们使用 Selenium WebDriver 启动时,Firefox 正在打开但立即终止

java - 泛型中的类型安全

shell - 来自 bash 脚本的操作系统系统调用

Python 长列表目录 (ls -l), ls *